UNPKG

@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
"use strict"; 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, }); }