From 5dc74ffe0885eb5628270349bb1c96c8170982ac Mon Sep 17 00:00:00 2001 From: notaphplover Date: Fri, 25 Oct 2024 19:45:39 +0200 Subject: [PATCH] feat(common): update package with ESM modules support --- .changeset/sweet-shrimps-warn.md | 5 +++++ packages/container/libraries/common/.gitignore | 2 ++ packages/container/libraries/common/package.json | 13 +++++++++++-- .../container/libraries/common/tsconfig.cjs.json | 10 ++++++++++ .../container/libraries/common/tsconfig.esm.json | 10 ++++++++++ packages/container/libraries/common/tsconfig.json | 7 +------ 6 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 .changeset/sweet-shrimps-warn.md create mode 100644 packages/container/libraries/common/tsconfig.cjs.json create mode 100644 packages/container/libraries/common/tsconfig.esm.json diff --git a/.changeset/sweet-shrimps-warn.md b/.changeset/sweet-shrimps-warn.md new file mode 100644 index 00000000..ee07e483 --- /dev/null +++ b/.changeset/sweet-shrimps-warn.md @@ -0,0 +1,5 @@ +--- +"@inversifyjs/common": minor +--- + +Added ESM modules support diff --git a/packages/container/libraries/common/.gitignore b/packages/container/libraries/common/.gitignore index 31dbbe24..288feba2 100644 --- a/packages/container/libraries/common/.gitignore +++ b/packages/container/libraries/common/.gitignore @@ -2,6 +2,8 @@ /lib/** /tsconfig.tsbuildinfo +/tsconfig.cjs.tsbuildinfo +/tsconfig.esm.tsbuildinfo # Test coverage report /coverage diff --git a/packages/container/libraries/common/package.json b/packages/container/libraries/common/package.json index 8f8d0826..cbf3be5d 100644 --- a/packages/container/libraries/common/package.json +++ b/packages/container/libraries/common/package.json @@ -36,7 +36,14 @@ "typescript" ], "license": "MIT", - "main": "lib/index.js", + "main": "lib/cjs/index.js", + "module": "lib/esm/index.js", + "exports": { + ".": { + "import": "./lib/esm/index.js", + "require": "./lib/cjs/index.js" + } + }, "name": "@inversifyjs/common", "os": [ "darwin", @@ -50,7 +57,9 @@ "url": "git+https://github.com/inversify/monorepo.git" }, "scripts": { - "build": "tsc --build tsconfig.json", + "build": "pnpm run build:cjs && pnpm run build:esm", + "build:cjs": "tsc --build tsconfig.cjs.json && pnpm exec foundation-ts-package-cjs ./lib/cjs", + "build:esm": "tsc --build tsconfig.esm.json && pnpm exec foundation-ts-package-esm ./lib/esm", "build:clean": "rimraf lib", "format": "prettier --write ./src/**/*.ts", "lint": "eslint ./src", diff --git a/packages/container/libraries/common/tsconfig.cjs.json b/packages/container/libraries/common/tsconfig.cjs.json new file mode 100644 index 00000000..72630fb8 --- /dev/null +++ b/packages/container/libraries/common/tsconfig.cjs.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + "extends": "@inversifyjs/foundation-typescript-config/tsconfig.base.cjs.json", + "compilerOptions": { + "outDir": "./lib/cjs", + "rootDir": "./src", + "tsBuildInfoFile": "tsconfig.cjs.tsbuildinfo" + }, + "include": ["src"] +} diff --git a/packages/container/libraries/common/tsconfig.esm.json b/packages/container/libraries/common/tsconfig.esm.json new file mode 100644 index 00000000..e597177d --- /dev/null +++ b/packages/container/libraries/common/tsconfig.esm.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + "extends": "@inversifyjs/foundation-typescript-config/tsconfig.base.esm.json", + "compilerOptions": { + "outDir": "./lib/esm", + "rootDir": "./src", + "tsBuildInfoFile": "tsconfig.esm.tsbuildinfo" + }, + "include": ["src"] +} diff --git a/packages/container/libraries/common/tsconfig.json b/packages/container/libraries/common/tsconfig.json index f485d1c5..04a10c90 100644 --- a/packages/container/libraries/common/tsconfig.json +++ b/packages/container/libraries/common/tsconfig.json @@ -1,9 +1,4 @@ { "$schema": "http://json.schemastore.org/tsconfig", - "extends": "@inversifyjs/foundation-typescript-config/tsconfig.base.cjs.json", - "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["src"] + "extends": "./tsconfig.esm.json" }