openapi-typescript
Advanced tools
Comparing version 3.1.0 to 3.1.1
@@ -12,4 +12,3 @@ const mime = require("mime"); | ||
try { | ||
const rawSpec = await loadFromHttp(pathToSpec, { auth }); | ||
return rawSpec; | ||
return loadFromHttp(pathToSpec, { auth }); | ||
} catch (e) { | ||
@@ -26,3 +25,6 @@ if (e.code === "ENOTFOUND") { | ||
// option 2: local file | ||
return loadFromFs(pathToSpec); | ||
return { | ||
body: loadFromFs(pathToSpec), | ||
contentType: mime.getType(pathToSpec), | ||
}; | ||
} | ||
@@ -35,9 +37,9 @@ | ||
const contentType = mime.getType(pathToSpec); | ||
const rawSpec = await load(pathToSpec, { auth }); | ||
const { body, contentType } = await load(pathToSpec, { auth }); | ||
switch (contentType) { | ||
case "application/openapi+yaml": | ||
case "text/yaml": { | ||
try { | ||
return yaml.load(rawSpec); | ||
return yaml.load(body); | ||
} catch (err) { | ||
@@ -48,5 +50,6 @@ throw new Error(`YAML: ${err.toString()}`); | ||
case "application/json": | ||
case "application/json5": { | ||
case "application/json5": | ||
case "application/openapi+json": { | ||
try { | ||
return JSON.parse(rawSpec); | ||
return JSON.parse(body); | ||
} catch (err) { | ||
@@ -57,3 +60,12 @@ throw new Error(`JSON: ${err.toString()}`); | ||
default: { | ||
throw new Error(`Unknown format${contentType ? `: "${contentType}"` : ""}. Only YAML or JSON supported.`); | ||
try { | ||
return JSON.parse(body); // unknown attempt 1: JSON | ||
} catch (err1) { | ||
try { | ||
return yaml.load(body); // unknown attempt 2: YAML | ||
} catch (err2) { | ||
// give up: unknown type | ||
throw new Error(`Unknown format${contentType ? `: "${contentType}"` : ""}. Only YAML or JSON supported.`); | ||
} | ||
} | ||
} | ||
@@ -60,0 +72,0 @@ } |
@@ -26,3 +26,6 @@ const http = require("http"); | ||
if (res.statusCode >= 200 && res.statusCode < 300) { | ||
return resolve(rawData); | ||
return resolve({ | ||
body: rawData, | ||
contentType: res.headers["content-type"].split(";")[0].trim(), | ||
}); | ||
} | ||
@@ -29,0 +32,0 @@ |
{ | ||
"name": "openapi-typescript", | ||
"description": "Generate TypeScript types from Swagger OpenAPI specs", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"engines": { | ||
@@ -6,0 +6,0 @@ "node": ">= 10.0.0" |
143173
2085