tsdk
Version:
Type-safe API development and code share tool for TypeScript projects.
98 lines (95 loc) • 4.33 kB
JavaScript
;
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();