UNPKG

piral-cli

Version:

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

64 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.installPiralInstance = installPiralInstance; const log_1 = require("./log"); const constants_1 = require("./constants"); const io_1 = require("./io"); const website_1 = require("./website"); const npm_1 = require("./npm"); const npm_2 = require("./npm"); async function updatePiletJson(target, appName, appDetails) { const oldContent = await (0, io_1.readJson)(target, constants_1.piletJson); const newContent = { ...oldContent, piralInstances: { ...oldContent.piralInstances, [appName]: appDetails, }, }; await (0, io_1.writeJson)(target, constants_1.piletJson, newContent, true); await (0, io_1.updateExistingJson)(target, constants_1.packageJson, { importmap: { inherit: [appName], }, }); } async function setupPiralInstance(sourceName, type, hadVersion, rootDir, sourceVersion, npmClient) { if (!(0, npm_2.isLinkedPackage)(sourceName, type, hadVersion, rootDir)) { const packageRef = (0, npm_1.combinePackageRef)(sourceName, sourceVersion, type); (0, log_1.progress)(`Installing npm package %s ...`, packageRef); await (0, npm_2.installNpmPackage)(npmClient, packageRef, rootDir, '--save-dev', '--save-exact'); return await (0, npm_1.getPackageName)(rootDir, sourceName, type); } else { (0, log_1.progress)(`Using locally available npm package %s ...`, sourceName); const packageName = await (0, npm_1.getPackageName)(rootDir, sourceName, type); const packageVersion = (0, npm_1.getPackageVersion)(hadVersion, sourceName, sourceVersion, type, rootDir); await (0, io_1.updateExistingJson)(rootDir, constants_1.packageJson, { devDependencies: { [packageName]: packageVersion, }, }); return packageName; } } async function installPiralInstance(usedSource, baseDir, rootDir, npmClient, agent, selected) { const [sourceName, sourceVersion, hadVersion, type] = await (0, npm_2.dissectPackageName)(baseDir, usedSource, npmClient); if (type === 'remote') { const emulator = await (0, website_1.scaffoldFromEmulatorWebsite)(rootDir, sourceName, agent); const packageName = emulator.name; await updatePiletJson(rootDir, packageName, { selected, url: sourceName, }); return packageName; } else { const packageName = await setupPiralInstance(sourceName, type, hadVersion, rootDir, sourceVersion, npmClient); await updatePiletJson(rootDir, packageName, { selected, }); return packageName; } } //# sourceMappingURL=shell.js.map