UNPKG

@krlwlfrt/xsdco

Version:
47 lines 4.44 kB
#!/usr/bin/env node "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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const tsg_1 = require("@krlwlfrt/tsg"); const commander_1 = require("commander"); const fs_1 = require("fs"); const path_1 = require("path"); const common_1 = require("./common"); const examples_1 = require("./examples"); const extract_1 = require("./extract"); const generate_1 = require("./generate"); const commander = new commander_1.Command('xsdco'); const version = JSON .parse((0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '..', 'package.json')) .toString()) .version; commander .version(version) .arguments('<path> <outputPath>') .action((path, outputPath) => __awaiter(void 0, void 0, void 0, function* () { const absolutePath = (0, path_1.resolve)(path); const absoluteOutputPath = (0, path_1.resolve)(outputPath); common_1.logger.info(`Extracting types from ${absolutePath}.`); const types = yield (0, extract_1.extractFromFile)(absolutePath); const typeMap = {}; for (const type of types) { typeMap[type.name] = type; } const outputDirectory = (0, path_1.resolve)(absoluteOutputPath, (0, common_1.sha256)(path)); (0, fs_1.mkdirSync)(outputDirectory, { recursive: true }); (0, fs_1.writeFileSync)((0, path_1.resolve)(outputDirectory, 'types.ts'), (0, tsg_1.generateTypeScript)(types, examples_1.generateName, (0, examples_1.generatePropertyTypeFactory)(['xs', 'xsd']))); for (const type of types.filter(tsg_1.isEntity)) { (0, fs_1.writeFileSync)((0, path_1.resolve)(outputDirectory, `${type.name}.xml`), (0, generate_1.generateXml)((0, generate_1.generateObjectValue)(type, typeMap))); } })); commander .parse(process.argv); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWVBLHVDQUFpRTtBQUNqRSx5Q0FBa0M7QUFDbEMsMkJBQTBEO0FBQzFELCtCQUE2QjtBQUM3QixxQ0FBd0M7QUFDeEMseUNBQXFFO0FBQ3JFLHVDQUEwQztBQUMxQyx5Q0FBNEQ7QUFFNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQkFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUk7S0FDakIsS0FBSyxDQUNKLElBQUEsaUJBQVksRUFBQyxJQUFBLGNBQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQ25ELFFBQVEsRUFBRSxDQUNkO0tBQ0EsT0FBTyxDQUFDO0FBRVgsU0FBUztLQUNOLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDaEIsU0FBUyxDQUFDLHFCQUFxQixDQUFDO0tBQ2hDLE1BQU0sQ0FBQyxDQUFPLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUEsY0FBTyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLGVBQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFdEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLHlCQUFlLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFHbEQsTUFBTSxPQUFPLEdBQXlCLEVBQUUsQ0FBQztJQUV6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGNBQU8sRUFBQyxrQkFBa0IsRUFBRSxJQUFBLGVBQU0sRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWxFLElBQUEsY0FBUyxFQUFDLGVBQWUsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBRTlDLElBQUEsa0JBQWEsRUFBQyxJQUFBLGNBQU8sRUFBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBQSx3QkFBa0IsRUFDcEUsS0FBSyxFQUNMLHVCQUFZLEVBQ1osSUFBQSxzQ0FBMkIsRUFBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUMzQyxDQUFDLENBQUM7SUFFSCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxJQUFBLGtCQUFhLEVBQ1gsSUFBQSxjQUFPLEVBQUMsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLEVBQzVDLElBQUEsc0JBQVcsRUFBQyxJQUFBLDhCQUFtQixFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7QUFFTCxTQUFTO0tBQ04sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyJ9