piral-cli
Version:
The standard CLI for creating and building a Piral instance or a Pilet.
63 lines • 2.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.upgradePiralDefaults = void 0;
exports.upgradePiral = upgradePiral;
const path_1 = require("path");
const types_1 = require("../types");
const common_1 = require("../common");
exports.upgradePiralDefaults = {
version: 'latest',
target: '.',
logLevel: types_1.LogLevels.info,
install: true,
npmClient: undefined,
};
function updateDependencies(deps, version) {
if (deps) {
for (const name of Object.keys(deps)) {
try {
const data = require(`${name}/package.json`);
const packageRepoUrl = data?.repository?.url;
if (packageRepoUrl === common_1.repositoryUrl) {
deps[name] = version;
}
}
catch {
(0, common_1.log)('packageNotInstalled_0023', name);
}
}
}
}
async function upgradePiral(baseDir = process.cwd(), options = {}) {
const { version = exports.upgradePiralDefaults.version, target = exports.upgradePiralDefaults.target, logLevel = exports.upgradePiralDefaults.logLevel, install = exports.upgradePiralDefaults.install, npmClient: defaultNpmClient = exports.upgradePiralDefaults.npmClient, } = options;
(0, common_1.ensure)('baseDir', baseDir, 'string');
(0, common_1.ensure)('target', target, 'string');
const fullBase = (0, path_1.resolve)(process.cwd(), baseDir);
const root = (0, path_1.resolve)(fullBase, target);
(0, common_1.setLogLevel)(logLevel);
const valid = await (0, common_1.checkExistingDirectory)(root);
const exists = await (0, common_1.checkExists)((0, path_1.join)(root, 'package.json'));
if (!valid || !exists) {
(0, common_1.fail)('packageJsonNotFound_0020');
}
const npmClient = await (0, common_1.determineNpmClient)(root, defaultNpmClient);
(0, common_1.progress)(`Checking provided version ...`);
const realVersion = await (0, common_1.findSpecificVersion)('piral-cli', version);
if (!realVersion) {
(0, common_1.fail)('packageVersionInvalid_0024', version);
}
(0, common_1.log)('generalDebug_0003', `Found real version: "${version}".`);
const pckg = await (0, common_1.readJson)(root, 'package.json');
(0, common_1.log)('generalDebug_0003', `Updating all dependencies ...`);
(0, common_1.progress)(`Reading installed packages ...`);
updateDependencies(pckg.devDependencies, realVersion);
updateDependencies(pckg.dependencies, realVersion);
(0, common_1.log)('generalDebug_0003', `Patching the package.json ...`);
await (0, common_1.updateExistingJson)(root, 'package.json', pckg);
if (install) {
(0, common_1.progress)(`Updating the npm packages to %s ...`, version);
await (0, common_1.installNpmDependencies)(npmClient, root);
}
(0, common_1.logDone)('Piral instance upgraded successfully!');
}
//# sourceMappingURL=upgrade-piral.js.map