UNPKG

piral-cli

Version:

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

78 lines 4.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newPiralDefaults = void 0; exports.newPiral = newPiral; const path_1 = require("path"); const helpers_1 = require("../helpers"); const types_1 = require("../types"); const common_1 = require("../common"); exports.newPiralDefaults = { app: './src/index.html', registry: common_1.config.registry, framework: 'piral', target: '.', version: common_1.cliVersion, forceOverwrite: common_1.ForceOverwrite.no, language: common_1.config.language, install: true, template: 'default', logLevel: types_1.LogLevels.info, npmClient: undefined, bundlerName: 'none', variables: {}, name: undefined, }; async function newPiral(baseDir = process.cwd(), options = {}) { const { app = exports.newPiralDefaults.app, registry = exports.newPiralDefaults.registry, framework = exports.newPiralDefaults.framework, target = exports.newPiralDefaults.target, version = exports.newPiralDefaults.version, forceOverwrite = exports.newPiralDefaults.forceOverwrite, language = exports.newPiralDefaults.language, install = exports.newPiralDefaults.install, template = exports.newPiralDefaults.template, logLevel = exports.newPiralDefaults.logLevel, bundlerName = exports.newPiralDefaults.bundlerName, variables = exports.newPiralDefaults.variables, name = exports.newPiralDefaults.name, npmClient: defaultNpmClient = exports.newPiralDefaults.npmClient, } = options; (0, common_1.ensure)('baseDir', baseDir, 'string'); (0, common_1.ensure)('framework', framework, 'string'); (0, common_1.ensure)('version', version, 'string'); (0, common_1.ensure)('target', target, 'string'); (0, common_1.ensure)('app', app, 'string'); (0, common_1.ensure)('template', template, 'string'); (0, common_1.ensure)('variables', variables, 'object'); const fullBase = (0, path_1.resolve)(process.cwd(), baseDir); const root = (0, path_1.resolve)(fullBase, target); if (!helpers_1.frameworkKeys.includes(framework)) { (0, common_1.fail)('generalError_0002', `The "framework" value must be one of: ${helpers_1.frameworkKeys.join(', ')}`); } (0, common_1.setLogLevel)(logLevel); (0, common_1.progress)('Preparing source and target ...'); const success = await (0, common_1.createDirectory)(root); if (success) { const npmClient = await (0, common_1.determineNpmClient)(root, defaultNpmClient); const packageRef = (0, common_1.combinePackageRef)(framework, version, 'registry'); const projectName = name || (0, path_1.basename)(root); (0, common_1.progress)(`Creating a new Piral instance in %s ...`, root); await (0, common_1.createFileIfNotExists)(root, 'package.json', JSON.stringify({ name: projectName, version: '1.0.0', description: '', keywords: ['piral'], dependencies: {}, scripts: {}, }, undefined, 2)); await (0, common_1.initNpmProject)(npmClient, projectName, root); if (registry !== exports.newPiralDefaults.registry) { (0, common_1.progress)(`Setting up npm registry (%s) ...`, registry); await (0, common_1.createFileIfNotExists)(root, '.npmrc', `registry=${registry} always-auth=true`, forceOverwrite); } await (0, common_1.createFileIfNotExists)(root, common_1.piralJson, JSON.stringify({}, undefined, 2)); (0, common_1.progress)(`Installing npm package ${packageRef} ...`); await (0, common_1.installNpmPackage)(npmClient, packageRef, root, '--save-exact'); (0, common_1.progress)(`Taking care of templating ...`); const data = (0, common_1.getPiralScaffoldData)(language, root, app, framework, variables); await (0, common_1.patchPiralPackage)(root, app, data, version, bundlerName); await (0, common_1.scaffoldPiralSourceFiles)(template, registry, data, forceOverwrite); if (install) { (0, common_1.progress)(`Installing dependencies ...`); await (0, common_1.installNpmDependencies)(npmClient, root); } (0, common_1.logDone)(`Piral instance scaffolded successfully!`); } else { (0, common_1.fail)('cannotCreateDirectory_0044'); } } //# sourceMappingURL=new-piral.js.map