@krlwlfrt/xsdco
Version:
XSD converter
47 lines • 4.44 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());
});
};
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