powerlines 0.37.70 → 0.37.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{api-V7srJoFm.d.ts → api-C6DCvrUS.d.ts} +8 -10
- package/dist/{api-D-Jj7gBV.d.cts → api-DzDN7V6M.d.cts} +8 -10
- package/dist/api.cjs +2 -2
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/astro.cjs +5 -5
- package/dist/astro.d.cts +1 -1
- package/dist/astro.d.ts +1 -1
- package/dist/astro.js +4 -4
- package/dist/{chunk-QSEJWFSB.js → chunk-23QTRWEU.js} +8 -18
- package/dist/{chunk-OCQRY73Q.js → chunk-37HOUYXE.js} +3 -3
- package/dist/{chunk-FLE6VR4W.js → chunk-4EGH2VBO.js} +4 -4
- package/dist/chunk-4Z5JN5LA.cjs +12 -0
- package/dist/{chunk-E2YKZN24.cjs → chunk-5VRWKIX7.cjs} +6 -6
- package/dist/{chunk-CJ5B4EYV.js → chunk-B5CY33VJ.js} +39 -13
- package/dist/{chunk-BZELZWUZ.cjs → chunk-BNMY5INT.cjs} +39 -13
- package/dist/{chunk-NSSJOBJ7.cjs → chunk-HDHABS4U.cjs} +3 -17
- package/dist/{chunk-6JXP537N.js → chunk-HLCQIZKK.js} +3 -17
- package/dist/{chunk-V7BIYMMB.js → chunk-II6VDTID.js} +3 -3
- package/dist/{chunk-7EZYJ6HP.cjs → chunk-OE26AYQO.cjs} +10 -20
- package/dist/chunk-RMBCRGMA.cjs +12 -0
- package/dist/{chunk-B4Z23WBV.js → chunk-WB3RBWMN.js} +3 -3
- package/dist/{chunk-UUGESORE.cjs → chunk-XC6JYWS2.cjs} +5 -5
- package/dist/esbuild.cjs +7 -7
- package/dist/esbuild.d.cts +1 -1
- package/dist/esbuild.d.ts +1 -1
- package/dist/esbuild.js +4 -4
- package/dist/farm.cjs +3 -3
- package/dist/farm.d.cts +1 -1
- package/dist/farm.d.ts +1 -1
- package/dist/farm.js +2 -2
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/lib/build/esbuild.cjs +4 -4
- package/dist/lib/build/esbuild.d.cts +1 -1
- package/dist/lib/build/esbuild.d.ts +1 -1
- package/dist/lib/build/esbuild.js +1 -1
- package/dist/lib/build/index.cjs +29 -29
- package/dist/lib/build/index.d.cts +2 -2
- package/dist/lib/build/index.d.ts +2 -2
- package/dist/lib/build/index.js +9 -9
- package/dist/lib/build/rolldown.cjs +3 -3
- package/dist/lib/build/rolldown.d.cts +1 -1
- package/dist/lib/build/rolldown.d.ts +1 -1
- package/dist/lib/build/rolldown.js +2 -2
- package/dist/lib/build/rollup.cjs +3 -3
- package/dist/lib/build/rollup.d.cts +1 -1
- package/dist/lib/build/rollup.d.ts +1 -1
- package/dist/lib/build/rollup.js +1 -1
- package/dist/lib/build/rspack.cjs +2 -2
- package/dist/lib/build/rspack.d.cts +1 -1
- package/dist/lib/build/rspack.d.ts +1 -1
- package/dist/lib/build/rspack.js +1 -1
- package/dist/lib/build/tsdown.cjs +5 -5
- package/dist/lib/build/tsdown.d.cts +1 -1
- package/dist/lib/build/tsdown.d.ts +1 -1
- package/dist/lib/build/tsdown.js +1 -1
- package/dist/lib/build/tsup.cjs +5 -5
- package/dist/lib/build/tsup.d.cts +1 -1
- package/dist/lib/build/tsup.d.ts +1 -1
- package/dist/lib/build/tsup.js +2 -2
- package/dist/lib/build/unbuild.cjs +5 -5
- package/dist/lib/build/unbuild.d.cts +2 -2
- package/dist/lib/build/unbuild.d.ts +2 -2
- package/dist/lib/build/unbuild.js +2 -2
- package/dist/lib/build/vite.cjs +4 -4
- package/dist/lib/build/vite.d.cts +1 -1
- package/dist/lib/build/vite.d.ts +1 -1
- package/dist/lib/build/vite.js +2 -2
- package/dist/lib/build/webpack.cjs +2 -2
- package/dist/lib/build/webpack.d.cts +1 -1
- package/dist/lib/build/webpack.d.ts +1 -1
- package/dist/lib/build/webpack.js +1 -1
- package/dist/lib/{chunk-HMHMMXG3.js → chunk-2LVLSYWS.js} +6 -16
- package/dist/lib/chunk-2LVLSYWS.js.map +1 -0
- package/dist/lib/{chunk-C2SIHISU.cjs → chunk-3SMW7KVT.cjs} +4 -4
- package/dist/lib/chunk-3SMW7KVT.cjs.map +1 -0
- package/dist/lib/{chunk-JKESK6KE.js → chunk-6FBHHFOA.js} +4 -18
- package/dist/lib/chunk-6FBHHFOA.js.map +1 -0
- package/dist/lib/{chunk-GQNZENVF.js → chunk-6TXWOIA7.js} +4 -4
- package/dist/lib/chunk-6TXWOIA7.js.map +1 -0
- package/dist/lib/{chunk-TI4L43DE.js → chunk-6XVUDVQ4.js} +7 -17
- package/dist/lib/chunk-6XVUDVQ4.js.map +1 -0
- package/dist/lib/{chunk-T3IOOWLO.js → chunk-7OTSAG3M.js} +4 -19
- package/dist/lib/chunk-7OTSAG3M.js.map +1 -0
- package/dist/lib/{chunk-YVFFKAMF.js → chunk-A6PQSWEU.js} +3 -3
- package/dist/lib/{chunk-YVFFKAMF.js.map → chunk-A6PQSWEU.js.map} +1 -1
- package/dist/lib/{chunk-26DEN74R.cjs → chunk-AE5FOE5F.cjs} +6 -6
- package/dist/lib/{chunk-26DEN74R.cjs.map → chunk-AE5FOE5F.cjs.map} +1 -1
- package/dist/lib/{chunk-XVRSEH24.cjs → chunk-DRHDTUHQ.cjs} +4 -19
- package/dist/lib/chunk-DRHDTUHQ.cjs.map +1 -0
- package/dist/lib/{chunk-C2XZBNXT.js → chunk-FA7RSY75.js} +3 -17
- package/dist/lib/chunk-FA7RSY75.js.map +1 -0
- package/dist/lib/{chunk-ZPUQDCZY.js → chunk-FLTOE5GA.js} +4 -13
- package/dist/lib/chunk-FLTOE5GA.js.map +1 -0
- package/dist/lib/{chunk-4MV6GVF2.cjs → chunk-GFRDBE36.cjs} +3 -17
- package/dist/lib/chunk-GFRDBE36.cjs.map +1 -0
- package/dist/lib/{chunk-DMSD5NS5.cjs → chunk-GVIP7SDP.cjs} +19 -19
- package/dist/lib/{chunk-DMSD5NS5.cjs.map → chunk-GVIP7SDP.cjs.map} +1 -1
- package/dist/lib/{chunk-E5GAQMMD.cjs → chunk-IJ7YQK2D.cjs} +3 -17
- package/dist/lib/chunk-IJ7YQK2D.cjs.map +1 -0
- package/dist/lib/{chunk-7JW5GKVU.cjs → chunk-IUEVVKTN.cjs} +17 -6
- package/dist/lib/chunk-IUEVVKTN.cjs.map +1 -0
- package/dist/lib/{chunk-2WYHTO47.cjs → chunk-JD2LTS53.cjs} +8 -18
- package/dist/lib/chunk-JD2LTS53.cjs.map +1 -0
- package/dist/lib/{chunk-D6ISFDNJ.js → chunk-JUQOBIHS.js} +7 -7
- package/dist/lib/chunk-JUQOBIHS.js.map +1 -0
- package/dist/lib/{chunk-VWKNWAN3.js → chunk-LAWPHYRN.js} +4 -4
- package/dist/lib/{chunk-VWKNWAN3.js.map → chunk-LAWPHYRN.js.map} +1 -1
- package/dist/lib/{chunk-ZVXIXVNB.js → chunk-LD6XM3JP.js} +3 -3
- package/dist/lib/{chunk-ZVXIXVNB.js.map → chunk-LD6XM3JP.js.map} +1 -1
- package/dist/lib/{chunk-5UCYCLOL.cjs → chunk-LEHNEPEZ.cjs} +5 -19
- package/dist/lib/chunk-LEHNEPEZ.cjs.map +1 -0
- package/dist/lib/{chunk-7D3MEWYE.cjs → chunk-MBNOLP2D.cjs} +4 -4
- package/dist/lib/{chunk-7D3MEWYE.cjs.map → chunk-MBNOLP2D.cjs.map} +1 -1
- package/dist/lib/{chunk-3FLDGR5G.js → chunk-MNSZOVOC.js} +12 -5
- package/dist/lib/chunk-MNSZOVOC.js.map +1 -0
- package/dist/lib/{chunk-IEWCXR3Q.cjs → chunk-ORHCJTJ2.cjs} +37 -11
- package/dist/lib/chunk-ORHCJTJ2.cjs.map +1 -0
- package/dist/lib/{chunk-NRGFEHLP.cjs → chunk-PVWONV7N.cjs} +5 -14
- package/dist/lib/chunk-PVWONV7N.cjs.map +1 -0
- package/dist/lib/{chunk-7IMYFSB5.cjs → chunk-QN455BKZ.cjs} +6 -16
- package/dist/lib/chunk-QN455BKZ.cjs.map +1 -0
- package/dist/lib/{chunk-6ZQ2QV7J.js → chunk-RAAESBJL.js} +3 -17
- package/dist/lib/chunk-RAAESBJL.js.map +1 -0
- package/dist/lib/{chunk-7G3WQDH6.cjs → chunk-RBFYRLQF.cjs} +19 -19
- package/dist/lib/chunk-RBFYRLQF.cjs.map +1 -0
- package/dist/lib/{chunk-PU3KX3GM.js → chunk-TLQERY6D.js} +7 -17
- package/dist/lib/chunk-TLQERY6D.js.map +1 -0
- package/dist/lib/{chunk-54EBZ6DV.cjs → chunk-VQAIXUBE.cjs} +8 -18
- package/dist/lib/chunk-VQAIXUBE.cjs.map +1 -0
- package/dist/lib/{chunk-I4LBDWHI.js → chunk-WD4D2AAH.js} +35 -9
- package/dist/lib/chunk-WD4D2AAH.js.map +1 -0
- package/dist/lib/{chunk-HFNHWLHJ.js → chunk-XOIF2AAB.js} +3 -12
- package/dist/lib/chunk-XOIF2AAB.js.map +1 -0
- package/dist/lib/{chunk-IJOS5J6D.cjs → chunk-YCQ7WB5H.cjs} +3 -12
- package/dist/lib/chunk-YCQ7WB5H.cjs.map +1 -0
- package/dist/lib/{config-BdpnZ9Jp.d.cts → config-Dxm15IUf.d.cts} +8 -10
- package/dist/lib/{config-DxhCES5f.d.ts → config-WPmSiClE.d.ts} +8 -10
- package/dist/lib/config-file.d.cts +1 -1
- package/dist/lib/config-file.d.ts +1 -1
- package/dist/lib/contexts/api-context.cjs +5 -5
- package/dist/lib/contexts/api-context.d.cts +2 -2
- package/dist/lib/contexts/api-context.d.ts +2 -2
- package/dist/lib/contexts/api-context.js +4 -4
- package/dist/lib/contexts/context.cjs +3 -3
- package/dist/lib/contexts/context.d.cts +9 -2
- package/dist/lib/contexts/context.d.ts +9 -2
- package/dist/lib/contexts/context.js +2 -2
- package/dist/lib/contexts/environment-context.cjs +4 -4
- package/dist/lib/contexts/environment-context.d.cts +2 -2
- package/dist/lib/contexts/environment-context.d.ts +2 -2
- package/dist/lib/contexts/environment-context.js +3 -3
- package/dist/lib/contexts/index.cjs +7 -7
- package/dist/lib/contexts/index.d.cts +2 -2
- package/dist/lib/contexts/index.d.ts +2 -2
- package/dist/lib/contexts/index.js +4 -4
- package/dist/lib/contexts/plugin-context.d.cts +2 -2
- package/dist/lib/contexts/plugin-context.d.ts +2 -2
- package/dist/lib/entry.d.cts +1 -1
- package/dist/lib/entry.d.ts +1 -1
- package/dist/lib/fs/index.cjs +2 -2
- package/dist/lib/fs/index.d.cts +1 -1
- package/dist/lib/fs/index.d.ts +1 -1
- package/dist/lib/fs/index.js +1 -1
- package/dist/lib/fs/vfs.cjs +2 -2
- package/dist/lib/fs/vfs.d.cts +1 -1
- package/dist/lib/fs/vfs.d.ts +1 -1
- package/dist/lib/fs/vfs.js +1 -1
- package/dist/lib/index.cjs +15 -15
- package/dist/lib/index.d.cts +2 -2
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.js +8 -8
- package/dist/lib/{internal-x5TCXE5P.d.ts → internal-B2zHmbRm.d.ts} +1 -1
- package/dist/lib/{internal-CInyirxk.d.cts → internal-SJ32rPB1.d.cts} +1 -1
- package/dist/lib/logger.d.cts +1 -1
- package/dist/lib/logger.d.ts +1 -1
- package/dist/lib/typescript/import-transformer.d.cts +1 -1
- package/dist/lib/typescript/import-transformer.d.ts +1 -1
- package/dist/lib/typescript/index.d.cts +1 -1
- package/dist/lib/typescript/index.d.ts +1 -1
- package/dist/lib/typescript/ts-morph.d.cts +1 -1
- package/dist/lib/typescript/ts-morph.d.ts +1 -1
- package/dist/lib/unplugin/factory.cjs +6 -6
- package/dist/lib/unplugin/factory.d.cts +1 -1
- package/dist/lib/unplugin/factory.d.ts +1 -1
- package/dist/lib/unplugin/factory.js +5 -5
- package/dist/lib/unplugin/helpers.d.cts +1 -1
- package/dist/lib/unplugin/helpers.d.ts +1 -1
- package/dist/lib/unplugin/index.cjs +6 -6
- package/dist/lib/unplugin/index.d.cts +1 -1
- package/dist/lib/unplugin/index.d.ts +1 -1
- package/dist/lib/unplugin/index.js +5 -5
- package/dist/lib/unplugin/plugin.d.cts +1 -1
- package/dist/lib/unplugin/plugin.d.ts +1 -1
- package/dist/lib/utilities/bundle.cjs +8 -3
- package/dist/lib/utilities/bundle.d.cts +2 -2
- package/dist/lib/utilities/bundle.d.ts +2 -2
- package/dist/lib/utilities/bundle.js +7 -2
- package/dist/lib/utilities/cache.d.cts +1 -1
- package/dist/lib/utilities/cache.d.ts +1 -1
- package/dist/lib/utilities/file-header.d.cts +1 -1
- package/dist/lib/utilities/file-header.d.ts +1 -1
- package/dist/lib/utilities/format.d.cts +1 -1
- package/dist/lib/utilities/format.d.ts +1 -1
- package/dist/lib/utilities/index.cjs +8 -5
- package/dist/lib/utilities/index.d.cts +1 -1
- package/dist/lib/utilities/index.d.ts +1 -1
- package/dist/lib/utilities/index.js +6 -3
- package/dist/lib/utilities/meta.d.cts +1 -1
- package/dist/lib/utilities/meta.d.ts +1 -1
- package/dist/lib/utilities/resolve.cjs +9 -4
- package/dist/lib/utilities/resolve.d.cts +2 -2
- package/dist/lib/utilities/resolve.d.ts +2 -2
- package/dist/lib/utilities/resolve.js +8 -3
- package/dist/lib/utilities/source-file.d.cts +1 -1
- package/dist/lib/utilities/source-file.d.ts +1 -1
- package/dist/lib/utilities/source-map.d.cts +1 -1
- package/dist/lib/utilities/source-map.d.ts +1 -1
- package/dist/lib/utilities/worker.d.cts +1 -1
- package/dist/lib/utilities/worker.d.ts +1 -1
- package/dist/lib/utilities/write-file.d.cts +1 -1
- package/dist/lib/utilities/write-file.d.ts +1 -1
- package/dist/next.cjs +4 -4
- package/dist/next.js +3 -3
- package/dist/nuxt.cjs +9 -9
- package/dist/nuxt.d.cts +1 -1
- package/dist/nuxt.d.ts +1 -1
- package/dist/nuxt.js +5 -5
- package/dist/plugin-utils/{chunk-TKHJ5FOY.js → chunk-EASIFUVR.js} +3 -3
- package/dist/plugin-utils/chunk-EASIFUVR.js.map +1 -0
- package/dist/plugin-utils/{chunk-G4VBCQU2.cjs → chunk-WXPZZ6SB.cjs} +3 -3
- package/dist/plugin-utils/chunk-WXPZZ6SB.cjs.map +1 -0
- package/dist/plugin-utils/{context-ImhXCCVn.d.cts → context-C-kVgprv.d.cts} +8 -10
- package/dist/plugin-utils/{context-ImhXCCVn.d.ts → context-C-kVgprv.d.ts} +8 -10
- package/dist/plugin-utils/context-helpers.d.cts +1 -1
- package/dist/plugin-utils/context-helpers.d.ts +1 -1
- package/dist/plugin-utils/enforce.d.cts +1 -1
- package/dist/plugin-utils/enforce.d.ts +1 -1
- package/dist/plugin-utils/extend.d.cts +1 -1
- package/dist/plugin-utils/extend.d.ts +1 -1
- package/dist/plugin-utils/get-config-path.d.cts +1 -1
- package/dist/plugin-utils/get-config-path.d.ts +1 -1
- package/dist/plugin-utils/helpers.d.cts +1 -1
- package/dist/plugin-utils/helpers.d.ts +1 -1
- package/dist/plugin-utils/index.cjs +2 -2
- package/dist/plugin-utils/index.d.cts +1 -1
- package/dist/plugin-utils/index.d.ts +1 -1
- package/dist/plugin-utils/index.js +1 -1
- package/dist/plugin-utils/merge.d.cts +1 -1
- package/dist/plugin-utils/merge.d.ts +1 -1
- package/dist/plugin-utils/modules.cjs +2 -2
- package/dist/plugin-utils/modules.d.cts +1 -1
- package/dist/plugin-utils/modules.d.ts +1 -1
- package/dist/plugin-utils/modules.js +1 -1
- package/dist/plugin-utils/paths.d.cts +1 -1
- package/dist/plugin-utils/paths.d.ts +1 -1
- package/dist/rolldown.cjs +6 -6
- package/dist/rolldown.d.cts +1 -1
- package/dist/rolldown.d.ts +1 -1
- package/dist/rolldown.js +3 -3
- package/dist/rollup.cjs +3 -3
- package/dist/rollup.d.cts +1 -1
- package/dist/rollup.d.ts +1 -1
- package/dist/rollup.js +2 -2
- package/dist/rspack.cjs +3 -3
- package/dist/rspack.d.cts +1 -1
- package/dist/rspack.d.ts +1 -1
- package/dist/rspack.js +2 -2
- package/dist/tsdown.cjs +4 -4
- package/dist/tsdown.js +3 -3
- package/dist/tsup.cjs +5 -5
- package/dist/tsup.js +4 -4
- package/dist/types/api.d.cts +1 -1
- package/dist/types/api.d.ts +1 -1
- package/dist/types/babel.d.cts +1 -1
- package/dist/types/babel.d.ts +1 -1
- package/dist/types/commands.d.cts +1 -1
- package/dist/types/commands.d.ts +1 -1
- package/dist/types/config.d.cts +1 -1
- package/dist/types/config.d.ts +1 -1
- package/dist/types/context.d.cts +1 -1
- package/dist/types/context.d.ts +1 -1
- package/dist/types/hooks.d.cts +1 -1
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal.d.cts +1 -1
- package/dist/types/internal.d.ts +1 -1
- package/dist/types/plugin.d.cts +1 -1
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/resolved.d.cts +1 -1
- package/dist/types/resolved.d.ts +1 -1
- package/dist/types/unplugin.d.cts +1 -1
- package/dist/types/unplugin.d.ts +1 -1
- package/dist/unloader.cjs +3 -3
- package/dist/unloader.d.cts +1 -1
- package/dist/unloader.d.ts +1 -1
- package/dist/unloader.js +2 -2
- package/dist/unplugin.cjs +8 -8
- package/dist/unplugin.d.cts +1 -1
- package/dist/unplugin.d.ts +1 -1
- package/dist/unplugin.js +4 -4
- package/dist/vite.cjs +7 -7
- package/dist/vite.d.cts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.js +4 -4
- package/dist/webpack.cjs +6 -6
- package/dist/webpack.d.cts +1 -1
- package/dist/webpack.d.ts +1 -1
- package/dist/webpack.js +3 -3
- package/package.json +2 -2
- package/dist/chunk-EHA5B72X.cjs +0 -12
- package/dist/chunk-ZKCP7OVT.cjs +0 -12
- package/dist/lib/chunk-2WYHTO47.cjs.map +0 -1
- package/dist/lib/chunk-3FLDGR5G.js.map +0 -1
- package/dist/lib/chunk-4MV6GVF2.cjs.map +0 -1
- package/dist/lib/chunk-54EBZ6DV.cjs.map +0 -1
- package/dist/lib/chunk-5UCYCLOL.cjs.map +0 -1
- package/dist/lib/chunk-6ZQ2QV7J.js.map +0 -1
- package/dist/lib/chunk-7G3WQDH6.cjs.map +0 -1
- package/dist/lib/chunk-7IMYFSB5.cjs.map +0 -1
- package/dist/lib/chunk-7JW5GKVU.cjs.map +0 -1
- package/dist/lib/chunk-C2SIHISU.cjs.map +0 -1
- package/dist/lib/chunk-C2XZBNXT.js.map +0 -1
- package/dist/lib/chunk-D6ISFDNJ.js.map +0 -1
- package/dist/lib/chunk-E5GAQMMD.cjs.map +0 -1
- package/dist/lib/chunk-GQNZENVF.js.map +0 -1
- package/dist/lib/chunk-HFNHWLHJ.js.map +0 -1
- package/dist/lib/chunk-HMHMMXG3.js.map +0 -1
- package/dist/lib/chunk-I4LBDWHI.js.map +0 -1
- package/dist/lib/chunk-IEWCXR3Q.cjs.map +0 -1
- package/dist/lib/chunk-IJOS5J6D.cjs.map +0 -1
- package/dist/lib/chunk-JKESK6KE.js.map +0 -1
- package/dist/lib/chunk-NRGFEHLP.cjs.map +0 -1
- package/dist/lib/chunk-PU3KX3GM.js.map +0 -1
- package/dist/lib/chunk-T3IOOWLO.js.map +0 -1
- package/dist/lib/chunk-TI4L43DE.js.map +0 -1
- package/dist/lib/chunk-XVRSEH24.cjs.map +0 -1
- package/dist/lib/chunk-ZPUQDCZY.js.map +0 -1
- package/dist/plugin-utils/chunk-G4VBCQU2.cjs.map +0 -1
- package/dist/plugin-utils/chunk-TKHJ5FOY.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/internal/helpers/environment.ts","../../src/lib/contexts/api-context.ts"],"names":["createEnvironment","name","userConfig","defu","environments","title","titleCase","ssr","mainFields","build","platform","extensions","consumer","preview","port","open","strictPort","host","allowedHosts","cors","headers","undefined","createDefaultEnvironment","DEFAULT_ENVIRONMENT","PowerlinesAPIContext","PowerlinesContext","from","workspaceRoot","config","context","loadWorkspaceConfig","root","withUserConfig","powerlinesPath","resolvePackage","Error","$$internal","value","environment","Object","values","log","createLog","plugins","workspaceConfig","init","Promise","all","toArray","keys","length","map","env","in","PowerlinesEnvironmentContext","fromConfig","isSetObject","inlineConfig","withInlineConfig","plugin","addPlugin","options","isHighPriority","push","getEnvironment","LogLevelLabel","DEBUG","chalk","bold","cyanBright","WARN","getEnvironmentSafe","toEnvironment","GLOBAL_ENVIRONMENT"],"mappings":"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","file":"chunk-26DEN74R.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport defu from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../../lib/constants/environments\";\nimport { APIContext, Context } from \"../../types/context\";\nimport { EnvironmentResolvedConfig } from \"../../types/resolved\";\n\nexport function createEnvironment<TContext extends Context = Context>(\n name: string,\n userConfig: TContext[\"config\"][\"userConfig\"]\n): EnvironmentResolvedConfig {\n return defu(\n userConfig.environments?.[name] ?? {},\n {\n name,\n title: userConfig.title || titleCase(userConfig.name),\n ssr: false,\n mainFields:\n userConfig.build?.platform === \"browser\"\n ? [\"browser\", \"module\", \"jsnext:main\", \"jsnext\"]\n : [\"module\", \"jsnext:main\", \"jsnext\"],\n extensions: [\".mjs\", \".js\", \".mts\", \".ts\", \".jsx\", \".tsx\", \".json\"],\n consumer: userConfig.build?.platform === \"browser\" ? \"client\" : \"server\",\n preview:\n userConfig.build?.platform === \"browser\"\n ? {\n port: 5173,\n open: true,\n strictPort: false,\n // https: false,\n host: \"localhost\",\n allowedHosts: [\".\"],\n cors: true,\n headers: {}\n }\n : undefined\n },\n userConfig\n ) as EnvironmentResolvedConfig;\n}\n\nexport function createDefaultEnvironment<\n TContext extends APIContext = APIContext\n>(userConfig: TContext[\"config\"][\"userConfig\"]): EnvironmentResolvedConfig {\n return createEnvironment(DEFAULT_ENVIRONMENT, userConfig);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport chalk from \"chalk\";\nimport {\n createDefaultEnvironment,\n createEnvironment\n} from \"../../internal/helpers/environment\";\nimport {\n InitialUserConfig,\n InlineConfig,\n LogFn,\n UserConfig,\n WorkspaceConfig\n} from \"../../types/config\";\nimport {\n APIContext,\n EnvironmentContext,\n InitContextOptions,\n PluginContext\n} from \"../../types/context\";\nimport {\n UNSAFE_ContextInternal,\n UNSAFE_EnvironmentContext\n} from \"../../types/internal\";\nimport { Plugin } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { loadWorkspaceConfig } from \"../config-file\";\nimport { GLOBAL_ENVIRONMENT } from \"../constants/environments\";\nimport { PowerlinesContext } from \"./context\";\nimport { PowerlinesEnvironmentContext } from \"./environment-context\";\n\nexport class PowerlinesAPIContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements APIContext<TResolvedConfig>\n{\n #environments: Record<string, UNSAFE_EnvironmentContext<TResolvedConfig>> =\n {};\n\n #plugins: Plugin<PluginContext<TResolvedConfig>>[] = [];\n\n #log!: LogFn;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static override async from<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceRoot: string,\n config: InitialUserConfig<TResolvedConfig[\"userConfig\"]>\n ): Promise<APIContext<TResolvedConfig>> {\n const context = new PowerlinesAPIContext<TResolvedConfig>(\n await loadWorkspaceConfig(workspaceRoot, config.root)\n );\n await context.withUserConfig(config);\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override get $$internal(): UNSAFE_ContextInternal<TResolvedConfig> {\n return super.$$internal;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override set $$internal(\n value: UNSAFE_ContextInternal<TResolvedConfig>\n ) {\n super.$$internal = value;\n for (const environment of Object.values(this.environments)) {\n environment.$$internal = super.$$internal;\n }\n }\n\n /**\n * A record of all environments by name\n */\n public get environments(): Record<\n string,\n UNSAFE_EnvironmentContext<TResolvedConfig>\n > {\n return this.#environments;\n }\n\n public override get log(): LogFn {\n if (!this.#log) {\n this.#log = this.createLog();\n }\n\n return this.#log;\n }\n\n public get plugins(): Array<Plugin<PluginContext<TResolvedConfig>>> {\n return this.#plugins;\n }\n\n protected constructor(workspaceConfig: WorkspaceConfig) {\n super(workspaceConfig);\n }\n\n /**\n * Initialize the context with the provided configuration options\n *\n * @param config - The partial user configuration to use for initialization.\n */\n protected override async init(\n config: Partial<TResolvedConfig[\"userConfig\"]> = {}\n ) {\n await super.init(config);\n\n await Promise.all(\n toArray(\n this.config.userConfig.environments &&\n Object.keys(this.config.userConfig.environments).length > 0\n ? Object.keys(this.config.userConfig.environments).map(name =>\n createEnvironment(name, this.config.userConfig)\n )\n : createDefaultEnvironment(this.config.userConfig)\n ).map(async env => {\n this.#environments[env.name] = await this.in(env);\n })\n );\n }\n\n /**\n * A function to copy the context and update the fields for a specific environment\n *\n * @param environment - The environment configuration to use.\n * @returns A new context instance with the updated environment.\n */\n public async in(\n environment: EnvironmentResolvedConfig\n ): Promise<UNSAFE_EnvironmentContext<TResolvedConfig>> {\n let context: UNSAFE_EnvironmentContext<TResolvedConfig>;\n if (this.environments[environment.name]) {\n context = this.environments[environment.name] as any;\n } else {\n context = (await PowerlinesEnvironmentContext.fromConfig(\n this.workspaceConfig,\n this.config\n )) as any;\n }\n\n if (isSetObject(this.config.inlineConfig)) {\n await context.withInlineConfig(this.config.inlineConfig);\n }\n\n context.environment = environment;\n context.plugins = [];\n\n for (const plugin of this.plugins) {\n await context.addPlugin(plugin);\n }\n\n return context;\n }\n\n /**\n * Update the context using a new user configuration options\n *\n * @param userConfig - The new user configuration options.\n */\n public override async withUserConfig(\n userConfig: InitialUserConfig<TResolvedConfig[\"userConfig\"]>,\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withUserConfig(userConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withUserConfig(\n userConfig as UserConfig,\n options\n );\n })\n );\n }\n\n /**\n * Update the context using a new inline configuration options\n *\n * @param inlineConfig - The new inline configuration options.\n */\n public override async withInlineConfig(\n inlineConfig: TResolvedConfig[\"inlineConfig\"],\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withInlineConfig(inlineConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withInlineConfig(\n inlineConfig as InlineConfig,\n options\n );\n })\n );\n }\n\n /**\n * Add a plugin to the API context and all environments\n *\n * @param plugin - The plugin to add.\n */\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n this.plugins.push(plugin);\n\n await Promise.all(\n Object.keys(this.environments).map(async name => {\n await this.environments[name]!.addPlugin(plugin);\n })\n );\n }\n\n /**\n * Get an environment by name, or the default environment if no name is provided\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context.\n */\n public async getEnvironment(name?: string) {\n let environment: EnvironmentContext<TResolvedConfig> | undefined;\n if (name) {\n environment = this.environments[name];\n }\n\n if (Object.keys(this.environments).length === 1) {\n environment = this.environments[Object.keys(this.environments)[0]!];\n\n this.log(\n LogLevelLabel.DEBUG,\n `Applying the only configured environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n if (!environment) {\n if (name) {\n throw new Error(`Environment \"${name}\" not found.`);\n }\n\n environment = await this.in(\n createDefaultEnvironment(this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.WARN,\n `No environment specified, and no default environment found. Using a temporary default environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n return environment;\n }\n\n /**\n * A safe version of `getEnvironment` that returns `undefined` if the environment is not found\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context or `undefined` if not found.\n */\n public async getEnvironmentSafe(\n name?: string\n ): Promise<EnvironmentContext<TResolvedConfig> | undefined> {\n try {\n return await this.getEnvironment(name);\n } catch {\n return undefined;\n }\n }\n\n /**\n * A function to merge all configured environments into a single context.\n *\n * @remarks\n * If only one environment is configured, that environment will be returned directly.\n *\n * @returns A promise that resolves to a merged/global environment context.\n */\n public async toEnvironment(): Promise<EnvironmentContext<TResolvedConfig>> {\n let environment: EnvironmentContext<TResolvedConfig>;\n if (Object.keys(this.environments).length > 1) {\n environment = await this.in(\n createEnvironment(GLOBAL_ENVIRONMENT, this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.DEBUG,\n `Combined all ${Object.keys(this.environments).length} environments into a single global context.`\n );\n } else {\n environment = await this.getEnvironment();\n }\n\n return environment;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/internal/helpers/environment.ts","../../src/lib/contexts/api-context.ts"],"names":["createEnvironment","name","userConfig","defu","environments","title","titleCase","ssr","mainFields","build","platform","extensions","consumer","preview","port","open","strictPort","host","allowedHosts","cors","headers","undefined","createDefaultEnvironment","DEFAULT_ENVIRONMENT","PowerlinesAPIContext","PowerlinesContext","from","workspaceRoot","config","context","loadWorkspaceConfig","root","withUserConfig","powerlinesPath","resolvePackage","Error","$$internal","value","environment","Object","values","log","createLog","plugins","workspaceConfig","init","Promise","all","toArray","keys","length","map","env","in","PowerlinesEnvironmentContext","fromConfig","isSetObject","inlineConfig","withInlineConfig","plugin","addPlugin","options","isHighPriority","push","getEnvironment","LogLevelLabel","DEBUG","chalk","bold","cyanBright","WARN","getEnvironmentSafe","toEnvironment","GLOBAL_ENVIRONMENT"],"mappings":"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","file":"chunk-AE5FOE5F.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport defu from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../../lib/constants/environments\";\nimport { APIContext, Context } from \"../../types/context\";\nimport { EnvironmentResolvedConfig } from \"../../types/resolved\";\n\nexport function createEnvironment<TContext extends Context = Context>(\n name: string,\n userConfig: TContext[\"config\"][\"userConfig\"]\n): EnvironmentResolvedConfig {\n return defu(\n userConfig.environments?.[name] ?? {},\n {\n name,\n title: userConfig.title || titleCase(userConfig.name),\n ssr: false,\n mainFields:\n userConfig.build?.platform === \"browser\"\n ? [\"browser\", \"module\", \"jsnext:main\", \"jsnext\"]\n : [\"module\", \"jsnext:main\", \"jsnext\"],\n extensions: [\".mjs\", \".js\", \".mts\", \".ts\", \".jsx\", \".tsx\", \".json\"],\n consumer: userConfig.build?.platform === \"browser\" ? \"client\" : \"server\",\n preview:\n userConfig.build?.platform === \"browser\"\n ? {\n port: 5173,\n open: true,\n strictPort: false,\n // https: false,\n host: \"localhost\",\n allowedHosts: [\".\"],\n cors: true,\n headers: {}\n }\n : undefined\n },\n userConfig\n ) as EnvironmentResolvedConfig;\n}\n\nexport function createDefaultEnvironment<\n TContext extends APIContext = APIContext\n>(userConfig: TContext[\"config\"][\"userConfig\"]): EnvironmentResolvedConfig {\n return createEnvironment(DEFAULT_ENVIRONMENT, userConfig);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport chalk from \"chalk\";\nimport {\n createDefaultEnvironment,\n createEnvironment\n} from \"../../internal/helpers/environment\";\nimport {\n InitialUserConfig,\n InlineConfig,\n LogFn,\n UserConfig,\n WorkspaceConfig\n} from \"../../types/config\";\nimport {\n APIContext,\n EnvironmentContext,\n InitContextOptions,\n PluginContext\n} from \"../../types/context\";\nimport {\n UNSAFE_ContextInternal,\n UNSAFE_EnvironmentContext\n} from \"../../types/internal\";\nimport { Plugin } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { loadWorkspaceConfig } from \"../config-file\";\nimport { GLOBAL_ENVIRONMENT } from \"../constants/environments\";\nimport { PowerlinesContext } from \"./context\";\nimport { PowerlinesEnvironmentContext } from \"./environment-context\";\n\nexport class PowerlinesAPIContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements APIContext<TResolvedConfig>\n{\n #environments: Record<string, UNSAFE_EnvironmentContext<TResolvedConfig>> =\n {};\n\n #plugins: Plugin<PluginContext<TResolvedConfig>>[] = [];\n\n #log!: LogFn;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static override async from<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceRoot: string,\n config: InitialUserConfig<TResolvedConfig[\"userConfig\"]>\n ): Promise<APIContext<TResolvedConfig>> {\n const context = new PowerlinesAPIContext<TResolvedConfig>(\n await loadWorkspaceConfig(workspaceRoot, config.root)\n );\n await context.withUserConfig(config);\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override get $$internal(): UNSAFE_ContextInternal<TResolvedConfig> {\n return super.$$internal;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override set $$internal(\n value: UNSAFE_ContextInternal<TResolvedConfig>\n ) {\n super.$$internal = value;\n for (const environment of Object.values(this.environments)) {\n environment.$$internal = super.$$internal;\n }\n }\n\n /**\n * A record of all environments by name\n */\n public get environments(): Record<\n string,\n UNSAFE_EnvironmentContext<TResolvedConfig>\n > {\n return this.#environments;\n }\n\n public override get log(): LogFn {\n if (!this.#log) {\n this.#log = this.createLog();\n }\n\n return this.#log;\n }\n\n public get plugins(): Array<Plugin<PluginContext<TResolvedConfig>>> {\n return this.#plugins;\n }\n\n protected constructor(workspaceConfig: WorkspaceConfig) {\n super(workspaceConfig);\n }\n\n /**\n * Initialize the context with the provided configuration options\n *\n * @param config - The partial user configuration to use for initialization.\n */\n protected override async init(\n config: Partial<TResolvedConfig[\"userConfig\"]> = {}\n ) {\n await super.init(config);\n\n await Promise.all(\n toArray(\n this.config.userConfig.environments &&\n Object.keys(this.config.userConfig.environments).length > 0\n ? Object.keys(this.config.userConfig.environments).map(name =>\n createEnvironment(name, this.config.userConfig)\n )\n : createDefaultEnvironment(this.config.userConfig)\n ).map(async env => {\n this.#environments[env.name] = await this.in(env);\n })\n );\n }\n\n /**\n * A function to copy the context and update the fields for a specific environment\n *\n * @param environment - The environment configuration to use.\n * @returns A new context instance with the updated environment.\n */\n public async in(\n environment: EnvironmentResolvedConfig\n ): Promise<UNSAFE_EnvironmentContext<TResolvedConfig>> {\n let context: UNSAFE_EnvironmentContext<TResolvedConfig>;\n if (this.environments[environment.name]) {\n context = this.environments[environment.name] as any;\n } else {\n context = (await PowerlinesEnvironmentContext.fromConfig(\n this.workspaceConfig,\n this.config\n )) as any;\n }\n\n if (isSetObject(this.config.inlineConfig)) {\n await context.withInlineConfig(this.config.inlineConfig);\n }\n\n context.environment = environment;\n context.plugins = [];\n\n for (const plugin of this.plugins) {\n await context.addPlugin(plugin);\n }\n\n return context;\n }\n\n /**\n * Update the context using a new user configuration options\n *\n * @param userConfig - The new user configuration options.\n */\n public override async withUserConfig(\n userConfig: InitialUserConfig<TResolvedConfig[\"userConfig\"]>,\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withUserConfig(userConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withUserConfig(\n userConfig as UserConfig,\n options\n );\n })\n );\n }\n\n /**\n * Update the context using a new inline configuration options\n *\n * @param inlineConfig - The new inline configuration options.\n */\n public override async withInlineConfig(\n inlineConfig: TResolvedConfig[\"inlineConfig\"],\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withInlineConfig(inlineConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withInlineConfig(\n inlineConfig as InlineConfig,\n options\n );\n })\n );\n }\n\n /**\n * Add a plugin to the API context and all environments\n *\n * @param plugin - The plugin to add.\n */\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n this.plugins.push(plugin);\n\n await Promise.all(\n Object.keys(this.environments).map(async name => {\n await this.environments[name]!.addPlugin(plugin);\n })\n );\n }\n\n /**\n * Get an environment by name, or the default environment if no name is provided\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context.\n */\n public async getEnvironment(name?: string) {\n let environment: EnvironmentContext<TResolvedConfig> | undefined;\n if (name) {\n environment = this.environments[name];\n }\n\n if (Object.keys(this.environments).length === 1) {\n environment = this.environments[Object.keys(this.environments)[0]!];\n\n this.log(\n LogLevelLabel.DEBUG,\n `Applying the only configured environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n if (!environment) {\n if (name) {\n throw new Error(`Environment \"${name}\" not found.`);\n }\n\n environment = await this.in(\n createDefaultEnvironment(this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.WARN,\n `No environment specified, and no default environment found. Using a temporary default environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n return environment;\n }\n\n /**\n * A safe version of `getEnvironment` that returns `undefined` if the environment is not found\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context or `undefined` if not found.\n */\n public async getEnvironmentSafe(\n name?: string\n ): Promise<EnvironmentContext<TResolvedConfig> | undefined> {\n try {\n return await this.getEnvironment(name);\n } catch {\n return undefined;\n }\n }\n\n /**\n * A function to merge all configured environments into a single context.\n *\n * @remarks\n * If only one environment is configured, that environment will be returned directly.\n *\n * @returns A promise that resolves to a merged/global environment context.\n */\n public async toEnvironment(): Promise<EnvironmentContext<TResolvedConfig>> {\n let environment: EnvironmentContext<TResolvedConfig>;\n if (Object.keys(this.environments).length > 1) {\n environment = await this.in(\n createEnvironment(GLOBAL_ENVIRONMENT, this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.DEBUG,\n `Combined all ${Object.keys(this.environments).length} environments into a single global context.`\n );\n } else {\n environment = await this.getEnvironment();\n }\n\n return environment;\n }\n}\n"]}
|
|
@@ -61,13 +61,7 @@ function extractTsdownConfig(context) {
|
|
|
61
61
|
joinPaths.joinPaths(context.workspaceConfig.workspaceRoot, context.config.sourceRoot, "**/*.ts"),
|
|
62
62
|
joinPaths.joinPaths(context.workspaceConfig.workspaceRoot, context.config.sourceRoot, "**/*.tsx")
|
|
63
63
|
],
|
|
64
|
-
alias: context.
|
|
65
|
-
const path = context.fs.paths[id];
|
|
66
|
-
if (path) {
|
|
67
|
-
ret[`${context.config.output?.builtinPrefix || context.config?.framework || "powerlines"}:${id.replace(/^.*?:/, "")}`] = path;
|
|
68
|
-
}
|
|
69
|
-
return ret;
|
|
70
|
-
}, context.config.build.alias ?? {}),
|
|
64
|
+
alias: context.alias,
|
|
71
65
|
noExternal: context.builtins
|
|
72
66
|
}, context.config.build.variant === "tsdown" ? context.config.build.override : {}, context.config.build.variant === "tsdown" ? omit.omit(context.config.build, [
|
|
73
67
|
"override",
|
|
@@ -83,16 +77,7 @@ function extractTsdownConfig(context) {
|
|
|
83
77
|
sourcemap: context.config.mode === "development"
|
|
84
78
|
},
|
|
85
79
|
resolve: {
|
|
86
|
-
alias: context.
|
|
87
|
-
const moduleId = `${context.config.output?.builtinPrefix || context.config?.framework || "powerlines"}:${id.replace(/^.*?:/, "")}`;
|
|
88
|
-
if (!ret[moduleId]) {
|
|
89
|
-
const path = context.fs.paths[id];
|
|
90
|
-
if (path) {
|
|
91
|
-
ret[moduleId] = path;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return ret;
|
|
95
|
-
}, context.config.build.alias ?? {})
|
|
80
|
+
alias: context.alias
|
|
96
81
|
},
|
|
97
82
|
outDir: append.appendPath(context.config.output.buildPath, context.workspaceConfig.workspaceRoot),
|
|
98
83
|
tsconfig: append.appendPath(context.tsconfig.tsconfigFilePath, context.workspaceConfig.workspaceRoot),
|
|
@@ -121,5 +106,5 @@ exports.DEFAULT_TSDOWN_CONFIG = DEFAULT_TSDOWN_CONFIG;
|
|
|
121
106
|
exports.extractTsdownConfig = extractTsdownConfig;
|
|
122
107
|
exports.resolveFromTsdownFormat = resolveFromTsdownFormat;
|
|
123
108
|
exports.resolveTsdownFormat = resolveTsdownFormat;
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-DRHDTUHQ.cjs.map
|
|
110
|
+
//# sourceMappingURL=chunk-DRHDTUHQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/build/tsdown.ts"],"names":["DEFAULT_TSDOWN_CONFIG","platform","target","cjsDefault","unbundle","shims","fixedExtension","nodeProtocol","clean","resolveTsdownFormat","formats","toArray","map","format","resolveFromTsdownFormat","formatMessage","__name","context","msgs","filter","Boolean","join","replace","RegExp","config","name","replaceAll","trim","extractTsdownConfig","defu","entry","file","length","joinPaths","workspaceConfig","workspaceRoot","sourceRoot","alias","noExternal","builtins","build","variant","override","omit","cwd","appendPath","projectRoot","dts","parallel","newContext","tsconfig","tsconfigFilePath","sourcemap","mode","resolve","outDir","output","buildPath","treeshake","treeShaking","undefined","minify","metafile","debug","silent","logLevel","customLogger","level","info","isSetString","warn","warnOnce","error","success"],"mappings":"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","file":"chunk-DRHDTUHQ.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Format } from \"@storm-software/build-tools/types\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\nimport { Format as TsdownFormat } from \"tsdown\";\nimport {\n ESBuildBuildConfig,\n TsdownBuildConfig,\n TsdownResolvedBuildConfig,\n TsupBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\n\nexport const DEFAULT_TSDOWN_CONFIG: Partial<TsdownResolvedBuildConfig> = {\n platform: \"neutral\",\n target: \"esnext\",\n cjsDefault: true,\n unbundle: true,\n shims: true,\n fixedExtension: true,\n nodeProtocol: true,\n clean: false\n} as const;\n\n/**\n * Resolves the entry options for [tsdown](https://github.com/rolldown/tsdown).\n *\n * @param formats - The formats to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveTsdownFormat(\n formats?: Format | Format[]\n): TsdownFormat[] {\n return toArray(formats).map(format => {\n switch (format) {\n case \"cjs\":\n return \"cjs\";\n case \"iife\":\n return \"iife\";\n case \"esm\":\n default:\n return \"esm\";\n }\n });\n}\n\n/**\n * Resolves the entry options for [tsdown](https://github.com/rolldown/tsdown).\n *\n * @param formats - The formats to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveFromTsdownFormat(\n formats?: TsdownFormat | TsdownFormat[]\n): Format[] {\n return toArray(formats).map(format => {\n switch (format) {\n case \"cjs\":\n case \"commonjs\":\n return \"cjs\";\n case \"iife\":\n return \"iife\";\n case \"esm\":\n case \"es\":\n case \"module\":\n case \"umd\":\n default:\n return \"esm\";\n }\n });\n}\n\nconst formatMessage = (context: Context, ...msgs: any[]) =>\n msgs\n .filter(Boolean)\n .join(\" \")\n .replace(new RegExp(`\\\\[${context.config.name}\\\\]`, \"g\"), \"\")\n .replaceAll(/^\\s+/g, \"\")\n .replaceAll(/\\s+$/g, \"\")\n .trim();\n\n/**\n * Resolves the options for [tsdown](https://github.com/rolldown/tsdown).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractTsdownConfig(\n context: Context\n): TsdownResolvedBuildConfig {\n return defu(\n {\n entry:\n context.entry.map(entry => entry?.file).filter(Boolean).length > 0\n ? context.entry.map(entry => entry?.file).filter(Boolean)\n : [\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.sourceRoot,\n \"**/*.ts\"\n ),\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.sourceRoot,\n \"**/*.tsx\"\n )\n ],\n alias: context.alias,\n noExternal: context.builtins\n },\n context.config.build.variant === \"tsdown\"\n ? context.config.build.override\n : {},\n context.config.build.variant === \"tsdown\"\n ? omit(context.config.build, [\"override\", \"variant\"])\n : {},\n {\n name: context.config.name,\n cwd: appendPath(\n context.config.projectRoot,\n context.workspaceConfig.workspaceRoot\n ),\n dts: {\n parallel: true,\n newContext: true,\n cwd: appendPath(\n context.config.projectRoot,\n context.workspaceConfig.workspaceRoot\n ),\n tsconfig: appendPath(\n context.tsconfig.tsconfigFilePath,\n context.workspaceConfig.workspaceRoot\n ),\n sourcemap: context.config.mode === \"development\"\n },\n resolve: {\n alias: context.alias\n },\n outDir: appendPath(\n context.config.output.buildPath,\n context.workspaceConfig.workspaceRoot\n ),\n tsconfig: appendPath(\n context.tsconfig.tsconfigFilePath,\n context.workspaceConfig.workspaceRoot\n ),\n format: resolveTsdownFormat(context.config.output.format).filter(Boolean),\n mode: context.config.mode,\n treeshake:\n context.config.build.variant === \"tsdown\"\n ? (context.config.build as TsdownBuildConfig)?.treeshake\n : context.config.build.variant === \"tsup\"\n ? (context.config.build as TsupBuildConfig)?.treeshake\n : context.config.build.variant === \"esbuild\"\n ? (context.config.build as ESBuildBuildConfig)?.treeShaking\n : undefined,\n minify: context.config.mode === \"production\",\n metafile: context.config.mode === \"development\",\n sourcemap: context.config.mode === \"development\",\n debug: context.config.mode === \"development\",\n silent:\n context.config.logLevel === null ||\n context.config.mode === \"production\",\n logLevel:\n context.config.logLevel === \"trace\" ? \"debug\" : context.config.logLevel,\n customLogger: {\n level:\n context.config.logLevel === \"trace\"\n ? \"debug\"\n : context.config.logLevel,\n info: (...msgs: any[]) =>\n isSetString(formatMessage(context, ...msgs).replace(/\\s+/g, \"\")) &&\n context.debug(formatMessage(context, ...msgs)),\n warn: (...msgs: any[]) =>\n isSetString(formatMessage(context, ...msgs).replace(/\\s+/g, \"\")) &&\n context.warn(formatMessage(context, ...msgs)),\n warnOnce: (...msgs: any[]) =>\n isSetString(formatMessage(context, ...msgs).replace(/\\s+/g, \"\")) &&\n context.warn(formatMessage(context, ...msgs)),\n error: (...msgs: any[]) =>\n isSetString(formatMessage(context, ...msgs).replace(/\\s+/g, \"\")) &&\n context.error(formatMessage(context, ...msgs)),\n success: (...msgs: any[]) =>\n isSetString(formatMessage(context, ...msgs).replace(/\\s+/g, \"\")) &&\n context.debug(formatMessage(context, ...msgs))\n }\n } as TsdownResolvedBuildConfig,\n DEFAULT_TSDOWN_CONFIG\n );\n}\n"]}
|
|
@@ -70,21 +70,7 @@ export { ${key} };`;
|
|
|
70
70
|
}).join("\n"));
|
|
71
71
|
}
|
|
72
72
|
return defu({
|
|
73
|
-
alias: context.
|
|
74
|
-
const moduleId = `${context.config.output?.builtinPrefix || context.config?.framework || "powerlines"}:${id.replace(/^.*?:/, "")}`;
|
|
75
|
-
if (!ret[moduleId]) {
|
|
76
|
-
const path = context.fs.paths[id];
|
|
77
|
-
if (path) {
|
|
78
|
-
ret[moduleId] = path;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return ret;
|
|
82
|
-
}, context.config.build.alias ? Array.isArray(context.config.build.alias) ? context.config.build.alias.reduce((ret, alias) => {
|
|
83
|
-
if (!ret[alias.find.toString()]) {
|
|
84
|
-
ret[alias.find.toString()] = alias.replacement;
|
|
85
|
-
}
|
|
86
|
-
return ret;
|
|
87
|
-
}, {}) : context.config.build.alias : {}),
|
|
73
|
+
alias: context.alias,
|
|
88
74
|
inject: inject && Object.keys(inject).length > 0 ? [
|
|
89
75
|
joinPaths(context.workspaceConfig.workspaceRoot, context.config.projectRoot, context.artifactsPath, "inject-shim.js")
|
|
90
76
|
] : void 0
|
|
@@ -123,5 +109,5 @@ export { ${key} };`;
|
|
|
123
109
|
__name(extractESBuildConfig, "extractESBuildConfig");
|
|
124
110
|
|
|
125
111
|
export { DEFAULT_ESBUILD_CONFIG, extractESBuildConfig, resolveESBuildEntry };
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
112
|
+
//# sourceMappingURL=chunk-FA7RSY75.js.map
|
|
113
|
+
//# sourceMappingURL=chunk-FA7RSY75.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/build/esbuild.ts"],"names":["DEFAULT_ESBUILD_CONFIG","target","platform","format","write","minify","sourcemap","bundle","treeShaking","keepNames","splitting","logLevel","resolveESBuildEntry","context","entryPoints","reduce","ret","entry","isString","replaceExtension","replacePath","config","sourceRoot","projectRoot","output","resolveEntryOutput","file","extractESBuildConfig","inject","build","override","Object","keys","length","fs","writeSync","joinPaths","workspaceConfig","workspaceRoot","artifactsPath","entries","map","key","value","Array","isArray","camelCase","join","defu","alias","undefined","variant","omit","mainFields","conditions","define","resolveExtensions","extensions","packages","skipNodeModulesBundle","Boolean","treeshake","outdir","buildPath","tsconfig","tsconfigFilePath","mode","metafile"],"mappings":"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","file":"chunk-FA7RSY75.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu from \"defu\";\nimport { BuildOptions, Format, LogLevel, Platform } from \"esbuild\";\nimport {\n ESBuildBuildConfig,\n ESBuildResolvedBuildConfig,\n TsupBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport type { ResolvedEntryTypeDefinition } from \"../../types/resolved\";\nimport { resolveEntryOutput } from \"../entry\";\n\n// const resolverPlugin = (\n// context: Context,\n// options: Pick<\n// BuildResolvedConfig,\n// \"external\" | \"noExternal\" | \"skipNodeModulesBundle\"\n// > = {}\n// ): Plugin => {\n// return {\n// name: \"powerlines:resolver\",\n// setup(build) {\n// const skipNodeModulesBundle =\n// options.skipNodeModulesBundle ??\n// context.config.build.skipNodeModulesBundle;\n// const external = options.external ?? context.config.build.external ?? [];\n// const noExternal =\n// options.noExternal ?? context.config.build.noExternal ?? [];\n// const resolvePatterns = skipNodeModulesBundle\n// ? tsconfigPathsToRegExp(context.tsconfig.options.paths ?? [])\n// : [];\n\n// const handle = async (args: OnResolveArgs) => {\n// const result = await handleResolveId(\n// context,\n// {\n// id: args.path,\n// importer: args.importer,\n// options: {\n// isEntry: false\n// }\n// },\n// {\n// skipNodeModulesBundle,\n// external,\n// noExternal,\n// resolvePatterns\n// }\n// );\n// if (!result) {\n// return;\n// }\n\n// return {\n// path: result?.id,\n// external: result?.external\n// };\n// };\n\n// build.onResolve({ filter: /.*/ }, handle);\n// build.onResolve({ filter: /^storm:/ }, handle);\n// }\n// };\n// };\n\nexport const DEFAULT_ESBUILD_CONFIG: Partial<ESBuildResolvedBuildConfig> = {\n target: \"esnext\",\n platform: \"neutral\" as Platform,\n format: \"esm\" as Format,\n write: true,\n minify: true,\n sourcemap: false,\n bundle: true,\n treeShaking: true,\n keepNames: true,\n splitting: true,\n logLevel: \"silent\" as LogLevel\n};\n\n/**\n * Resolves the entry options for esbuild.\n *\n * @param context - The build context.\n * @param entryPoints - The entry points to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveESBuildEntry(\n context: Context,\n entryPoints: ResolvedEntryTypeDefinition[] | string[] = []\n): ESBuildResolvedBuildConfig[\"entryPoints\"] {\n return entryPoints.reduce(\n (ret, entry) => {\n if (isString(entry)) {\n ret[\n replaceExtension(\n replacePath(\n entry,\n context.config.sourceRoot || context.config.projectRoot\n )\n )\n ] = replacePath(\n entry,\n context.config.sourceRoot || context.config.projectRoot\n );\n } else {\n ret[entry.output || resolveEntryOutput(context, entry)] = entry.file;\n }\n\n return ret;\n },\n {} as Record<string, string>\n );\n}\n\n/**\n * Resolves the esbuild options.\n *\n * @param context - The build context.\n * @returns The resolved esbuild options.\n */\nexport function extractESBuildConfig(context: Context): BuildOptions {\n const inject =\n context.config.build.override.inject ?? context.config.build.inject;\n if (inject && Object.keys(inject).length > 0) {\n context.fs.writeSync(\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot,\n context.artifactsPath,\n \"inject-shim.js\"\n ),\n Object.entries(inject)\n .map(([key, value]) => {\n if (value) {\n if (Array.isArray(value)) {\n if (camelCase(key) !== key) {\n if (value.length === 1) {\n return `\nimport ${camelCase(key)} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n } else if (value.length > 1) {\n return `\nimport ${value[1] === \"*\" ? `* as ${camelCase(key)}` : `{ ${value[1]} as ${camelCase(key)} }`} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n }\n } else if (value.length === 1) {\n return `\nimport ${key} from \"${value[0]}\";\nexport { ${key} };`;\n } else if (value.length > 1) {\n return `\nimport ${value[1] === \"*\" ? `* as ${key}` : `{ ${value[1]} as ${key} }`} from \"${value[0]}\";\nexport { ${key} };`;\n }\n } else if (camelCase(key) !== key) {\n return `\nimport ${camelCase(key)} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n } else {\n return `\nimport ${key} from \"${value}\";\nexport { ${key} };`;\n }\n }\n\n return \"\";\n })\n .join(\"\\n\")\n );\n }\n\n return defu(\n {\n alias: context.alias,\n inject:\n inject && Object.keys(inject).length > 0\n ? [\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot,\n context.artifactsPath,\n \"inject-shim.js\"\n )\n ]\n : undefined\n },\n context.config.build.variant === \"esbuild\"\n ? (omit(context.config.build.override, [\n \"alias\",\n \"inject\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"extensions\"\n ]) as BuildOptions)\n : {},\n context.config.build.variant === \"esbuild\"\n ? (omit(context.config.build, [\n \"alias\",\n \"inject\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"extensions\",\n \"variant\",\n \"override\"\n ]) as BuildOptions)\n : {},\n {\n mainFields: context.config.build.mainFields,\n conditions: context.config.build.conditions,\n define: context.config.build.define,\n resolveExtensions: context.config.build.extensions,\n packages: context.config.build.skipNodeModulesBundle\n ? \"external\"\n : context.config.build.variant === \"esbuild\"\n ? (context.config.build as ESBuildBuildConfig).packages\n : undefined,\n format: (Array.isArray(context.config.output.format)\n ? context.config.output.format[0]\n : context.config.output.format) as Format,\n platform: context.config.build.platform,\n treeShaking:\n Boolean((context.config.build as TsupBuildConfig)?.treeshake) ||\n (context.config.build as ESBuildBuildConfig)?.treeShaking,\n outdir: context.config.output.buildPath,\n tsconfig: context.tsconfig.tsconfigFilePath,\n minify: context.config.mode !== \"development\",\n metafile: context.config.mode === \"development\",\n sourcemap: context.config.mode === \"development\"\n },\n DEFAULT_ESBUILD_CONFIG\n ) as BuildOptions;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveESBuildEntry } from './chunk-
|
|
1
|
+
import { resolveESBuildEntry } from './chunk-FA7RSY75.js';
|
|
2
2
|
import { __name } from './chunk-7QVYU63E.js';
|
|
3
3
|
import { DEFAULT_BUILD_OPTIONS } from '@storm-software/tsup/constants';
|
|
4
4
|
import { toArray } from '@stryke/convert/to-array';
|
|
@@ -38,16 +38,7 @@ function extractTsupConfig(context) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
options.alias = {
|
|
41
|
-
...context.
|
|
42
|
-
const moduleId = `${context.config.output?.builtinPrefix || context.config?.framework || "powerlines"}:${id.replace(/^.*?:/, "")}`;
|
|
43
|
-
if (!ret[moduleId]) {
|
|
44
|
-
const path = context.fs.paths[id];
|
|
45
|
-
if (path) {
|
|
46
|
-
ret[moduleId] = path;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return ret;
|
|
50
|
-
}, {}),
|
|
41
|
+
...context.alias,
|
|
51
42
|
...options.alias
|
|
52
43
|
};
|
|
53
44
|
}, "esbuildOptions"),
|
|
@@ -83,5 +74,5 @@ function extractTsupConfig(context) {
|
|
|
83
74
|
__name(extractTsupConfig, "extractTsupConfig");
|
|
84
75
|
|
|
85
76
|
export { DEFAULT_TSUP_CONFIG, extractTsupConfig, resolveTsupEntry };
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-FLTOE5GA.js.map
|
|
78
|
+
//# sourceMappingURL=chunk-FLTOE5GA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/build/tsup.ts"],"names":["DEFAULT_TSUP_CONFIG","DEFAULT_BUILD_OPTIONS","platform","target","config","minify","sourcemap","cjsInterop","bundle","dts","shims","silent","treeshake","keepNames","splitting","banner","resolveTsupEntry","context","entryPoints","resolveESBuildEntry","extractTsupConfig","result","defu","esbuildOptions","options","ctx","build","variant","override","alias","noExternal","builtins","omit","name","assets","output","resolveExtensions","extensions","outputPath","buildPath","projectRoot","tsconfig","tsconfigFilePath","experimentalDts","compilerOptions","tsconfigJson","undefined","format","mode","treeShaking","metafile","logLevel","verbose","workspaceConfig","workspaceRoot","getUnique","toArray"],"mappings":"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","file":"chunk-FLTOE5GA.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { AssetGlob, Entry } from \"@storm-software/build-tools/types\";\nimport { DEFAULT_BUILD_OPTIONS } from \"@storm-software/tsup/constants\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport defu from \"defu\";\nimport {\n ESBuildBuildConfig,\n TsupBuildConfig,\n TsupResolvedBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport { ResolvedEntryTypeDefinition } from \"../../types/resolved\";\nimport { resolveESBuildEntry } from \"./esbuild\";\n\nexport const DEFAULT_TSUP_CONFIG: Partial<TsupBuildConfig> = {\n ...DEFAULT_BUILD_OPTIONS,\n platform: \"neutral\",\n target: \"esnext\",\n config: false,\n minify: true,\n sourcemap: false,\n cjsInterop: true,\n bundle: true,\n dts: true,\n shims: true,\n silent: true,\n treeshake: true,\n keepNames: true,\n splitting: true,\n banner: {}\n};\n\n/**\n * Resolves the entry options for [tsup](https://github.com/egoist/tsup).\n *\n * @param context - The build context.\n * @param entryPoints - The entry points to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveTsupEntry(\n context: Context,\n entryPoints: ResolvedEntryTypeDefinition[] | string[]\n): Entry {\n return resolveESBuildEntry(context, entryPoints) as Entry;\n}\n\n/**\n * Resolves the options for [tsup](https://github.com/egoist/tsup).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractTsupConfig(context: Context): TsupResolvedBuildConfig {\n const result = defu(\n {\n esbuildOptions: ((options, ctx) => {\n if (context.config.build.variant === \"tsup\") {\n if (\n (\n context.config.build as Omit<\n TsupResolvedBuildConfig,\n \"projectRoot\"\n >\n ).esbuildOptions\n ) {\n (\n context.config.build as Omit<\n TsupResolvedBuildConfig,\n \"projectRoot\"\n >\n ).esbuildOptions?.(options, ctx);\n } else if (\n (context.config.build.override as TsupResolvedBuildConfig)\n .esbuildOptions\n ) {\n (\n context.config.build.override as TsupResolvedBuildConfig\n ).esbuildOptions?.(options, ctx);\n }\n }\n\n options.alias = {\n ...context.alias,\n ...options.alias\n };\n }) as TsupResolvedBuildConfig[\"esbuildOptions\"],\n noExternal: context.builtins\n },\n context.config.build.variant === \"tsup\"\n ? context.config.build.override\n : {},\n context.config.build.variant === \"tsup\"\n ? omit(context.config.build, [\"override\", \"variant\"])\n : {},\n {\n name: context.config.name,\n assets: context.config.output.assets as (string | AssetGlob)[],\n resolveExtensions: context.config.build.extensions,\n outputPath: context.config.output.buildPath,\n projectRoot: context.config.projectRoot,\n tsconfig: context.tsconfig.tsconfigFilePath,\n dts:\n context.config.build.variant !== \"tsup\" ||\n (!(context.config.build as TsupBuildConfig)?.experimentalDts &&\n !(context.config.build.override as TsupBuildConfig)?.experimentalDts)\n ? {\n compilerOptions: context.tsconfig.tsconfigJson.compilerOptions\n }\n : undefined,\n format: context.config.output.format,\n mode: context.config.mode,\n treeshake:\n context.config.build.variant === \"tsup\"\n ? (context.config.build as TsupBuildConfig)?.treeshake\n : context.config.build.variant === \"tsup\"\n ? (context.config.build as ESBuildBuildConfig)?.treeShaking\n : undefined,\n minify: context.config.mode !== \"development\",\n metafile: context.config.mode === \"development\",\n sourcemap: context.config.mode === \"development\",\n silent:\n context.config.logLevel === null ||\n context.config.mode === \"production\",\n verbose:\n context.config.logLevel === null ||\n context.config.logLevel === \"trace\" ||\n context.config.mode === \"development\",\n workspaceConfig: { workspaceRoot: context.workspaceConfig.workspaceRoot }\n },\n DEFAULT_TSUP_CONFIG\n );\n\n result.format = getUnique(toArray(result.format));\n return result as TsupResolvedBuildConfig;\n}\n"]}
|
|
@@ -12,21 +12,7 @@ var defu__default = /*#__PURE__*/_interopDefault(defu);
|
|
|
12
12
|
function extractWebpackConfig(context) {
|
|
13
13
|
return defu__default.default({
|
|
14
14
|
resolve: {
|
|
15
|
-
alias: context.
|
|
16
|
-
const moduleId = `${context.config.output?.builtinPrefix || context.config?.framework || "powerlines"}:${id.replace(/^.*?:/, "")}`;
|
|
17
|
-
if (!ret[moduleId]) {
|
|
18
|
-
const path = context.fs.paths[id];
|
|
19
|
-
if (path) {
|
|
20
|
-
ret[moduleId] = path;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return ret;
|
|
24
|
-
}, context.config.build.alias ? Array.isArray(context.config.build.alias) ? context.config.build.alias.reduce((ret, alias) => {
|
|
25
|
-
if (!ret[alias.find.toString()]) {
|
|
26
|
-
ret[alias.find.toString()] = alias.replacement;
|
|
27
|
-
}
|
|
28
|
-
return ret;
|
|
29
|
-
}, {}) : context.config.build.alias : {})
|
|
15
|
+
alias: context.alias
|
|
30
16
|
}
|
|
31
17
|
}, context.config.build.variant === "webpack" ? context.config.build.override : {}, context.config.build.variant === "webpack" ? omit.omit(context.config.build, [
|
|
32
18
|
"override",
|
|
@@ -59,5 +45,5 @@ function extractWebpackConfig(context) {
|
|
|
59
45
|
chunkPK6SKIKE_cjs.__name(extractWebpackConfig, "extractWebpackConfig");
|
|
60
46
|
|
|
61
47
|
exports.extractWebpackConfig = extractWebpackConfig;
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
48
|
+
//# sourceMappingURL=chunk-GFRDBE36.cjs.map
|
|
49
|
+
//# sourceMappingURL=chunk-GFRDBE36.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/build/webpack.ts"],"names":["extractWebpackConfig","context","defu","resolve","alias","config","build","variant","override","omit","output","path","joinPaths","workspaceConfig","workspaceRoot","buildPath","name","node","platform","__dirname","__filename","global","mode","cache","type","cacheDirectory","cachePath","recordsInputPath","recordsOutputPath","projectRoot","noExternal","builtins","devtool","optimization","minimize"],"mappings":";;;;;;;;;;;AA8BO,SAASA,qBAAqBC,OAAAA,EAAgB;AACnD,EAAA,OAAOC,qBAAAA,CACL;IACEC,OAAAA,EAAS;AACPC,MAAAA,KAAAA,EAAOH,OAAAA,CAAQG;AACjB;AACF,GAAA,EACAH,QAAQI,MAAAA,CAAOC,KAAAA,CAAMC,YAAY,SAAA,GAC7BN,OAAAA,CAAQI,OAAOC,KAAAA,CAAME,QAAAA,GACrB,EAAC,EACLP,OAAAA,CAAQI,OAAOC,KAAAA,CAAMC,OAAAA,KAAY,YAC7BE,SAAAA,CAAKR,OAAAA,CAAQI,OAAOC,KAAAA,EAAO;AAAC,IAAA,UAAA;AAAY,IAAA;AAAU,GAAA,CAAA,GAClD,EAAC,EACL;IACEI,MAAAA,EAAQ;AACNC,MAAAA,IAAAA,EAAMC,oBACJX,OAAAA,CAAQY,eAAAA,CAAgBC,eACxBb,OAAAA,CAAQI,MAAAA,CAAOK,OAAOK,SAAS;AAEnC,KAAA;AACAC,IAAAA,IAAAA,EAAMf,QAAQI,MAAAA,CAAOW,IAAAA;AACrBC,IAAAA,IAAAA,EACEhB,OAAAA,CAAQI,MAAAA,CAAOC,KAAAA,CAAMY,QAAAA,KAAa,MAAA,GAC7B;MACCC,SAAAA,EAAW,IAAA;MACXC,UAAAA,EAAY,IAAA;MACZC,MAAAA,EAAQ;KACV,GACA,KAAA;AACNC,IAAAA,IAAAA,EACErB,OAAAA,CAAQI,MAAAA,CAAOiB,IAAAA,KAAS,aAAA,GACnB,aAAA,GACA,YAAA;IACPC,KAAAA,EAAO;MACLC,IAAAA,EAAM,YAAA;AACNC,MAAAA,cAAAA,EAAgBb,mBAAAA,CAAUX,OAAAA,CAAQyB,SAAAA,EAAW,SAAA,EAAW,OAAA;AAC1D,KAAA;AACAC,IAAAA,gBAAAA,EAAkBf,mBAAAA,CAChBX,OAAAA,CAAQyB,SAAAA,EACR,SAAA,EACA,uBAAA,CAAA;AAEFE,IAAAA,iBAAAA,EAAmBhB,mBAAAA,CACjBX,OAAAA,CAAQyB,SAAAA,EACR,SAAA,EACA,uBAAA,CAAA;AAEFzB,IAAAA,OAAAA,EAASW,oBACPX,OAAAA,CAAQY,eAAAA,CAAgBC,aAAAA,EACxBb,OAAAA,CAAQI,OAAOwB,WAAW,CAAA;AAE5BC,IAAAA,UAAAA,EAAY7B,OAAAA,CAAQ8B,QAAAA;AACpBC,IAAAA,OAAAA,EAAU/B,OAAAA,CAAQI,MAAAA,CAAOiB,IAAAA,KAAS,aAAA,GAC9B,KAAA,GACA,YAAA;IACJW,YAAAA,EAAc;MACZC,QAAAA,EAAUjC,OAAAA,CAAQI,OAAOiB,IAAAA,KAAS;AACpC;GACF,CAAA;AAEJ;AA5DgBtB,wBAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA","file":"chunk-GFRDBE36.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport defu from \"defu\";\nimport type { Configuration as ExternalWebpackOptions } from \"webpack\";\nimport { Context } from \"../../types/context\";\n\n/**\n * Resolves the options for [webpack](https://webpack.js.org/).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractWebpackConfig(context: Context): ExternalWebpackOptions {\n return defu(\n {\n resolve: {\n alias: context.alias\n }\n },\n context.config.build.variant === \"webpack\"\n ? context.config.build.override\n : {},\n context.config.build.variant === \"webpack\"\n ? omit(context.config.build, [\"override\", \"variant\"])\n : {},\n {\n output: {\n path: joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.output.buildPath\n )\n },\n name: context.config.name,\n node:\n context.config.build.platform === \"node\"\n ? ({\n __dirname: true,\n __filename: true,\n global: true\n } as ExternalWebpackOptions[\"node\"])\n : false,\n mode:\n context.config.mode === \"development\"\n ? (\"development\" as const)\n : (\"production\" as const),\n cache: {\n type: \"filesystem\" as const,\n cacheDirectory: joinPaths(context.cachePath, \"webpack\", \"cache\")\n },\n recordsInputPath: joinPaths(\n context.cachePath,\n \"webpack\",\n \".webpack-records.json\"\n ),\n recordsOutputPath: joinPaths(\n context.cachePath,\n \"webpack\",\n \".webpack-records.json\"\n ),\n context: joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot\n ),\n noExternal: context.builtins,\n devtool: (context.config.mode !== \"development\"\n ? false\n : \"source-map\") as string | false,\n optimization: {\n minimize: context.config.mode !== \"development\"\n }\n }\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkGNEHIBN4_cjs = require('./chunk-GNEHIBN4.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkORHCJTJ2_cjs = require('./chunk-ORHCJTJ2.cjs');
|
|
5
5
|
var chunkGZDE4GLY_cjs = require('./chunk-GZDE4GLY.cjs');
|
|
6
6
|
var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
|
|
7
7
|
var resolve = require('@stryke/fs/resolve');
|
|
@@ -9,7 +9,7 @@ var isFunction = require('@stryke/type-checks/is-function');
|
|
|
9
9
|
var isObject = require('@stryke/type-checks/is-object');
|
|
10
10
|
var isSetObject = require('@stryke/type-checks/is-set-object');
|
|
11
11
|
|
|
12
|
-
var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends
|
|
12
|
+
var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends chunkORHCJTJ2_cjs.PowerlinesContext {
|
|
13
13
|
static {
|
|
14
14
|
chunkPK6SKIKE_cjs.__name(this, "PowerlinesEnvironmentContext");
|
|
15
15
|
}
|
|
@@ -58,21 +58,21 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
58
58
|
if (!result || isObject.isObject(result) && Object.keys(result).length === 0) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
if (
|
|
61
|
+
if (chunkORHCJTJ2_cjs.isPluginConfig(result)) {
|
|
62
62
|
return this.$$internal.addPlugin(result);
|
|
63
63
|
}
|
|
64
|
-
resolvedPlugin =
|
|
64
|
+
resolvedPlugin = chunkORHCJTJ2_cjs.isPlugin(result) ? result : plugin;
|
|
65
65
|
}
|
|
66
66
|
const context = chunkGZDE4GLY_cjs.createPluginContext(resolvedPlugin, this);
|
|
67
67
|
this.plugins.push({
|
|
68
68
|
plugin: resolvedPlugin,
|
|
69
69
|
context
|
|
70
70
|
});
|
|
71
|
-
this.#hooks = Object.keys(resolvedPlugin).filter((key) => !
|
|
71
|
+
this.#hooks = Object.keys(resolvedPlugin).filter((key) => !chunkORHCJTJ2_cjs.PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
|
|
72
72
|
const hook = key;
|
|
73
|
-
if (
|
|
73
|
+
if (chunkORHCJTJ2_cjs.isPluginHookField(hook)) {
|
|
74
74
|
const pluginHook = resolvedPlugin[hook];
|
|
75
|
-
if (!
|
|
75
|
+
if (!chunkORHCJTJ2_cjs.isPluginHook(pluginHook)) {
|
|
76
76
|
return ret;
|
|
77
77
|
}
|
|
78
78
|
ret[hook] ??= {
|
|
@@ -86,20 +86,20 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
86
86
|
const hookListOrder2 = `${resolvedPlugin.enforce}Enforced`;
|
|
87
87
|
ret[hook][hookListOrder2] ??= [];
|
|
88
88
|
const bucket = ret[hook][hookListOrder2];
|
|
89
|
-
|
|
89
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
|
|
90
90
|
return ret;
|
|
91
91
|
}
|
|
92
92
|
if (isFunction.isFunction(pluginHook) || !pluginHook.order) {
|
|
93
93
|
ret[hook].normal ??= [];
|
|
94
94
|
const bucket = ret[hook].normal;
|
|
95
|
-
|
|
95
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
|
|
96
96
|
return ret;
|
|
97
97
|
}
|
|
98
98
|
const hookListOrder = `${pluginHook.order}Ordered`;
|
|
99
99
|
ret[hook][hookListOrder] ??= [];
|
|
100
|
-
|
|
100
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][hookListOrder]);
|
|
101
101
|
return ret;
|
|
102
|
-
} else if (
|
|
102
|
+
} else if (chunkORHCJTJ2_cjs.isUnpluginHookField(hook)) {
|
|
103
103
|
const unpluginPlugin = resolvedPlugin[hook];
|
|
104
104
|
if (!isSetObject.isSetObject(unpluginPlugin)) {
|
|
105
105
|
return ret;
|
|
@@ -107,7 +107,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
107
107
|
for (const field of Object.keys(unpluginPlugin)) {
|
|
108
108
|
const variantField = field;
|
|
109
109
|
const pluginHook = unpluginPlugin[variantField];
|
|
110
|
-
if (!
|
|
110
|
+
if (!chunkORHCJTJ2_cjs.isPluginHook(pluginHook)) {
|
|
111
111
|
continue;
|
|
112
112
|
}
|
|
113
113
|
ret[hook] ??= {};
|
|
@@ -119,14 +119,14 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
119
119
|
postOrdered: []
|
|
120
120
|
};
|
|
121
121
|
if (resolvedPlugin.enforce) {
|
|
122
|
-
|
|
122
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${resolvedPlugin.enforce}Enforced`]);
|
|
123
123
|
return ret;
|
|
124
124
|
}
|
|
125
125
|
if (isFunction.isFunction(pluginHook) || !pluginHook.order) {
|
|
126
|
-
|
|
126
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField].normal);
|
|
127
127
|
return ret;
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
chunkORHCJTJ2_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${pluginHook.order}Ordered`]);
|
|
130
130
|
}
|
|
131
131
|
} else {
|
|
132
132
|
this.warn(`Unknown plugin hook field: ${String(hook)}`);
|
|
@@ -139,7 +139,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
139
139
|
*/
|
|
140
140
|
selectHooks(key, options) {
|
|
141
141
|
const result = [];
|
|
142
|
-
if (
|
|
142
|
+
if (chunkORHCJTJ2_cjs.isUnpluginHookKey(key)) {
|
|
143
143
|
const variant = String(key).split(":")[0];
|
|
144
144
|
if (chunkGNEHIBN4_cjs.isUnpluginBuilderVariant(variant)) {
|
|
145
145
|
const hooks = this.hooks[variant];
|
|
@@ -182,7 +182,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
} else if (
|
|
185
|
+
} else if (chunkORHCJTJ2_cjs.isPluginHookField(key)) {
|
|
186
186
|
if (this.hooks[key]) {
|
|
187
187
|
const fieldHooks = this.hooks[key];
|
|
188
188
|
if (options?.order) {
|
|
@@ -230,5 +230,5 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
|
|
|
230
230
|
};
|
|
231
231
|
|
|
232
232
|
exports.PowerlinesEnvironmentContext = PowerlinesEnvironmentContext;
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
234
|
-
//# sourceMappingURL=chunk-
|
|
233
|
+
//# sourceMappingURL=chunk-GVIP7SDP.cjs.map
|
|
234
|
+
//# sourceMappingURL=chunk-GVIP7SDP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/contexts/environment-context.ts"],"names":["PowerlinesEnvironmentContext","PowerlinesContext","fromConfig","workspaceConfig","config","context","init","powerlinesPath","resolvePackage","Error","environment","plugins","hooks","addPlugin","plugin","resolvedPlugin","isFunction","applyToEnvironment","result","Promise","resolve","isObject","Object","keys","length","isPluginConfig","$$internal","isPlugin","createPluginContext","push","filter","key","PLUGIN_NON_HOOK_FIELDS","includes","reduce","ret","hook","isPluginHookField","pluginHook","isPluginHook","preEnforced","preOrdered","normal","postEnforced","postOrdered","enforce","hookListOrder","bucket","addPluginHook","order","isUnpluginHookField","unpluginPlugin","isSetObject","field","variantField","warn","String","selectHooks","options","isUnpluginHookKey","variant","split","isUnpluginBuilderVariant","fieldHooks","mapHooksToResult","__name","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-DMSD5NS5.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n addPluginHook,\n isPlugin,\n isPluginConfig,\n isPluginHook,\n isPluginHookField,\n isUnpluginHookField,\n isUnpluginHookKey\n} from \"../../plugin-utils/helpers\";\nimport { PluginConfig, WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHookResult,\n SelectHookResultItem,\n SelectHooksOptions\n} from \"../../types/context\";\nimport {\n HookFields,\n HookListOrders,\n HooksList,\n InferHooksListItem,\n PluginHooksListItem,\n UnpluginHookList,\n UnpluginHooksListItem\n} from \"../../types/hooks\";\nimport {\n Plugin,\n PLUGIN_NON_HOOK_FIELDS,\n PluginHook,\n PluginHookFields\n} from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { UnpluginOptions } from \"../../types/unplugin\";\nimport { isUnpluginBuilderVariant } from \"../unplugin/helpers\";\nimport { PowerlinesContext } from \"./context\";\nimport { createPluginContext } from \"./plugin-context\";\n\nexport class PowerlinesEnvironmentContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements EnvironmentContext<TResolvedConfig>\n{\n /**\n * The hooks registered by plugins in this environment\n */\n #hooks: HooksList<PluginContext<TResolvedConfig>> = {} as HooksList<\n PluginContext<TResolvedConfig>\n >;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceConfig - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static async fromConfig<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceConfig: WorkspaceConfig,\n config: TResolvedConfig\n ): Promise<PowerlinesEnvironmentContext<TResolvedConfig>> {\n const context = new PowerlinesEnvironmentContext<TResolvedConfig>(\n config,\n workspaceConfig\n );\n await context.init();\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * The resolved environment configuration\n */\n public environment!: EnvironmentResolvedConfig;\n\n /**\n * The list of plugins applied to this environment\n */\n public plugins: EnvironmentContextPlugin<TResolvedConfig>[] = [];\n\n /**\n * The resolved configuration options\n */\n public override get config(): TResolvedConfig {\n return super.config;\n }\n\n public get hooks(): HooksList<PluginContext<TResolvedConfig>> {\n return this.#hooks;\n }\n\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n let resolvedPlugin = plugin;\n if (isFunction(plugin.applyToEnvironment)) {\n const result = (await Promise.resolve(\n plugin.applyToEnvironment(this.environment) as Promise<any>\n )) as boolean | PluginConfig<PluginContext<TResolvedConfig>>;\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig<PluginContext<TResolvedConfig>>(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<PluginContext<TResolvedConfig>>(result)\n ? result\n : plugin;\n }\n\n const context = createPluginContext<TResolvedConfig>(resolvedPlugin, this);\n\n this.plugins.push({\n plugin: resolvedPlugin,\n context\n });\n\n this.#hooks = Object.keys(resolvedPlugin)\n .filter(\n key =>\n !PLUGIN_NON_HOOK_FIELDS.includes(\n key as ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n )\n )\n .reduce((ret, key) => {\n const hook = key as HookFields<PluginContext<TResolvedConfig>>;\n\n if (isPluginHookField<PluginContext<TResolvedConfig>>(hook)) {\n const pluginHook = resolvedPlugin[hook];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n ret[hook] ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n const hookListOrder =\n `${resolvedPlugin.enforce}Enforced` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n const bucket = ret[hook][hookListOrder];\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n const bucket = ret[hook].normal;\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][hookListOrder] as PluginHooksListItem<\n PluginContext<TResolvedConfig>\n >[]\n );\n\n return ret;\n } else if (isUnpluginHookField(hook)) {\n const unpluginPlugin = resolvedPlugin[hook];\n if (!isSetObject(unpluginPlugin)) {\n return ret;\n }\n\n for (const field of Object.keys(unpluginPlugin)) {\n const variantField = field as keyof UnpluginOptions[typeof hook];\n\n const pluginHook = unpluginPlugin[\n variantField\n ] as PluginHook<AnyFunction>;\n if (!isPluginHook(pluginHook)) {\n continue;\n }\n\n ret[hook] ??= {};\n (ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >) ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${resolvedPlugin.enforce}Enforced`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n (\n ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >\n ).normal!\n );\n\n return ret;\n }\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${pluginHook.order}Ordered`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n }\n } else {\n this.warn(`Unknown plugin hook field: ${String(hook)}`);\n }\n\n return ret;\n }, this.hooks);\n }\n\n /**\n * Retrieves the hook handlers for a specific hook name\n */\n public selectHooks<TKey extends string>(\n key: TKey,\n options?: SelectHooksOptions\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> {\n const result = [] as SelectHookResult<PluginContext<TResolvedConfig>, TKey>;\n\n if (isUnpluginHookKey(key)) {\n const variant = String(key).split(\":\")[0];\n if (isUnpluginBuilderVariant(variant)) {\n const hooks = this.hooks[variant];\n if (hooks) {\n const field = String(key).split(\":\")[1] as keyof typeof hooks;\n if (field && hooks[field]) {\n const fieldHooks = hooks[field] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<\n PluginContext<TResolvedConfig>,\n TKey\n >;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n }\n }\n } else if (isPluginHookField<PluginContext<TResolvedConfig>>(key)) {\n if (this.hooks[key]) {\n const fieldHooks = this.hooks[key] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<PluginContext<TResolvedConfig>, TKey>;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n } else {\n throw new Error(`Unknown plugin hook key: ${String(key)}`);\n }\n\n return result;\n }\n\n protected constructor(\n config: TResolvedConfig,\n workspaceConfig: WorkspaceConfig\n ) {\n super(workspaceConfig);\n\n this.resolvedConfig = config;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/contexts/environment-context.ts"],"names":["PowerlinesEnvironmentContext","PowerlinesContext","fromConfig","workspaceConfig","config","context","init","powerlinesPath","resolvePackage","Error","environment","plugins","hooks","addPlugin","plugin","resolvedPlugin","isFunction","applyToEnvironment","result","Promise","resolve","isObject","Object","keys","length","isPluginConfig","$$internal","isPlugin","createPluginContext","push","filter","key","PLUGIN_NON_HOOK_FIELDS","includes","reduce","ret","hook","isPluginHookField","pluginHook","isPluginHook","preEnforced","preOrdered","normal","postEnforced","postOrdered","enforce","hookListOrder","bucket","addPluginHook","order","isUnpluginHookField","unpluginPlugin","isSetObject","field","variantField","warn","String","selectHooks","options","isUnpluginHookKey","variant","split","isUnpluginBuilderVariant","fieldHooks","mapHooksToResult","__name","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-GVIP7SDP.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n addPluginHook,\n isPlugin,\n isPluginConfig,\n isPluginHook,\n isPluginHookField,\n isUnpluginHookField,\n isUnpluginHookKey\n} from \"../../plugin-utils/helpers\";\nimport { PluginConfig, WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHookResult,\n SelectHookResultItem,\n SelectHooksOptions\n} from \"../../types/context\";\nimport {\n HookFields,\n HookListOrders,\n HooksList,\n InferHooksListItem,\n PluginHooksListItem,\n UnpluginHookList,\n UnpluginHooksListItem\n} from \"../../types/hooks\";\nimport {\n Plugin,\n PLUGIN_NON_HOOK_FIELDS,\n PluginHook,\n PluginHookFields\n} from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { UnpluginOptions } from \"../../types/unplugin\";\nimport { isUnpluginBuilderVariant } from \"../unplugin/helpers\";\nimport { PowerlinesContext } from \"./context\";\nimport { createPluginContext } from \"./plugin-context\";\n\nexport class PowerlinesEnvironmentContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements EnvironmentContext<TResolvedConfig>\n{\n /**\n * The hooks registered by plugins in this environment\n */\n #hooks: HooksList<PluginContext<TResolvedConfig>> = {} as HooksList<\n PluginContext<TResolvedConfig>\n >;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceConfig - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static async fromConfig<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceConfig: WorkspaceConfig,\n config: TResolvedConfig\n ): Promise<PowerlinesEnvironmentContext<TResolvedConfig>> {\n const context = new PowerlinesEnvironmentContext<TResolvedConfig>(\n config,\n workspaceConfig\n );\n await context.init();\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * The resolved environment configuration\n */\n public environment!: EnvironmentResolvedConfig;\n\n /**\n * The list of plugins applied to this environment\n */\n public plugins: EnvironmentContextPlugin<TResolvedConfig>[] = [];\n\n /**\n * The resolved configuration options\n */\n public override get config(): TResolvedConfig {\n return super.config;\n }\n\n public get hooks(): HooksList<PluginContext<TResolvedConfig>> {\n return this.#hooks;\n }\n\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n let resolvedPlugin = plugin;\n if (isFunction(plugin.applyToEnvironment)) {\n const result = (await Promise.resolve(\n plugin.applyToEnvironment(this.environment) as Promise<any>\n )) as boolean | PluginConfig<PluginContext<TResolvedConfig>>;\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig<PluginContext<TResolvedConfig>>(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<PluginContext<TResolvedConfig>>(result)\n ? result\n : plugin;\n }\n\n const context = createPluginContext<TResolvedConfig>(resolvedPlugin, this);\n\n this.plugins.push({\n plugin: resolvedPlugin,\n context\n });\n\n this.#hooks = Object.keys(resolvedPlugin)\n .filter(\n key =>\n !PLUGIN_NON_HOOK_FIELDS.includes(\n key as ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n )\n )\n .reduce((ret, key) => {\n const hook = key as HookFields<PluginContext<TResolvedConfig>>;\n\n if (isPluginHookField<PluginContext<TResolvedConfig>>(hook)) {\n const pluginHook = resolvedPlugin[hook];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n ret[hook] ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n const hookListOrder =\n `${resolvedPlugin.enforce}Enforced` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n const bucket = ret[hook][hookListOrder];\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n const bucket = ret[hook].normal;\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][hookListOrder] as PluginHooksListItem<\n PluginContext<TResolvedConfig>\n >[]\n );\n\n return ret;\n } else if (isUnpluginHookField(hook)) {\n const unpluginPlugin = resolvedPlugin[hook];\n if (!isSetObject(unpluginPlugin)) {\n return ret;\n }\n\n for (const field of Object.keys(unpluginPlugin)) {\n const variantField = field as keyof UnpluginOptions[typeof hook];\n\n const pluginHook = unpluginPlugin[\n variantField\n ] as PluginHook<AnyFunction>;\n if (!isPluginHook(pluginHook)) {\n continue;\n }\n\n ret[hook] ??= {};\n (ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >) ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${resolvedPlugin.enforce}Enforced`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n (\n ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >\n ).normal!\n );\n\n return ret;\n }\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${pluginHook.order}Ordered`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n }\n } else {\n this.warn(`Unknown plugin hook field: ${String(hook)}`);\n }\n\n return ret;\n }, this.hooks);\n }\n\n /**\n * Retrieves the hook handlers for a specific hook name\n */\n public selectHooks<TKey extends string>(\n key: TKey,\n options?: SelectHooksOptions\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> {\n const result = [] as SelectHookResult<PluginContext<TResolvedConfig>, TKey>;\n\n if (isUnpluginHookKey(key)) {\n const variant = String(key).split(\":\")[0];\n if (isUnpluginBuilderVariant(variant)) {\n const hooks = this.hooks[variant];\n if (hooks) {\n const field = String(key).split(\":\")[1] as keyof typeof hooks;\n if (field && hooks[field]) {\n const fieldHooks = hooks[field] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<\n PluginContext<TResolvedConfig>,\n TKey\n >;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n }\n }\n } else if (isPluginHookField<PluginContext<TResolvedConfig>>(key)) {\n if (this.hooks[key]) {\n const fieldHooks = this.hooks[key] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<PluginContext<TResolvedConfig>, TKey>;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n } else {\n throw new Error(`Unknown plugin hook key: ${String(key)}`);\n }\n\n return result;\n }\n\n protected constructor(\n config: TResolvedConfig,\n workspaceConfig: WorkspaceConfig\n ) {\n super(workspaceConfig);\n\n this.resolvedConfig = config;\n }\n}\n"]}
|