piral-cli
Version:
The standard CLI for creating and building a Piral instance or a Pilet.
50 lines • 2.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removePiralInstancePiletDefaults = void 0;
exports.removePiralInstancePilet = removePiralInstancePilet;
const path_1 = require("path");
const types_1 = require("../types");
const common_1 = require("../common");
exports.removePiralInstancePiletDefaults = {
logLevel: types_1.LogLevels.info,
app: undefined,
source: '.',
npmClient: undefined,
};
async function removePiralInstancePilet(baseDir = process.cwd(), options = {}) {
const { npmClient: defaultNpmClient = exports.removePiralInstancePiletDefaults.npmClient, logLevel = exports.removePiralInstancePiletDefaults.logLevel, source = exports.removePiralInstancePiletDefaults.source, app = exports.removePiralInstancePiletDefaults.app, } = options;
(0, common_1.ensure)('baseDir', baseDir, 'string');
(0, common_1.ensure)('source', source, 'string');
(0, common_1.ensure)('app', app, 'string');
const fullBase = (0, path_1.resolve)(process.cwd(), baseDir);
(0, common_1.setLogLevel)(logLevel);
(0, common_1.progress)('Reading configuration ...');
const npmClient = await (0, common_1.determineNpmClient)(fullBase, defaultNpmClient);
const allEntries = await (0, common_1.matchAnyPilet)(fullBase, [source]);
const tasks = allEntries.map(async (entryModule) => {
const targetDir = (0, path_1.dirname)(entryModule);
const piletJsonPath = await (0, common_1.findFile)(targetDir, common_1.piletJson);
if (piletJsonPath) {
const piletJsonDir = (0, path_1.dirname)(piletJsonPath);
const oldContent = await (0, common_1.readJson)(piletJsonDir, common_1.piletJson);
const root = await (0, common_1.findPiletRoot)(piletJsonDir);
if ('piralInstances' in oldContent && app in oldContent.piralInstances) {
const newContent = {
...oldContent,
piralInstances: {
...oldContent.piralInstances,
[app]: undefined,
},
};
await (0, common_1.writeJson)(piletJsonDir, common_1.piletJson, newContent, true);
}
await (0, common_1.uninstallNpmPackage)(npmClient, app, root);
}
else {
(0, common_1.log)('piletJsonNotAvailable_0180', targetDir);
}
});
await Promise.all(tasks);
(0, common_1.logDone)(`Removed the Piral instance!`);
}
//# sourceMappingURL=remove-piral-instance-pilet.js.map