Skip to content

Commit ed7ad35

Browse files
authored
Remove CJS build, update deps, use undici (#866)
1 parent b1b8d13 commit ed7ad35

27 files changed

+235
-798
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.dccache
12
.cache
23
.DS_Store
34
.nyc_output/

bin/cli.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import fs from "fs";
44
import path from "path";
55
import glob from "tiny-glob";
66
import parser from "yargs-parser";
7-
import openapiTS from "../dist/esm/index.js";
7+
import openapiTS from "../dist/index.js";
88

99
const GREEN = "\u001b[32m";
1010
const BOLD = "\u001b[1m";

package-lock.json

Lines changed: 192 additions & 744 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,13 @@
1111
"bin": {
1212
"openapi-typescript": "bin/cli.js"
1313
},
14-
"main": "./dist/cjs/index.js",
15-
"module": "./dist/esm/index.js",
14+
"main": "./dist/index.js",
15+
"module": "./dist/index.js",
1616
"type": "module",
17-
"exports": {
18-
".": {
19-
"browser": "./dist/esm/index.js",
20-
"import": "./dist/esm/index.js",
21-
"require": "./dist/cjs/index.cjs"
22-
},
23-
"./*": "./*"
24-
},
2517
"files": [
2618
"bin",
2719
"dist",
28-
"src",
29-
"types"
20+
"src"
3021
],
3122
"repository": {
3223
"type": "git",
@@ -48,10 +39,7 @@
4839
},
4940
"homepage": "https://github.com/drwpow/openapi-typescript#readme",
5041
"scripts": {
51-
"build": "rm -rf dist && npm run build:esm && npm run build:cjs && npm run build:cjs-types",
52-
"build:cjs": "esbuild src/index.ts --bundle --format=cjs --outfile=dist/cjs/index.cjs --platform=node --target=es2019 --external:js-yaml --external:mime --external:node-fetch --external:prettier --external:tiny-glob",
53-
"build:cjs-types": "echo \"import openapiTS from '../esm/index';\nexport default openapiTS;\nexport * from '../esm/index';\" > dist/cjs/index.d.ts",
54-
"build:esm": "tsc",
42+
"build": "rm -rf dist && tsc",
5543
"format": "npm run prettier -w .",
5644
"lint": "eslint .",
5745
"prepare": "npm run build",
@@ -63,28 +51,26 @@
6351
"dependencies": {
6452
"js-yaml": "^4.1.0",
6553
"mime": "^3.0.0",
66-
"node-fetch": "^3.1.0",
6754
"prettier": "^2.5.1",
6855
"tiny-glob": "^0.2.9",
56+
"undici": "^4.12.2",
6957
"yargs-parser": "^21.0.0"
7058
},
7159
"devDependencies": {
7260
"@types/js-yaml": "^4.0.5",
7361
"@types/mime": "^2.0.3",
74-
"@types/node": "^17.0.8",
75-
"@types/node-fetch": "^3.0.3",
76-
"@types/prettier": "^2.4.2",
77-
"@typescript-eslint/eslint-plugin": "^5.9.1",
78-
"@typescript-eslint/parser": "^5.9.1",
62+
"@types/node": "^17.0.10",
63+
"@types/prettier": "^2.4.3",
64+
"@typescript-eslint/eslint-plugin": "^5.10.0",
65+
"@typescript-eslint/parser": "^5.10.0",
7966
"chai": "^4.3.4",
8067
"codecov": "^3.8.3",
8168
"eol": "^0.9.1",
82-
"esbuild": "^0.14.11",
83-
"eslint": "^8.6.0",
69+
"eslint": "^8.7.0",
8470
"eslint-config-prettier": "^8.3.0",
8571
"eslint-plugin-prettier": "^4.0.0",
86-
"mocha": "^9.1.3",
72+
"mocha": "^9.1.4",
8773
"nyc": "^15.1.0",
88-
"typescript": "^4.5.4"
74+
"typescript": "^4.5.5"
8975
}
9076
}

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, OpenAPI2, OpenAPI3, SchemaObject, SwaggerToTSOptions } from "./types";
1+
import type { GlobalContext, OpenAPI2, OpenAPI3, SchemaObject, SwaggerToTSOptions } from "./types.js";
22
import path from "path";
33
import prettier from "prettier";
44
import parserTypescript from "prettier/parser-typescript.js";

src/load.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import type { GlobalContext, Headers } from "./types";
2-
import fetch from "node-fetch";
1+
import type { GlobalContext, Headers } from "./types.js";
2+
import type { Dispatcher } from "undici";
3+
import { request } from "undici";
34
import fs from "fs";
45
import path from "path";
56
import { URL } from "url";
@@ -136,9 +137,10 @@ export default async function load(
136137
}
137138
}
138139

139-
const res = await fetch(schemaID, { method: options.httpMethod || "GET", headers });
140-
contentType = res.headers.get("Content-Type") || "";
141-
contents = await res.text();
140+
const res = await request(schemaID, { method: (options.httpMethod as Dispatcher.HttpMethod) || "GET", headers });
141+
if (Array.isArray(res.headers["Content-Type"])) contentType = res.headers["Content-Type"][0];
142+
else if (res.headers["Content-Type"]) contentType = res.headers["Content-Type"];
143+
contents = await res.body.text();
142144
}
143145

144146
const isYAML = contentType === "application/openapi+yaml" || contentType === "text/yaml";

src/transform/headers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, HeaderObject } from "../types";
1+
import type { GlobalContext, HeaderObject } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformSchemaObj } from "./schema.js";
44

