piral-cli
Version:
The standard CLI for creating and building a Piral instance or a Pilet.
78 lines • 3.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.triggerBuildPilet = triggerBuildPilet;
const path_1 = require("path");
const config_1 = require("./config");
const io_1 = require("./io");
const enums_1 = require("./enums");
const log_1 = require("./log");
const constants_1 = require("./constants");
const declaration_1 = require("./declaration");
const package_1 = require("./package");
const bundler_1 = require("../bundler");
const defaultOutput = 'dist/index.js';
function isSubDir(parent, dir) {
const rel = (0, path_1.relative)(parent, dir);
return rel && !rel.startsWith('..') && !(0, path_1.isAbsolute)(rel);
}
function getTarget(root, main, source, target) {
if (typeof target === 'undefined') {
const propDest = (0, path_1.resolve)(root, main);
const propDestDir = (0, path_1.dirname)(propDest);
const usePropDest = propDestDir !== root && propDestDir !== source && isSubDir(root, propDest);
return usePropDest ? propDest : (0, path_1.resolve)(root, defaultOutput);
}
return (0, path_1.resolve)(root, target);
}
async function triggerBuildPilet({ target, app, originalSchemaVersion, fresh, entryModule, logLevel, optimizeModules, sourceMaps, watch, contentHash, declaration, minify, hooks, bundlerName, _, }) {
const targetDir = (0, path_1.dirname)(entryModule);
const { peerDependencies, peerModules, root, apps, piletPackage, ignored, importmap, schema } = await (0, package_1.retrievePiletData)(targetDir, app);
const schemaVersion = originalSchemaVersion || schema || config_1.config.schemaVersion || constants_1.defaultSchemaVersion;
const piralInstances = apps.map((m) => m.appPackage.name);
const externals = (0, package_1.combinePiletExternals)(piralInstances, peerDependencies, peerModules, importmap);
const { main = defaultOutput } = piletPackage;
const dest = getTarget(root, main, targetDir, target);
const outDir = (0, path_1.dirname)(dest);
const outFile = (0, path_1.basename)(dest);
(0, package_1.validateSharedDependencies)(importmap);
if (fresh) {
(0, log_1.progress)('Removing output directory ...');
await (0, io_1.removeDirectory)(outDir);
}
(0, log_1.logInfo)('Bundle pilet ...');
await hooks.beforeBuild?.({ root, outDir, importmap, entryModule, schemaVersion, piletPackage });
await (0, bundler_1.callPiletBuild)({
root,
piralInstances,
optimizeModules,
sourceMaps,
watch,
contentHash,
minify,
externals,
targetDir,
importmap,
outFile,
outDir,
entryModule: `./${(0, path_1.relative)(root, entryModule)}`,
logLevel,
version: schemaVersion,
ignored,
_,
}, bundlerName);
await hooks.afterBuild?.({ root, outDir, importmap, entryModule, schemaVersion, piletPackage });
if (declaration) {
await hooks.beforeDeclaration?.({ root, outDir, entryModule, piletPackage });
await (0, declaration_1.createPiletDeclaration)(piralInstances, root, entryModule, externals, outDir, enums_1.ForceOverwrite.yes, logLevel);
await hooks.afterDeclaration?.({ root, outDir, entryModule, piletPackage });
}
return {
piletPackage,
root,
outDir,
apps,
outFile,
dest,
};
}
//# sourceMappingURL=pilet.js.map