quicktype 16.0.7 → 16.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -565,12 +565,7 @@ function getSources(options) {
565
565
  });
566
566
  }
567
567
  function makeTypeScriptSource(fileNames) {
568
- const sources = {};
569
- for (const fileName of fileNames) {
570
- const baseName = path.basename(fileName);
571
- sources[baseName] = quicktype_core_1.defined(fs.readFileSync(fileName, "utf8"));
572
- }
573
- return Object.assign({ kind: "schema" }, quicktype_typescript_input_1.schemaForTypeScriptSources(sources));
568
+ return Object.assign({ kind: "schema" }, quicktype_typescript_input_1.schemaForTypeScriptSources(fileNames));
574
569
  }
575
570
  function jsonInputForTargetLanguage(targetLanguage, languages, handleJSONRefs = false) {
576
571
  if (typeof targetLanguage === "string") {
@@ -1,5 +1,2 @@
1
1
  import { JSONSchemaSourceData } from "../quicktype-core";
2
2
  export declare function schemaForTypeScriptSources(sourceFileNames: string[]): JSONSchemaSourceData;
3
- export declare function schemaForTypeScriptSources(sources: {
4
- [fileName: string]: string;
5
- }): JSONSchemaSourceData;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ts = require("typescript");
4
4
  const typescript_json_schema_1 = require("@mark.probst/typescript-json-schema");
5
5
  const quicktype_core_1 = require("../quicktype-core");
6
- const EncodedDefaultTypeScriptLibrary_1 = require("./EncodedDefaultTypeScriptLibrary");
7
6
  const settings = {
8
7
  required: true,
9
8
  titles: true,
@@ -16,72 +15,13 @@ const compilerOptions = {
16
15
  target: ts.ScriptTarget.ES5,
17
16
  module: ts.ModuleKind.CommonJS,
18
17
  strictNullChecks: true,
19
- typeRoots: []
18
+ typeRoots: [],
19
+ rootDir: "."
20
20
  };
21
- const libFileName = "lib.d.ts";
22
- let libSource = undefined;
23
- function getLibSource() {
24
- if (libSource === undefined) {
25
- libSource = quicktype_core_1.inflateBase64(EncodedDefaultTypeScriptLibrary_1.encodedDefaultTypeScriptLibrary);
26
- }
27
- return libSource;
28
- }
29
- class CompilerHost {
30
- constructor(_options, _sources) {
31
- this._sources = _sources;
32
- }
33
- fileExists(fileName) {
34
- if (fileName === libFileName)
35
- return true;
36
- return Object.prototype.hasOwnProperty.call(this._sources, fileName);
37
- }
38
- readFile(fileName) {
39
- if (fileName === libFileName) {
40
- return getLibSource();
41
- }
42
- return this._sources[fileName];
43
- }
44
- getSourceFile(fileName, languageVersion, _onError, _shouldCreateNewSourceFile) {
45
- const sourceText = this.readFile(fileName);
46
- return sourceText !== undefined ? ts.createSourceFile(fileName, sourceText, languageVersion) : undefined;
47
- }
48
- getDefaultLibFileName(_options) {
49
- return libFileName;
50
- }
51
- writeFile(fileName) {
52
- return quicktype_core_1.panic(`writeFile should not be called by the TypeScript compiler. Filename ${fileName}`);
53
- }
54
- getCurrentDirectory() {
55
- return ".";
56
- }
57
- getDirectories(_path) {
58
- return [];
59
- }
60
- getCanonicalFileName(fileName) {
61
- if (this.useCaseSensitiveFileNames()) {
62
- return fileName.toLowerCase();
63
- }
64
- return fileName;
65
- }
66
- useCaseSensitiveFileNames() {
67
- return false;
68
- }
69
- getNewLine() {
70
- return "\n";
71
- }
72
- }
73
- function schemaForTypeScriptSources(sources) {
74
- let fileNames;
75
- let host;
76
- if (Array.isArray(sources)) {
77
- fileNames = sources;
78
- host = ts.createCompilerHost(compilerOptions);
79
- }
80
- else {
81
- fileNames = Object.getOwnPropertyNames(sources);
82
- host = new CompilerHost(compilerOptions, sources);
83
- }
84
- const program = ts.createProgram(fileNames, compilerOptions, host);
21
+ // FIXME: We're stringifying and then parsing this schema again. Just pass around
22
+ // the schema directly.
23
+ function schemaForTypeScriptSources(sourceFileNames) {
24
+ const program = ts.createProgram(sourceFileNames, compilerOptions);
85
25
  const diagnostics = ts.getPreEmitDiagnostics(program);
86
26
  const error = diagnostics.find(d => d.category === ts.DiagnosticCategory.Error);
87
27
  if (error !== undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quicktype",
3
- "version": "16.0.7",
3
+ "version": "16.0.9",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/cli/index.js",
6
6
  "types": "dist/cli/index.d.ts",
@@ -39,7 +39,7 @@
39
39
  "wordwrap": "^1.0.0",
40
40
  "yaml": "^1.5.0",
41
41
  "readable-stream": "2.3.0",
42
- "isomorphic-fetch": "^2.2.1",
42
+ "isomorphic-fetch": "^3.0.0",
43
43
  "browser-or-node": "^1.2.1"
44
44
  },
45
45
  "devDependencies": {
@@ -1 +0,0 @@
1
- export declare const encodedDefaultTypeScriptLibrary = "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";
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodedDefaultTypeScriptLibrary = "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";