nx/packages/js/src/utils/update-package-json.ts
Chau Tran 726877d103
feat(js): add SWC support (#7956)
* feat(js): add SWC support

chore(js): remove comment

fix(js): clean up typecheck after merge

fix(js): add tests to swc

* fix(js): adjust typecheck

* feat(js): add skipTypeCheck to library generator

* fix(js): use Promise.all()

* fix(js): pass in correct tsconfig path

* cleanup(js): remove comment code

* fix(js): use logger from devkit instead of console log

* fix(js): remove unintended exit log

* feat(js): add convert-to-swc generator to convert lib w/ tsc to swc

* fix(js): reexport print diagnostics
2021-12-15 12:23:50 -05:00

42 lines
1.2 KiB
TypeScript

import { normalizePath } from '@nrwl/devkit';
import { readJsonFile, writeJsonFile } from '@nrwl/tao/src/utils/fileutils';
import { basename, dirname, join, relative } from 'path';
function getMainFileDirRelativeToProjectRoot(
main: string,
projectRoot: string
): string {
const mainFileDir = dirname(main);
const relativeDir = normalizePath(relative(projectRoot, mainFileDir));
return relativeDir === '' ? `./` : `./${relativeDir}/`;
}
export function updatePackageJson(
main: string,
outputPath: string,
projectRoot: string,
withTypings = true
): void {
const packageJson = readJsonFile(join(projectRoot, 'package.json'));
if (packageJson.main && packageJson.typings) {
return;
}
const mainFile = basename(main).replace(/\.[tj]s$/, '');
const relativeMainFileDir = getMainFileDirRelativeToProjectRoot(
main,
projectRoot
);
const mainJsFile = `${relativeMainFileDir}${mainFile}.js`;
const typingsFile = `${relativeMainFileDir}${mainFile}.d.ts`;
packageJson.main = packageJson.main ?? mainJsFile;
if (withTypings) {
packageJson.typings = packageJson.typings ?? typingsFile;
}
const outputPackageJson = join(outputPath, 'package.json');
writeJsonFile(outputPackageJson, packageJson);
}