Skip to content

Commit cf13001

Browse files
David Siegeldomoritz
David Siegel
authored andcommitted
This prevents webpack from trying to minify the yargs dependency when deploying typecript-to-schema as a library in a web app.
This prevents webpack from trying to minify the yargs dependency when deploying typecript-to-schema as a library in a web app. yargs cannot be minified because it's published to npm as es6.
1 parent 5d227bc commit cf13001

5 files changed

+61
-68
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ In case no `tsconfig.json` is available for your project, you can directly speci
2323
The `TYPE` can either be a single, fully qualified type or `*` to generate the schema for all types.
2424

2525
```
26-
Usage: node typescript-json-schema.js <path-to-typescript-files-or-tsconfig> <type>
26+
Usage: typescript-json-schema <path-to-typescript-files-or-tsconfig> <type>
2727
2828
Options:
2929
--refs Create shared ref definitions. [boolean] [default: true]

bin/typescript-json-schema

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/usr/bin/env node
2-
var app = require('../typescript-json-schema.js');
2+
var app = require('../typescript-json-schema-cli.js');
33
app.run();

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
},
6868
"scripts": {
6969
"test": "npm run build && mocha -t 5000 --require source-map-support/register test",
70-
"debug": "ts-node --inspect=19248 --debug-brk typescript-json-schema.ts",
71-
"run": "ts-node typescript-json-schema.ts",
70+
"debug": "ts-node --inspect=19248 --debug-brk typescript-json-schema-cli.ts",
71+
"run": "ts-node typescript-json-schema-cli.ts",
7272
"build": "tsc -p .",
7373
"lint": "tslint --project tsconfig.json -c tslint.json --type-check --exclude '**/*.d.ts'"
7474
}

typescript-json-schema-cli.ts

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { exec, getDefaultArgs } from "./typescript-json-schema";
2+
3+
export function run() {
4+
var helpText = "Usage: typescript-json-schema <path-to-typescript-files-or-tsconfig> <type>";
5+
const defaultArgs = getDefaultArgs();
6+
var args = require("yargs")
7+
.usage(helpText)
8+
.demand(2)
9+
.boolean("refs").default("refs", defaultArgs.ref)
10+
.describe("refs", "Create shared ref definitions.")
11+
.boolean("aliasRefs").default("aliasRefs", defaultArgs.aliasRef)
12+
.describe("aliasRefs", "Create shared ref definitions for the type aliases.")
13+
.boolean("topRef").default("topRef", defaultArgs.topRef)
14+
.describe("topRef", "Create a top-level ref definition.")
15+
.boolean("titles").default("titles", defaultArgs.titles)
16+
.describe("titles", "Creates titles in the output schema.")
17+
.boolean("defaultProps").default("defaultProps", defaultArgs.defaultProps)
18+
.describe("defaultProps", "Create default properties definitions.")
19+
.boolean("noExtraProps").default("noExtraProps", defaultArgs.noExtraProps)
20+
.describe("noExtraProps", "Disable additional properties in objects by default.")
21+
.boolean("propOrder").default("propOrder", defaultArgs.propOrder)
22+
.describe("propOrder", "Create property order definitions.")
23+
.boolean("typeOfKeyword").default("typeOfKeyword", defaultArgs.typeOfKeyword)
24+
.describe("typeOfKeyword", "Use typeOf keyword (https://goo.gl/DC6sni) for functions.")
25+
.boolean("required").default("required", defaultArgs.required)
26+
.describe("required", "Create required array for non-optional properties.")
27+
.boolean("strictNullChecks").default("strictNullChecks", defaultArgs.strictNullChecks)
28+
.describe("strictNullChecks", "Make values non-nullable by default.")
29+
.boolean("ignoreErrors").default("ignoreErrors", defaultArgs.ignoreErrors)
30+
.describe("ignoreErrors", "Generate even if the program has errors.")
31+
.alias("out", "o")
32+
.describe("out", "The output file, defaults to using stdout")
33+
.array("validationKeywords").default("validationKeywords", defaultArgs.validationKeywords)
34+
.describe("validationKeywords", "Provide additional validation keywords to include.")
35+
.argv;
36+
37+
exec(args._[0], args._[1], {
38+
ref: args.refs,
39+
aliasRef: args.aliasRefs,
40+
topRef: args.topRef,
41+
titles: args.titles,
42+
defaultProps: args.defaultProps,
43+
noExtraProps: args.noExtraProps,
44+
propOrder: args.propOrder,
45+
typeOfKeyword: args.useTypeOfKeyword,
46+
required: args.required,
47+
strictNullChecks: args.strictNullChecks,
48+
ignoreErrors: args.ignoreErrors,
49+
out: args.out,
50+
validationKeywords: args.validationKeywords,
51+
excludePrivate: args.excludePrivate,
52+
});
53+
}
54+
55+
if (typeof window === "undefined" && require.main === module) {
56+
run();
57+
}

typescript-json-schema.ts

-64
Original file line numberDiff line numberDiff line change
@@ -1038,67 +1038,3 @@ export function exec(filePattern: string, fullTypeName: string, args = getDefaul
10381038
process.stdout.write(json);
10391039
}
10401040
}
1041-
1042-
export function run() {
1043-
var helpText = "Usage: node typescript-json-schema.js <path-to-typescript-files-or-tsconfig> <type>";
1044-
const defaultArgs = getDefaultArgs();
1045-
var args = require("yargs")
1046-
.usage(helpText)
1047-
.demand(2)
1048-
.boolean("refs").default("refs", defaultArgs.ref)
1049-
.describe("refs", "Create shared ref definitions.")
1050-
.boolean("aliasRefs").default("aliasRefs", defaultArgs.aliasRef)
1051-
.describe("aliasRefs", "Create shared ref definitions for the type aliases.")
1052-
.boolean("topRef").default("topRef", defaultArgs.topRef)
1053-
.describe("topRef", "Create a top-level ref definition.")
1054-
.boolean("titles").default("titles", defaultArgs.titles)
1055-
.describe("titles", "Creates titles in the output schema.")
1056-
.boolean("defaultProps").default("defaultProps", defaultArgs.defaultProps)
1057-
.describe("defaultProps", "Create default properties definitions.")
1058-
.boolean("noExtraProps").default("noExtraProps", defaultArgs.noExtraProps)
1059-
.describe("noExtraProps", "Disable additional properties in objects by default.")
1060-
.boolean("propOrder").default("propOrder", defaultArgs.propOrder)
1061-
.describe("propOrder", "Create property order definitions.")
1062-
.boolean("typeOfKeyword").default("typeOfKeyword", defaultArgs.typeOfKeyword)
1063-
.describe("typeOfKeyword", "Use typeOf keyword (https://goo.gl/DC6sni) for functions.")
1064-
.boolean("required").default("required", defaultArgs.required)
1065-
.describe("required", "Create required array for non-optional properties.")
1066-
.boolean("strictNullChecks").default("strictNullChecks", defaultArgs.strictNullChecks)
1067-
.describe("strictNullChecks", "Make values non-nullable by default.")
1068-
.boolean("ignoreErrors").default("ignoreErrors", defaultArgs.ignoreErrors)
1069-
.describe("ignoreErrors", "Generate even if the program has errors.")
1070-
.alias("out", "o")
1071-
.describe("out", "The output file, defaults to using stdout")
1072-
.array("validationKeywords").default("validationKeywords", defaultArgs.validationKeywords)
1073-
.describe("validationKeywords", "Provide additional validation keywords to include.")
1074-
.argv;
1075-
1076-
exec(args._[0], args._[1], {
1077-
ref: args.refs,
1078-
aliasRef: args.aliasRefs,
1079-
topRef: args.topRef,
1080-
titles: args.titles,
1081-
defaultProps: args.defaultProps,
1082-
noExtraProps: args.noExtraProps,
1083-
propOrder: args.propOrder,
1084-
typeOfKeyword: args.useTypeOfKeyword,
1085-
required: args.required,
1086-
strictNullChecks: args.strictNullChecks,
1087-
ignoreErrors: args.ignoreErrors,
1088-
out: args.out,
1089-
validationKeywords: args.validationKeywords,
1090-
excludePrivate: args.excludePrivate,
1091-
});
1092-
}
1093-
1094-
if (typeof window === "undefined" && require.main === module) {
1095-
run();
1096-
}
1097-
1098-
// exec("example/**/*.ts", "Invoice");
1099-
/*
1100-
let args = defaultArgs;
1101-
args.useRootRef = true;
1102-
const result = generateSchema(getProgramFromFiles(["test/programs/interface-recursion/main.ts"]), "MyObject", args);
1103-
console.log(JSON.stringify(result));
1104-
*/

0 commit comments

Comments
 (0)