From 80c1c12d622f076126b3d6858342916a8e23e751 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Mon, 12 Sep 2022 12:15:30 +0200 Subject: [PATCH] fix: bundle build for container --- contrib/build.ts | 18 +++ package.json | 5 +- pnpm-lock.yaml | 260 +++++++++++++++++++++++++++++++++++++++++-- tsconfig.eslint.json | 2 +- 4 files changed, 274 insertions(+), 11 deletions(-) create mode 100644 contrib/build.ts diff --git a/contrib/build.ts b/contrib/build.ts new file mode 100644 index 0000000..994dc18 --- /dev/null +++ b/contrib/build.ts @@ -0,0 +1,18 @@ +/** eslint-env node */ +import esbuild from 'esbuild'; +import path from 'path'; + +esbuild + .build({ + entryPoints: [path.join(__dirname, '..', 'src', 'index.ts')], + outfile: path.join(__dirname, '..', 'dist', 'index.js'), + platform: 'node', + bundle: true, + minify: process.env.node_env === 'production', + external: [], + sourcemap: true, + tsconfig: path.join(__dirname, '..', 'tsconfig.json'), + }) + .catch(() => { + process.exit(1); + }); diff --git a/package.json b/package.json index 9fc70d0..0002c25 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,11 @@ "oauth-mock-server": "./dist/index.js" }, "scripts": { - "build": "tsup src/index.ts --dts --format cjs,esm", + "build": "tsx contrib/build.ts", "clean": "rm -rf dist/ node_modules/", "lint": "eslint --max-warnings 0 .", "lint:format": "prettier --check .", - "start": "pnpm run build --watch", + "start": "pnpm tsup src/index.ts --dts --format cjs,esm --watch", "test": "vitest run --coverage", "test:watch": "vitest", "typecheck": "tsc --noEmit", @@ -43,6 +43,7 @@ "@geprog/semantic-release-config": "1.0.0", "@types/jsonwebtoken": "8.5.8", "c8": "7.11.3", + "esbuild": "0.15.7", "eslint": "8.8.0", "prettier": "2.5.1", "semantic-release": "19.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4228b58..8f49b84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ specifiers: '@geprog/semantic-release-config': 1.0.0 '@types/jsonwebtoken': 8.5.8 c8: 7.11.3 + esbuild: 0.15.7 eslint: 8.8.0 fastify: 4.1.0 jsonwebtoken: 8.5.1 @@ -21,7 +22,6 @@ dependencies: '@fastify/formbody': 7.0.1 fastify: 4.1.0 jsonwebtoken: 8.5.1 - tsx: 3.5.0 devDependencies: '@codedependant/semantic-release-docker': 4.1.0 @@ -29,10 +29,12 @@ devDependencies: '@geprog/semantic-release-config': 1.0.0_semantic-release@19.0.2 '@types/jsonwebtoken': 8.5.8 c8: 7.11.3 + esbuild: 0.15.7 eslint: 8.8.0 prettier: 2.5.1 semantic-release: 19.0.2 tsup: 5.11.13_typescript@4.5.5 + tsx: 3.5.0 typescript: 4.5.5 vitest: 0.16.0_c8@7.11.3 @@ -94,21 +96,21 @@ packages: dependencies: '@esbuild-kit/core-utils': 2.1.0 get-tsconfig: 4.2.0 - dev: false + dev: true /@esbuild-kit/core-utils/2.1.0: resolution: {integrity: sha512-fZirrc2KjeTumVjE4bpleWOk2gD83b7WuGeQqOceKFQL+heNKKkNB5G5pekOUTLzfSBc0hP7hCSBoD9TuR0hLw==} dependencies: esbuild: 0.14.54 source-map-support: 0.5.21 - dev: false + dev: true /@esbuild-kit/esm-loader/2.4.2: resolution: {integrity: sha512-N9dPKAj8WOx6djVnStgILWXip4fjDcBk9L7azO0/uQDpu8Ee0eaL78mkN4Acid9BzvNAKWwdYXFJZnsVahNEew==} dependencies: '@esbuild-kit/core-utils': 2.1.0 get-tsconfig: 4.2.0 - dev: false + dev: true /@esbuild/linux-loong64/0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} @@ -116,6 +118,16 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.7: + resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true /@eslint/eslintrc/1.3.0: @@ -1139,7 +1151,7 @@ packages: /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: false + dev: true /bundle-require/3.0.4_esbuild@0.14.54: resolution: {integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==} @@ -1649,6 +1661,16 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true + optional: true + + /esbuild-android-64/0.15.7: + resolution: {integrity: sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true /esbuild-android-arm64/0.14.54: @@ -1657,6 +1679,16 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.15.7: + resolution: {integrity: sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true /esbuild-darwin-64/0.14.54: @@ -1665,6 +1697,16 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.15.7: + resolution: {integrity: sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true /esbuild-darwin-arm64/0.14.54: @@ -1673,6 +1715,16 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.15.7: + resolution: {integrity: sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true /esbuild-freebsd-64/0.14.54: @@ -1681,6 +1733,16 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.15.7: + resolution: {integrity: sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /esbuild-freebsd-arm64/0.14.54: @@ -1689,6 +1751,16 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.15.7: + resolution: {integrity: sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /esbuild-linux-32/0.14.54: @@ -1697,6 +1769,16 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.15.7: + resolution: {integrity: sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-64/0.14.54: @@ -1705,6 +1787,16 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.15.7: + resolution: {integrity: sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-arm/0.14.54: @@ -1713,6 +1805,16 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.15.7: + resolution: {integrity: sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-arm64/0.14.54: @@ -1721,6 +1823,16 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.15.7: + resolution: {integrity: sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-mips64le/0.14.54: @@ -1729,6 +1841,16 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.15.7: + resolution: {integrity: sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-ppc64le/0.14.54: @@ -1737,6 +1859,16 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.15.7: + resolution: {integrity: sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-riscv64/0.14.54: @@ -1745,6 +1877,16 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.15.7: + resolution: {integrity: sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-s390x/0.14.54: @@ -1753,6 +1895,16 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.15.7: + resolution: {integrity: sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-netbsd-64/0.14.54: @@ -1761,6 +1913,16 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.15.7: + resolution: {integrity: sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true /esbuild-openbsd-64/0.14.54: @@ -1769,6 +1931,16 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.15.7: + resolution: {integrity: sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true /esbuild-sunos-64/0.14.54: @@ -1777,6 +1949,16 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.15.7: + resolution: {integrity: sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true /esbuild-windows-32/0.14.54: @@ -1785,6 +1967,16 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.15.7: + resolution: {integrity: sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild-windows-64/0.14.54: @@ -1793,6 +1985,16 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.15.7: + resolution: {integrity: sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild-windows-arm64/0.14.54: @@ -1801,6 +2003,16 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.15.7: + resolution: {integrity: sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild/0.14.54: @@ -1830,6 +2042,36 @@ packages: esbuild-windows-32: 0.14.54 esbuild-windows-64: 0.14.54 esbuild-windows-arm64: 0.14.54 + dev: true + + /esbuild/0.15.7: + resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': 0.15.7 + esbuild-android-64: 0.15.7 + esbuild-android-arm64: 0.15.7 + esbuild-darwin-64: 0.15.7 + esbuild-darwin-arm64: 0.15.7 + esbuild-freebsd-64: 0.15.7 + esbuild-freebsd-arm64: 0.15.7 + esbuild-linux-32: 0.15.7 + esbuild-linux-64: 0.15.7 + esbuild-linux-arm: 0.15.7 + esbuild-linux-arm64: 0.15.7 + esbuild-linux-mips64le: 0.15.7 + esbuild-linux-ppc64le: 0.15.7 + esbuild-linux-riscv64: 0.15.7 + esbuild-linux-s390x: 0.15.7 + esbuild-netbsd-64: 0.15.7 + esbuild-openbsd-64: 0.15.7 + esbuild-sunos-64: 0.15.7 + esbuild-windows-32: 0.15.7 + esbuild-windows-64: 0.15.7 + esbuild-windows-arm64: 0.15.7 + dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2369,6 +2611,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /function-bind/1.1.1: @@ -2432,7 +2675,7 @@ packages: /get-tsconfig/4.2.0: resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==} - dev: false + dev: true /git-log-parser/1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} @@ -4235,11 +4478,12 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: false + dev: true /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true /source-map/0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -4609,7 +4853,7 @@ packages: '@esbuild-kit/esm-loader': 2.4.2 optionalDependencies: fsevents: 2.3.2 - dev: false + dev: true /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 782f3b5..244b722 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "include": [".eslintrc.cjs", "vitest.config.ts", "src", "test"] + "include": [".eslintrc.cjs", "vitest.config.ts", "src", "test", "contrib"] }