* 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
42 lines
1.2 KiB
TypeScript
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);
|
|
}
|