create-ckb-js-vm-app
Version:
CLI tool to quickly bootstrap CKB on-chain script with ckb-js-vm.
52 lines • 1.72 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateNpmName = validateNpmName;
exports.getPkgManager = getPkgManager;
exports.isFolderEmpty = isFolderEmpty;
exports.install = install;
const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const child_process_1 = require("child_process");
function validateNpmName(name) {
const nameValidation = (0, validate_npm_package_name_1.default)(name);
if (nameValidation.validForNewPackages) {
return { valid: true };
}
return {
valid: false,
problems: [
...(nameValidation.errors || []),
...(nameValidation.warnings || []),
],
};
}
function getPkgManager() {
return "pnpm";
}
function isFolderEmpty(folderPath) {
const files = fs_extra_1.default.readdirSync(folderPath);
return files.length === 0;
}
async function install(packageManager) {
const args = ["install"];
try {
await (0, child_process_1.spawn)(packageManager, args, {
stdio: "inherit",
env: {
...process.env,
ADBLOCK: "1",
// we set NODE_ENV to development as pnpm skips dev
// dependencies when production
NODE_ENV: "development",
DISABLE_OPENCOLLECTIVE: "1",
},
});
}
catch (error) {
throw { command: `${packageManager} ${args.join(" ")}` };
}
}
//# sourceMappingURL=helpers.js.map
;