@httpc/cli
Version:
httpc cli for building function-based API with minimal code and end-to-end type safety
41 lines (40 loc) • 1.81 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.initialize = void 0;
const path_1 = __importDefault(require("path"));
const giget_1 = require("giget");
const _1 = require(".");
async function initialize(templateName, dest, options) {
await _1.fsUtils.clearDir(dest);
await _1.fsUtils.createDir(dest);
await copyTemplate(templateName, dest);
// write client package values
return await _1.packageUtils.patch(dest, (json) => ({
name: options?.packageName,
templateType: undefined,
dependencies: removeWorkspaceProtocol(json.dependencies),
peerDependencies: removeWorkspaceProtocol(json.peerDependencies),
devDependencies: removeWorkspaceProtocol(json.devDependencies),
}));
function removeWorkspaceProtocol(dependencies) {
return dependencies && Object.fromEntries(Object.entries(dependencies).map(([key, value]) => [key, value.startsWith("workspace:") ? value.substring("workspace:".length) : value]));
}
}
exports.initialize = initialize;
const TEMPLATE_PATH = "github:giuseppelt/httpc/templates/$TEMPLATE_NAME#master";
async function copyTemplate(templateName, dest) {
if (process.env.LOCAL_TEMPLATE_ROOT) {
const LOCAL_ROOT = process.env.LOCAL_TEMPLATE_ROOT;
await _1.fsUtils.copyDir(path_1.default.join(LOCAL_ROOT, templateName), dest, [
"node_modules"
]);
return;
}
_1.log.verbose("Downloading template: %s", templateName);
await (0, giget_1.downloadTemplate)(TEMPLATE_PATH.replace("$TEMPLATE_NAME", templateName), {
dir: dest,
});
}
;