@nxext/stencil
Version:
Nx plugin for stenciljs
106 lines • 5.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareConfigAndOutputargetPaths = void 0;
const tslib_1 = require("tslib");
const workspace_1 = require("@nrwl/workspace");
const e2e_testing_1 = require("./e2e-testing");
const fileutils_1 = require("@nrwl/workspace/src/utilities/fileutils");
const devkit_1 = require("@nrwl/devkit");
const fs_1 = require("fs");
function copyOrCreatePackageJson(pathCollection) {
var _a, _b, _c, _d, _e, _f, _g, _h;
const libPackageJson = {
name: pathCollection.projectName,
version: '0.0.0',
main: './dist/index.cjs.js',
module: './dist/index.js',
es2015: './dist/esm/index.mjs',
es2017: './dist/esm/index.mjs',
types: './dist/types/index.d.ts',
collection: './dist/collection/collection-manifest.json',
'collection:main': './dist/collection/index.js',
unpkg: `./dist/${pathCollection.projectName}/${pathCollection.projectName}.js`,
files: ['dist/', 'loader/']
};
if ((0, fileutils_1.fileExists)(pathCollection.pkgJson)) {
(0, workspace_1.copyFile)(pathCollection.pkgJson, pathCollection.distDir);
const packageJson = (0, workspace_1.readJsonFile)(pathCollection.pkgJson);
(_a = packageJson['main']) !== null && _a !== void 0 ? _a : (packageJson['main'] = libPackageJson.main);
(_b = packageJson['module']) !== null && _b !== void 0 ? _b : (packageJson['module'] = libPackageJson.module);
(_c = packageJson['es2015']) !== null && _c !== void 0 ? _c : (packageJson['es2015'] = libPackageJson.es2015);
(_d = packageJson['es2017']) !== null && _d !== void 0 ? _d : (packageJson['es2017'] = libPackageJson.es2017);
(_e = packageJson['types']) !== null && _e !== void 0 ? _e : (packageJson['types'] = libPackageJson.types);
(_f = packageJson['collection']) !== null && _f !== void 0 ? _f : (packageJson['collection'] = libPackageJson.collection);
(_g = packageJson['collection:main']) !== null && _g !== void 0 ? _g : (packageJson['collection:main'] = libPackageJson['collection:main']);
(_h = packageJson['unpkg']) !== null && _h !== void 0 ? _h : (packageJson['unpkg'] = libPackageJson.unpkg);
packageJson['files'] = packageJson.files
? [...new Set([...packageJson.files, ...libPackageJson.files])]
: libPackageJson.files;
(0, fileutils_1.writeJsonFile)(pathCollection.pkgJson, packageJson);
}
else {
(0, fileutils_1.writeJsonFile)((0, devkit_1.joinPathFragments)(pathCollection.distDir, 'package.json'), libPackageJson);
}
}
function calculateOutputTargetPathVariables(config, pathCollection, pathVariables) {
return config.outputTargets.map((outputTarget) => {
pathVariables.forEach((pathVar) => {
if (outputTarget[pathVar] != null &&
!outputTarget[pathVar].endsWith('src')) {
const origPath = outputTarget[pathVar];
outputTarget = Object.assign(outputTarget, {
[pathVar]: origPath.replace(pathCollection.projectRoot, pathCollection.distDir)
});
}
});
return outputTarget;
});
}
function prepareDistDirAndPkgJson(pathCollection) {
if (!(0, fs_1.existsSync)(pathCollection.distDir)) {
(0, fileutils_1.createDirectory)(pathCollection.distDir);
}
copyOrCreatePackageJson(pathCollection);
}
function prepareConfigAndOutputargetPaths(config, pathCollection) {
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
prepareDistDirAndPkgJson(pathCollection);
if (config.flags.e2e) {
(0, e2e_testing_1.prepareE2eTesting)(pathCollection);
}
const pathVariables = [
'dir',
'appDir',
'buildDir',
'indexHtml',
'esmDir',
'systemDir',
'systemLoaderFile',
'file',
'esmLoaderPath',
'collectionDir',
'typesDir',
'legacyLoaderFile',
'esmEs5Dir',
'cjsDir',
'cjsIndexFile',
'esmIndexFile',
'componentDts'
];
const outputTargets = calculateOutputTargetPathVariables(config, pathCollection, pathVariables);
const devServerConfig = Object.assign(config.devServer, {
root: config.devServer.root.replace(pathCollection.projectRoot, pathCollection.distDir)
});
if (!config.flags.e2e) {
config.packageJsonFilePath =
config.packageJsonFilePath.replace(pathCollection.projectRoot, pathCollection.distDir);
}
else {
config.packageJsonFilePath =
config.packageJsonFilePath.replace('package.json', 'package.e2e.json');
}
return Object.assign(Object.assign({}, config), { outputTargets: outputTargets, devServer: devServerConfig });
});
}
exports.prepareConfigAndOutputargetPaths = prepareConfigAndOutputargetPaths;
//# sourceMappingURL=prepare-config-and-outputarget-paths.js.map