UNPKG

12.4 kBJavaScriptView Raw
1#!/usr/bin/env node
2"use strict";
3var __assign = (this && this.__assign) || Object.assign || function(t) {
4 for (var s, i = 1, n = arguments.length; i < n; i++) {
5 s = arguments[i];
6 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 t[p] = s[p];
8 }
9 return t;
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12var minimist = require("minimist");
13var stdin = require("get-stdin");
14var _1 = require("./");
15var immutable_1 = require("immutable");
16var path_1 = require("path");
17var fs_1 = require("fs");
18var argv = minimist(process.argv.slice(2));
19// unique input
20var inputs = immutable_1.OrderedSet(argv._);
21// defaults
22var defaults = {
23 stdin: false,
24 namespace: false,
25 flow: false
26};
27// merged options with defaults
28var options = __assign({}, defaults, argv);
29if (options.stdin) {
30 stdin().then(function (str) {
31 if (str === '') {
32 console.error('no input provided');
33 }
34 else {
35 try {
36 JSON.parse(str);
37 console.log(_1.json2ts(str, options));
38 }
39 catch (e) {
40 console.error('Invalid JSON');
41 console.error(e.message);
42 }
43 }
44 })
45 .catch(function (err) {
46 console.error(err);
47 });
48}
49else {
50 if (inputs.size === 0) {
51 console.error('Oops! You provided no inputs');
52 console.log("\nYou can pipe JSON to this program with the --stdin flag:\n\n curl http://example.com/some-json | json-ts --stdin\n \nOr, provide path names:\n\n json-ts path/to/my-file.json\n ");
53 }
54 else {
55 var queue = inputs
56 .map(function (input) {
57 return {
58 input: input,
59 parsed: path_1.parse(input),
60 };
61 })
62 .map(function (incoming) {
63 return {
64 incoming: incoming,
65 resolved: resolveInput(incoming, process.cwd())
66 };
67 });
68 var withErrors = queue.filter(function (x) { return x.resolved.errors.length > 0; });
69 var withoutErrors = queue.filter(function (x) { return x.resolved.errors.length === 0; });
70 if (withErrors.size) {
71 console.log('Sorry, there were errors with your input.');
72 withErrors.forEach(function (item) {
73 console.log('');
74 console.log(" " + item.incoming.input + ":");
75 console.log(' ', item.resolved.errors[0].error.message);
76 });
77 }
78 else {
79 withoutErrors.forEach(function (item) {
80 console.log(_1.json2ts(item.resolved.content, options));
81 });
82 }
83 }
84}
85function resolveInput(incoming, cwd) {
86 var absolute = path_1.join(cwd, incoming.parsed.dir, incoming.parsed.base);
87 if (!fs_1.existsSync(absolute)) {
88 return {
89 errors: [{
90 kind: 'FileNotFound',
91 error: new Error("File not found")
92 }]
93 };
94 }
95 var data = fs_1.readFileSync(absolute, 'utf8');
96 try {
97 JSON.parse(data);
98 return {
99 errors: [],
100 content: data
101 };
102 }
103 catch (e) {
104 return {
105 errors: [{
106 kind: 'InvalidJson',
107 error: e
108 }]
109 };
110 }
111}
112// console.log('options:', options);
113// console.log('inputs:', inputs);
114// console.log('args', argv);
115//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLG1DQUFzQztBQUN0QyxpQ0FBb0M7QUFDcEMsdUJBQTJCO0FBQzNCLHVDQUE2QztBQUM3Qyw2QkFBNkM7QUFDN0MseUJBQXNEO0FBQ3RELElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTdDLGVBQWU7QUFDZixJQUFNLE1BQU0sR0FBRyxzQkFBVSxDQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUxQyxXQUFXO0FBQ1gsSUFBTSxRQUFRLEdBQUc7SUFDYixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLElBQUksRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLCtCQUErQjtBQUMvQixJQUFNLE9BQU8sZ0JBQ04sUUFBUSxFQUNSLElBQUksQ0FDVixDQUFDO0FBRUYsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBVztRQUNyQixFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1QsT0FBTyxDQUFDLEtB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SyxDQUFDLGdCQUFnQixDQUFDO2lCQUNyQyxDQUFDO1NBQ0wsQ0FBQTtJQUNMLENBQUM7SUFDRCxJQUFNLElBQUksR0FBRyxpQkFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQztZQUNILE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQTtJQUNMLENBQUM7SUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsTUFBTSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUM7b0JBQ0wsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLEtBQUssRUFBRSxDQUFDO2lCQUNYLENBQUM7U0FDTCxDQUFBO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFDRCxvQ0FBb0M7QUFDcEMsa0NBQWtDO0FBQ2xDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCBtaW5pbWlzdCA9IHJlcXVpcmUoJ21pbmltaXN0Jyk7XG5pbXBvcnQgc3RkaW4gPSByZXF1aXJlKCdnZXQtc3RkaW4nKTtcbmltcG9ydCB7anNvbjJ0c30gZnJvbSAnLi8nO1xuaW1wb3J0IHtmcm9tSlMsIE9yZGVyZWRTZXR9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQge2pvaW4sIHBhcnNlLCBQYXJzZWRQYXRofSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtleGlzdHNTeW5jLCByZWFkRmlsZSwgcmVhZEZpbGVTeW5jfSBmcm9tIFwiZnNcIjtcbmNvbnN0IGFyZ3YgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpO1xuXG4vLyB1bmlxdWUgaW5wdXRcbmNvbnN0IGlucHV0cyA9IE9yZGVyZWRTZXQ8c3RyaW5nPihhcmd2Ll8pO1xuXG4vLyBkZWZhdWx0c1xuY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgc3RkaW46IGZhbHNlLFxuICAgIG5hbWVzcGFjZTogZmFsc2UsXG4gICAgZmxvdzogZmFsc2Vcbn07XG5cbi8vIG1lcmdlZCBvcHRpb25zIHdpdGggZGVmYXVsdHNcbmNvbnN0IG9wdGlvbnMgPSB7XG4gICAgLi4uZGVmYXVsdHMsXG4gICAgLi4uYXJndlxufTtcblxuaWYgKG9wdGlvbnMuc3RkaW4pIHtcbiAgICBzdGRpbigpLnRoZW4oKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChzdHIgPT09ICcnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdubyBpbnB1dCBwcm92aWRlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coanNvbjJ0cyhzdHIsIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIEpTT04nKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KVxuICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfSlcbn0gZWxzZSB7XG4gICAgaWYgKGlucHV0cy5zaXplID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ09vcHMhIFlvdSBwcm92aWRlZCBubyBpbnB1dHMnKTtcbiAgICAgICAgY29uc29sZS5sb2coYFxuWW91IGNhbiBwaXBlIEpTT04gdG8gdGhpcyBwcm9ncmFtIHdpdGggdGhlIC0tc3RkaW4gZmxhZzpcblxuICAgIGN1cmwgaHR0cDovL2V4YW1wbGUuY29tL3NvbWUtanNvbiB8IGpzb24tdHMgLS1zdGRpblxuICAgIFxuT3IsIHByb3ZpZGUgcGF0aCBuYW1lczpcblxuICAgIGpzb24tdHMgcGF0aC90by9teS1maWxlLmpzb25cbiAgICAgICAgYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcXVldWUgPSBpbnB1dHNcbiAgICAgICAgICAgIC5tYXAoaW5wdXQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWQ6IHBhcnNlKGlucHV0KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoaW5jb21pbmcgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGluY29taW5nLFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZDogcmVzb2x2ZUlucHV0KGluY29taW5nLCBwcm9jZXNzLmN3ZCgpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHdpdGhFcnJvcnMgPSBxdWV1ZS5maWx0ZXIoeCA9PiB4LnJlc29sdmVkLmVycm9ycy5sZW5ndGggPiAwKTtcbiAgICAgICAgY29uc3Qgd2l0aG91dEVycm9ycyA9IHF1ZXVlLmZpbHRlcih4ID0+IHgucmVzb2x2ZWQuZXJyb3JzLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIGlmICh3aXRoRXJyb3JzLnNpemUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTb3JyeSwgdGhlcmUgd2VyZSBlcnJvcnMgd2l0aCB5b3VyIGlucHV0LicpO1xuICAgICAgICAgICAgd2l0aEVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAgICR7aXRlbS5pbmNvbWluZy5pbnB1dH06YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyAgICAnLCBpdGVtLnJlc29sdmVkLmVycm9yc1swXS5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aXRob3V0RXJyb3JzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coanNvbjJ0cyhpdGVtLnJlc29sdmVkLmNvbnRlbnQsIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSUluY29taW5nSW5wdXQge1xuICAgIGlucHV0OiBzdHJpbmcsXG4gICAgcGFyc2VkOiBQYXJzZWRQYXRoLFxufVxuaW50ZXJmYWNlIElucHV0RXJyb3Ige1xuICAgIGtpbmQ6IHN0cmluZyxcbiAgICBlcnJvcjogRXJyb3Jcbn1cbmludGVyZmFjZSBJUmVzb2x2ZWRJbnB1dCB7XG4gICAgZXJyb3JzOiBJbnB1dEVycm9yW10sXG4gICAgY29udGVudD86IHN0cmluZ1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSW5wdXQoaW5jb21pbmc6IElJbmNvbWluZ0lucHV0LCBjd2QpOiBJUmVzb2x2ZWRJbnB1dCB7XG4gICAgY29uc3QgYWJzb2x1dGUgPSBqb2luKGN3ZCwgaW5jb21pbmcucGFyc2VkLmRpciwgaW5jb21pbmcucGFyc2VkLmJhc2UpXG4gICAgaWYgKCFleGlzdHNTeW5jKGFic29sdXRlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXJyb3JzOiBbe1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdGaWxlTm90Rm91bmQnLFxuICAgICAgICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3IoYEZpbGUgbm90IGZvdW5kYClcbiAgICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhhYnNvbHV0ZSwgJ3V0ZjgnKTtcbiAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGRhdGFcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yczogW3tcbiAgICAgICAgICAgICAgICBraW5kOiAnSW52YWxpZEpzb24nLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlXG4gICAgICAgICAgICB9XVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gY29uc29sZS5sb2coJ29wdGlvbnM6Jywgb3B0aW9ucyk7XG4vLyBjb25zb2xlLmxvZygnaW5wdXRzOicsIGlucHV0cyk7XG4vLyBjb25zb2xlLmxvZygnYXJncycsIGFyZ3YpO1xuIl19
\No newline at end of file