UNPKG

piral-cli

Version:

The standard CLI for creating and building a Piral instance or a Pilet.

99 lines 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildPiralDefaults = void 0; exports.buildPiral = buildPiral; const path_1 = require("path"); const types_1 = require("../types"); const common_1 = require("../common"); exports.buildPiralDefaults = { entry: './', target: './dist', publicUrl: '/', logLevel: types_1.LogLevels.info, fresh: false, minify: true, type: common_1.allName, subdir: true, sourceMaps: true, watch: false, contentHash: true, optimizeModules: false, }; async function buildPiral(baseDir = process.cwd(), options = {}) { const { entry = exports.buildPiralDefaults.entry, target = exports.buildPiralDefaults.target, publicUrl: originalPublicUrl = exports.buildPiralDefaults.publicUrl, logLevel = exports.buildPiralDefaults.logLevel, minify = exports.buildPiralDefaults.minify, sourceMaps = exports.buildPiralDefaults.sourceMaps, watch = exports.buildPiralDefaults.watch, contentHash = exports.buildPiralDefaults.contentHash, subdir = exports.buildPiralDefaults.subdir, fresh = exports.buildPiralDefaults.fresh, type = exports.buildPiralDefaults.type, optimizeModules = exports.buildPiralDefaults.optimizeModules, _ = {}, hooks = {}, bundlerName, } = options; (0, common_1.ensure)('baseDir', baseDir, 'string'); (0, common_1.ensure)('publicUrl', originalPublicUrl, 'string'); (0, common_1.ensure)('entry', entry, 'string'); (0, common_1.ensure)('_', _, 'object'); (0, common_1.ensure)('hooks', hooks, 'object'); (0, common_1.ensure)('target', target, 'string'); const publicUrl = (0, common_1.normalizePublicUrl)(originalPublicUrl); const fullBase = (0, path_1.resolve)(process.cwd(), baseDir); const useSubdir = type === 'all' || subdir; (0, common_1.setLogLevel)(logLevel); await hooks.onBegin?.({ options, fullBase }); (0, common_1.progress)('Reading configuration ...'); const entryFiles = await (0, common_1.retrievePiralRoot)(fullBase, entry); const { name, root, ignored, externals, scripts, emulator = common_1.emulatorPackageName, } = await (0, common_1.retrievePiletsInfo)(entryFiles); const piralInstances = [name]; const dest = (0, common_1.getDestination)(entryFiles, (0, path_1.resolve)(fullBase, target)); await (0, common_1.checkCliCompatibility)(root); (0, common_1.validateSharedDependencies)(externals); if (fresh) { (0, common_1.progress)('Removing output directory ...'); await (0, common_1.removeDirectory)(dest.outDir); } // either take the explicit type or find out the implicit / default one const emulatorType = type === common_1.allName || type === common_1.emulatorName ? emulator : type.replace(`${common_1.emulatorName}-`, ''); // only applies to an explicit emulator target (e.g., "emulator-website") or to "all" / "emulator" with the setting from the piral.json if ([common_1.emulatorSourcesName, common_1.emulatorPackageName, common_1.emulatorWebsiteName].includes(emulatorType)) { const targetDir = useSubdir ? (0, path_1.join)(dest.outDir, common_1.emulatorName) : dest.outDir; await (0, common_1.triggerBuildEmulator)({ root, logLevel, bundlerName, emulatorType, hooks, targetDir, ignored, externals, entryFiles, piralInstances, optimizeModules, sourceMaps, watch, scripts, contentHash, outFile: dest.outFile, _, }); (0, common_1.logReset)(); } // either 'release' or 'all' if (type === common_1.releaseName || type === common_1.allName) { const targetDir = useSubdir ? (0, path_1.join)(dest.outDir, common_1.releaseName) : dest.outDir; await (0, common_1.triggerBuildShell)({ targetDir, logLevel, bundlerName, contentHash, externals, ignored, minify, optimizeModules, publicUrl, outFile: dest.outFile, root, sourceMaps, watch, hooks, entryFiles, piralInstances, scripts, _, }); (0, common_1.logReset)(); } await hooks.onEnd?.({ root }); } //# sourceMappingURL=build-piral.js.map