diff --git a/package.json b/package.json index f867711..b985a7d 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,9 @@ "name": "@prisma/extension-read-replicas", "version": "0.2.0", "description": "", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.mjs", - "types": "types/cjs/index.d.ts", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "types/index.d.ts", "homepage": "https://github.com/prisma/extension-read-replicas", "repository": { "type": "git", @@ -17,17 +17,17 @@ "exports": { ".": { "require": { - "default": "./dist/cjs/index.js", - "types": "./types/cjs/index.d.ts" + "default": "./dist/index.js", + "types": "./types/index.d.ts" }, "import": { - "default": "./dist/esm/index.mjs", - "types": "./types/mjs/index.d.ts" + "default": "./dist/index.mjs", + "types": "./types/index.d.mts" } } }, "scripts": { - "build": "node -r esbuild-register scripts/build.ts", + "build": "tsup src/index.ts --format=cjs,esm --dts", "demo": "node -r esbuild-register demo/index.ts", "lint": "eslint . && prettier -c .", "prepare": "husky install", @@ -38,8 +38,11 @@ "keywords": [], "author": "", "license": "Apache-2.0", + "peerDependencies": { + "@prisma/client": "^5.2.0" + }, "devDependencies": { - "@prisma/client": "5.2.0-dev.72", + "@prisma/client": "5.2.0", "@swc/core": "^1.3.73", "@swc/jest": "^0.2.27", "@types/debug": "^4.1.8", @@ -57,10 +60,8 @@ "jest": "^29.6.2", "lint-staged": "^13.2.3", "prettier": "^3.0.0", - "prisma": "5.2.0-dev.72", + "prisma": "5.2.0", + "tsup": "^7.2.0", "typescript": "^5.1.6" - }, - "dependencies": { - "debug": "^4.3.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7fdc408..b8ddc13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,15 +4,10 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - debug: - specifier: ^4.3.4 - version: 4.3.4 - devDependencies: '@prisma/client': - specifier: 5.2.0-dev.72 - version: 5.2.0-dev.72(prisma@5.2.0-dev.72) + specifier: 5.2.0 + version: 5.2.0(prisma@5.2.0) '@swc/core': specifier: ^1.3.73 version: 1.3.73 @@ -65,8 +60,11 @@ devDependencies: specifier: ^3.0.0 version: 3.0.0 prisma: - specifier: 5.2.0-dev.72 - version: 5.2.0-dev.72 + specifier: 5.2.0 + version: 5.2.0 + tsup: + specifier: ^7.2.0 + version: 7.2.0(@swc/core@1.3.73)(typescript@5.1.6) typescript: specifier: ^5.1.6 version: 5.1.6 @@ -975,8 +973,8 @@ packages: fastq: 1.15.0 dev: true - /@prisma/client@5.2.0-dev.72(prisma@5.2.0-dev.72): - resolution: {integrity: sha512-pkYvY2HqQgiFE2cIShU/Piow5aJELsZd08keAz7eYWVJaGPcH86zKjUTo+6FRONNXipaM04pZB5knLtANyta7g==} + /@prisma/client@5.2.0(prisma@5.2.0): + resolution: {integrity: sha512-AiTjJwR4J5Rh6Z/9ZKrBBLel3/5DzUNntMohOy7yObVnVoTNVFi2kvpLZlFuKO50d7yDspOtW6XBpiAd0BVXbQ==} engines: {node: '>=16.13'} requiresBuild: true peerDependencies: @@ -986,15 +984,15 @@ packages: optional: true dependencies: '@prisma/engines-version': 5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f - prisma: 5.2.0-dev.72 + prisma: 5.2.0 dev: true /@prisma/engines-version@5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f: resolution: {integrity: sha512-jsnKT5JIDIE01lAeCj2ghY9IwxkedhKNvxQeoyLs6dr4ZXynetD0vTy7u6wMJt8vVPv8I5DPy/I4CFaoXAgbtg==} dev: true - /@prisma/engines@5.2.0-dev.72: - resolution: {integrity: sha512-KnS2RsKpEr+T6+QBjyVB2JSeLjmCgJUaeqKloyhVbRyKdVVSVFZEHa+4wspAapf7pNfoXov/cXkMaZq0Vs+dUg==} + /@prisma/engines@5.2.0: + resolution: {integrity: sha512-dT7FOLUCdZmq+AunLqB1Iz+ZH/IIS1Fz2THmKZQ6aFONrQD/BQ5ecJ7g2wGS2OgyUFf4OaLam6/bxmgdOBDqig==} requiresBuild: true dev: true @@ -1441,6 +1439,10 @@ packages: engines: {node: '>=12'} dev: true + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1545,6 +1547,11 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1580,6 +1587,21 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /bundle-require@4.0.1(esbuild@0.18.17): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.18.17 + load-tsconfig: 0.2.5 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1626,6 +1648,21 @@ packages: engines: {node: '>=10'} dev: true + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} @@ -1711,6 +1748,11 @@ packages: engines: {node: '>=14'} dev: true + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1742,6 +1784,7 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: true /dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} @@ -2165,6 +2208,17 @@ packages: is-glob: 4.0.3 dev: true + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -2292,6 +2346,13 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: @@ -2805,6 +2866,11 @@ packages: - ts-node dev: true + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -2921,6 +2987,11 @@ packages: wrap-ansi: 7.0.0 dev: true + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2939,6 +3010,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + /log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} @@ -3010,6 +3085,15 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -3046,6 +3130,11 @@ packages: path-key: 4.0.0 dev: true + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true @@ -3195,6 +3284,22 @@ packages: find-up: 4.1.0 dev: true + /postcss-load-config@4.0.1: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 2.3.1 + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -3215,13 +3320,13 @@ packages: react-is: 18.2.0 dev: true - /prisma@5.2.0-dev.72: - resolution: {integrity: sha512-ITtvi8N8tqLr+nYh/i1i8W/9V8vzA66a7VDy85dxymFUZ0qoEcIk1PTYgLxExy8MrfdmlAh8E6525oVNHbJJEA==} + /prisma@5.2.0: + resolution: {integrity: sha512-FfFlpjVCkZwrqxDnP4smlNYSH1so+CbfjgdpioFzGGqlQAEm6VHAYSzV7jJgC3ebtY9dNOhDMS2+4/1DDSM7bQ==} engines: {node: '>=16.13'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 5.2.0-dev.72 + '@prisma/engines': 5.2.0 dev: true /prompts@2.4.2: @@ -3249,6 +3354,13 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3309,6 +3421,14 @@ packages: glob: 7.2.3 dev: true + /rollup@3.28.1: + resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -3397,6 +3517,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true @@ -3473,6 +3600,20 @@ packages: engines: {node: '>=8'} dev: true + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3512,6 +3653,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true @@ -3532,6 +3686,17 @@ packages: is-number: 7.0.0 dev: true + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + /ts-api-utils@1.0.1(typescript@5.1.6): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} @@ -3541,10 +3706,51 @@ packages: typescript: 5.1.6 dev: true + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true + /tsup@7.2.0(@swc/core@1.3.73)(typescript@5.1.6): + resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + '@swc/core': 1.3.73 + bundle-require: 4.0.1(esbuild@0.18.17) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.18.17 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1 + resolve-from: 5.0.0 + rollup: 3.28.1 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3605,6 +3811,18 @@ packages: makeerror: 1.0.12 dev: true + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/scripts/build.ts b/scripts/build.ts deleted file mode 100644 index 23fc836..0000000 --- a/scripts/build.ts +++ /dev/null @@ -1,33 +0,0 @@ -import fs from 'fs/promises' -import execa from 'execa' -import path from 'path' -import esbuild from 'esbuild' -import { nodeExternalsPlugin } from 'esbuild-node-externals' - -const root = path.resolve(__dirname, '..') - -async function main() { - await fs.rm(path.join(root, 'dist'), { recursive: true, force: true }) - await fs.rm(path.join(root, 'types'), { recursive: true, force: true }) - await build('cjs') - await build('esm') -} - -async function build(format: 'cjs' | 'esm') { - const ext = format === 'cjs' ? 'js' : 'mjs' - await esbuild.build({ - entryPoints: ['src/index.ts'], - outfile: `dist/${format}/index.${ext}`, - bundle: true, - platform: 'neutral', - format, - plugins: [nodeExternalsPlugin()], - }) - - await execa('pnpm', ['tsc', '-p', `tsconfig.${format}.json`], { - cwd: path.resolve(__dirname, '..'), - stdio: 'inherit', - }) -} - -main() diff --git a/src/extension.ts b/src/extension.ts index e1331ef..1076f43 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,5 +1,4 @@ -import { debug as createDebug } from 'debug' -import { Prisma } from '@prisma/client/extension' +import { Prisma } from '@prisma/client/extension.js' import { ConfigureReplicaCallback, ReplicaManager } from './ReplicaManager' @@ -7,8 +6,6 @@ export type ReplicasOptions = { url: string | string[] } -const debug = createDebug('prisma:replicasExtension') - const readOperations = [ 'findFirst', 'findFirstOrThrow', @@ -69,11 +66,9 @@ export const readReplicas = (options: ReplicasOptions, configureReplicaClient?: __internalParams: { transaction }, }) { if (transaction) { - debug('transactional query, using primary instance') return query(args) } if (readOperations.includes(operation)) { - debug(`read operation ${operation} on model ${model}, using replica`) const replica = replicaManager.pickReplica() if (model) { return replica[model][operation](args) @@ -81,7 +76,6 @@ export const readReplicas = (options: ReplicasOptions, configureReplicaClient?: return replica[operation](args) } - debug(`write operation ${operation} on model ${model}, using primary instance`) return query(args) }, }, diff --git a/tests/cjs.js b/tests/cjs.js new file mode 100644 index 0000000..3f6a233 --- /dev/null +++ b/tests/cjs.js @@ -0,0 +1,7 @@ +/* eslint-env node */ +/* eslint-disable @typescript-eslint/no-var-requires */ +'use strict' +const assert = require('node:assert') +const { readReplicas } = require('..') + +assert(typeof readReplicas === 'function') diff --git a/tests/esm.mjs b/tests/esm.mjs new file mode 100644 index 0000000..66d1f60 --- /dev/null +++ b/tests/esm.mjs @@ -0,0 +1,4 @@ +import { readReplicas } from '@prisma/extension-read-replicas' +import assert from 'node:assert' + +assert(typeof readReplicas === 'function') diff --git a/tests/package.test.ts b/tests/package.test.ts new file mode 100644 index 0000000..9f568d2 --- /dev/null +++ b/tests/package.test.ts @@ -0,0 +1,14 @@ +import execa from 'execa' +import path from 'path' + +function runFile(file: string) { + return execa('node', [path.join(__dirname, file)]) +} + +test('common js module can be loaded', async () => { + await runFile('cjs.js') +}) + +test('ES module can be loaded', async () => { + await runFile('esm.mjs') +}) diff --git a/tsconfig.base.json b/tsconfig.base.json deleted file mode 100644 index b01960a..0000000 --- a/tsconfig.base.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "declaration": true, - "emitDeclarationOnly": true, - "moduleResolution": "Bundler" - } -} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json deleted file mode 100644 index 04733fd..0000000 --- a/tsconfig.cjs.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "module": "CommonJS", - "moduleResolution": "Node", - "declarationDir": "types/cjs" - }, - "include": ["./src"] -} diff --git a/tsconfig.esm.json b/tsconfig.esm.json deleted file mode 100644 index d03dc29..0000000 --- a/tsconfig.esm.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "module": "ESNext", - "declarationDir": "types/esm" - }, - "include": ["./src"] -} diff --git a/tsconfig.json b/tsconfig.json index 9326e7b..82d50f8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,12 @@ { - "extends": "./tsconfig.base.json", "compilerOptions": { - "noEmit": true, - "emitDeclarationOnly": false + "target": "es2020", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "declaration": true, + "moduleResolution": "Bundler", + "noEmit": true }, "include": ["./src", "./demo", "./tests"] }