UNPKG

tsdk

Version:

Type-safe API development and code share tool for TypeScript projects.

98 lines (95 loc) 4.33 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.run = void 0; const compile_tsdk_1 = require("./compile-tsdk"); const config_1 = require("./config"); const get_pkg_manager_1 = require("./get-pkg-manager"); const prettier_1 = require("./prettier"); const remove_fields_1 = require("./remove-fields"); const run_nest_command_1 = require("./run-nest-command"); const symbols_1 = __importDefault(require("./symbols")); const sync_api_1 = require("./sync-api"); const sync_files_1 = require("./sync-files"); function run() { return __awaiter(this, void 0, void 0, function* () { const params = process.argv.filter((i) => i.startsWith('--')); const commands = { help: ` Usage $ tsdk Options --help help --init initialize \`tsdk\` config file --sync sync files and generate api --sync --no-overwrite default is overwrite with template files(no overwrite for create custom files) --nest run nest command, only support build --version the verison info Examples $ tsdk --version $ tsdk --help $ tsdk --init $ tsdk --sync $ tsdk --sync --no-overwrite $ $ tsdk --nest build $ tsdk --nest build [name] [name] $ tsdk --nest build all `, init: `init \`tsdk\` config file`, sync: `generate api`, nest: `@nestjs/cli enchance`, }; const validProjectMsg = `Please run \`tsdk\` in a valid TypeScript project's root directory.`; if (params.length === 0 || params[0] === '--help') { console.log(commands.help); if (!config_1.tsconfigExists) { console.log(symbols_1.default.warning, validProjectMsg, '\n'); } } else if (params[0] === '--version') { yield (0, config_1.parsePkg)(); console.log(`${config_1.pkg.name}@${config_1.pkg.version}`); } else if (!config_1.tsconfigExists) { console.log('\n', 'Error: >> ', symbols_1.default.error, validProjectMsg, '\n'); } else if (params[0] === `--init`) { yield (0, sync_files_1.copyTsdkConfig)(); console.log(symbols_1.default.success, '`tsdk.config.js` copied!'); console.log(symbols_1.default.info, `You can edit and generate the SDK package with \`${(0, get_pkg_manager_1.getNpmCommand)(process.cwd()).npxCmd} tsdk --sync\``); yield (0, sync_files_1.addDepsIfNone)(); } else if (params[0] === `--sync`) { yield (0, sync_api_1.deleteSDKFolder)(); yield (0, sync_files_1.addDepsIfNone)(); const noOverwrite = params[1] === `--no-overwrite`; yield (0, sync_files_1.syncFiles)(noOverwrite); console.log('\n\n', symbols_1.default.bullet, 'build configs for generate APIs'); yield (0, compile_tsdk_1.buildSDK)(true); console.log(symbols_1.default.success, 'build configs for generate APIs'); yield (0, sync_api_1.syncAPI)(); console.log('\n\n', symbols_1.default.bullet, 'build files'); yield (0, compile_tsdk_1.buildSDK)(); console.log(symbols_1.default.success, 'build files\n'); yield Promise.all([(0, sync_api_1.copyPermissionsJSON)(), (0, remove_fields_1.removeFields)()]); yield (0, prettier_1.runPrettier)(); } else if (params[0] === `--nest`) { (0, run_nest_command_1.runNestCommand)(); } }); } exports.run = run; run();