From 37da6814e65105cfc5c38067bdf32ba1c6208d8f Mon Sep 17 00:00:00 2001 From: Christoph Fricke Date: Mon, 27 May 2024 21:00:15 +0200 Subject: [PATCH] feat: provide exports for CommonJS modules (#50) --- .changeset/great-swans-hammer.md | 5 +++++ .gitignore | 1 + eslint.config.mjs | 2 +- package.json | 14 +++++++++++--- tsconfig.cjs.json | 10 ++++++++++ 5 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 .changeset/great-swans-hammer.md create mode 100644 tsconfig.cjs.json diff --git a/.changeset/great-swans-hammer.md b/.changeset/great-swans-hammer.md new file mode 100644 index 0000000..e123e05 --- /dev/null +++ b/.changeset/great-swans-hammer.md @@ -0,0 +1,5 @@ +--- +"openapi-msw": minor +--- + +Added compilation and exports for CommonJS modules. This makes OpenAPI-MSW usable in projects that still use CommonJS as their module system. diff --git a/.gitignore b/.gitignore index 1cd9b3f..0cd1ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ coverage +cjs dist node_modules test/fixtures/*.ts \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs index 9cfeb2c..6470cae 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -3,7 +3,7 @@ import tsEslint from "typescript-eslint"; export default tsEslint.config( { - ignores: ["coverage", "dist", "test/fixtures/*.ts"], + ignores: ["coverage", "cjs", "dist", "test/fixtures/*.ts"], }, eslint.configs.recommended, ...tsEslint.configs.recommended, diff --git a/package.json b/package.json index 7e83dd0..608d480 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "description": "Tiny, type-safe wrapper around MSW for type inference from OpenAPI schemas.", "repository": "github:christoph-fricke/openapi-msw", "files": [ + "cjs", "dist", "CHANGELOG.md", "README.md", @@ -15,16 +16,23 @@ ], "sideEffects": false, "types": "./dist/exports/main.d.ts", + "main": "./cjs/exports/main.js", "module": "./dist/exports/main.js", "exports": { ".": { - "types": "./dist/exports/main.d.ts", - "import": "./dist/exports/main.js" + "types": { + "import": "./dist/exports/main.d.ts", + "require": "./cjs/exports/main.d.js" + }, + "import": "./dist/exports/main.js", + "require": "./cjs/exports/main.js" } }, "scripts": { "prepare": "husky", - "build": "rimraf ./dist && tsc -p tsconfig.build.json", + "build": "npm run build:esm && npm run build:cjs", + "build:esm": "rimraf ./dist && tsc -p tsconfig.build.json", + "build:cjs": "rimraf ./cjs && tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > ./cjs/package.json", "format": "prettier --write .", "lint": "eslint . && prettier -c .", "generate": "openapi-typescript -c ./test/fixtures/.redocly.yml", diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 0000000..bf16c72 --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig.json", + "extends": "./tsconfig.build.json", + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "Node", + "verbatimModuleSyntax": false, + "outDir": "./cjs" + } +}