1 |
|
2 | ;
|
3 | var __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 | };
|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
12 | var minimist = require("minimist");
|
13 | var stdin = require("get-stdin");
|
14 | var _1 = require("./");
|
15 | var immutable_1 = require("immutable");
|
16 | var path_1 = require("path");
|
17 | var fs_1 = require("fs");
|
18 | var argv = minimist(process.argv.slice(2));
|
19 | // unique input
|
20 | var inputs = immutable_1.OrderedSet(argv._);
|
21 | // defaults
|
22 | var defaults = {
|
23 | stdin: false,
|
24 | namespace: false,
|
25 | flow: false
|
26 | };
|
27 | // merged options with defaults
|
28 | var options = __assign({}, defaults, argv);
|
29 | if (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 | }
|
49 | else {
|
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 | }
|
85 | function 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 |