diff --git a/npm-scripts.mjs b/npm-scripts.mjs index 439748e5..d21e1205 100644 --- a/npm-scripts.mjs +++ b/npm-scripts.mjs @@ -159,6 +159,7 @@ function buildTypescript({ force = false } = { force: false }) { deleteLib(); executeCmd('tsc'); + executeCmd('tsc -p ./tsconfig.esm.json'); } function lint() { diff --git a/package.json b/package.json index 90a48e58..af4a3020 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,28 @@ }, "main": "lib/index.js", "types": "lib/index.d.ts", + "exports": { + ".": { + "import": "./lib/esm/index.js", + "require": "./lib/index.js" + }, + "./lib/*": { + "import": "./lib/esm/*.js", + "require": "./lib/*.js" + }, + "./lib/handlers/*": { + "import": "./lib/esm/handlers/*.js", + "require": "./lib/handlers/*.js" + }, + "./lib/handlers/ortc/*": { + "import": "./lib/esm/handlers/ortc/*.js", + "require": "./lib/handlers/ortc/*.js" + }, + "./lib/handlers/sdp/*": { + "import": "./lib/esm/handlers/sdp/*.js", + "require": "./lib/handlers/sdp/*.js" + } + }, "files": [ "npm-scripts.mjs", "lib" diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..75d758e2 --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,23 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "lib": ["es2022", "dom"], + "target": "es2020", + "module": "ES2015", + "moduleResolution": "node", + "esModuleInterop": true, + "isolatedModules": true, + "strict": true, + "outDir": "lib/esm", + "declaration": true, + "declarationMap": true + }, + "include": ["src"], + "watchOptions": { + "watchFile": "useFsEvents", + "watchDirectory": "useFsEvents", + "fallbackPolling": "dynamicPriority", + "synchronousWatchDirectory": true + } +} +