src/transform/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, OperationObject, PathItemObject } from "../types";
1+
import type { GlobalContext, OperationObject, PathItemObject } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformHeaderObjMap } from "./headers.js";
44
import { transformOperationObj } from "./operation.js";

src/transform/operation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, OperationObject, ParameterObject, PathItemObject } from "../types";
1+
import type { GlobalContext, OperationObject, ParameterObject, PathItemObject } from "../types.js";
22
import { comment, isRef, tsReadonly } from "../utils.js";
33
import { transformParametersArray } from "./parameters.js";
44
import { transformRequestBodyObj } from "./request.js";

src/transform/parameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, ParameterObject, ReferenceObject } from "../types";
1+
import type { GlobalContext, ParameterObject, ReferenceObject } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformSchemaObj } from "./schema.js";
44

src/transform/paths.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, OperationObject, ParameterObject, PathItemObject } from "../types";
1+
import type { GlobalContext, OperationObject, ParameterObject, PathItemObject } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformOperationObj } from "./operation.js";
44
import { transformParametersArray } from "./parameters.js";

src/transform/request.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext, RequestBody } from "../types";
1+
import type { GlobalContext, RequestBody } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformSchemaObj } from "./schema.js";
44

src/transform/responses.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext } from "../types";
1+
import type { GlobalContext } from "../types.js";
22
import { comment, tsReadonly } from "../utils.js";
33
import { transformHeaderObjMap } from "./headers.js";
44
import { transformSchemaObj } from "./schema.js";

src/transform/schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { GlobalContext } from "../types";
1+
import type { GlobalContext } from "../types.js";
22
import {
33
prepareComment,
44
nodeType,

src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { OpenAPI2, OpenAPI3, ReferenceObject } from "./types";
1+
import type { OpenAPI2, OpenAPI3, ReferenceObject } from "./types.js";
22

33
type CommentObject = {
44
const?: boolean; // jsdoc without value

test/core/operation.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { transformOperationObj } from "../../dist/esm/transform/operation.js";
2+
import { transformOperationObj } from "../../dist/transform/operation.js";
33

44
const defaults = {
55
additionalProperties: false,

test/core/parameters.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { transformParametersArray } from "../../dist/esm/transform/parameters.js";
2+
import { transformParametersArray } from "../../dist/transform/parameters.js";
33

44
const defaults = {
55
additionalProperties: false,

test/core/paths.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect } from "chai";
22
import prettier from "prettier";
3-
import { transformPathsObj as transform } from "../../dist/esm/transform/paths.js";
3+
import { transformPathsObj as transform } from "../../dist/transform/paths.js";
44

55
function format(source) {
66
return prettier.format(`export interface paths {\n${source}\n}`, { parser: "typescript" });

test/core/request.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect } from "chai";
22
import prettier from "prettier";
3-
import { transformRequestBodies } from "../../dist/esm/transform/request.js";
3+
import { transformRequestBodies } from "../../dist/transform/request.js";
44

55
const defaults = {
66
additionalProperties: false,

test/core/schema.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Tests raw generation, pre-Prettier
33
*/
44
import { expect } from "chai";
5-
import { transformSchemaObj as transform } from "../../dist/esm/transform/schema.js";
5+
import { transformSchemaObj as transform } from "../../dist/transform/schema.js";
66

77
const defaults = {
88
additionalProperties: false,

test/opts/empty-definitions.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from "chai";
22
import eol from "eol";
33
import fs from "fs";
4-
import openapiTS from "../../dist/esm/index.js";
4+
import openapiTS from "../../dist/index.js";
55

66
describe("allow empty definitions", () => {
77
const schema = {

test/opts/formatter.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from "chai";
22
import fs from "fs";
33
import eol from "eol";
4-
import openapiTS from "../../dist/esm/index.js";
4+
import openapiTS from "../../dist/index.js";
55

66
describe("formatter", () => {
77
it("basic", async () => {

test/opts/raw-schema.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import openapiTS from "../../dist/esm/index.js";
2+
import openapiTS from "../../dist/index.js";
33

44
describe("rawSchema", () => {
55
it("v2", async () => {

test/opts/remote-schema.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from "chai";
22
import fs from "fs";
33
import eol from "eol";
4-
import openapiTS from "../../dist/esm/index.js";
4+
import openapiTS from "../../dist/index.js";
55

66
describe("remote $refs", () => {
77
it("resolves remote $refs", async () => {

test/v2/index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import eol from "eol";
44
import fs from "fs";
55
import yaml from "js-yaml";
66
import { fileURLToPath } from "url";
7-
import openapiTS from "../../dist/esm/index.js";
7+
import openapiTS from "../../dist/index.js";
88

99
const cmd = `node ../../bin/cli.js`;
1010
const cwd = new URL(".", import.meta.url);

test/v3/index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { execSync } from "child_process";
33
import eol from "eol";
44
import fs from "fs";
55
import yaml from "js-yaml";
6-
import openapiTS from "../../dist/esm/index.js";
6+
import openapiTS from "../../dist/index.js";
77
import { fileURLToPath } from "url";
88

99
const cmd = `node ../../bin/cli.js`;

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"lib": ["ES2018"],
88
"moduleResolution": "Node",
99
"noImplicitReturns": true,
10-
"outDir": "./dist/esm",
10+
"outDir": "./dist",
1111
"removeComments": true,
1212
"sourceMap": true,
1313
"strict": true,

0 commit comments

Comments
 (0)