powerlines 0.36.29 → 0.37.1
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/{context-DU4oqb6r.d.cts → api-CLQePK25.d.cts} +262 -127
- package/dist/{context-DmCNtNIs.d.ts → api-DClrDYWk.d.ts} +262 -127
- package/dist/api.cjs +4 -4
- package/dist/api.d.cts +7 -7
- package/dist/api.d.ts +7 -7
- package/dist/api.js +3 -3
- package/dist/astro.cjs +6 -6
- package/dist/astro.d.cts +6 -5
- package/dist/astro.d.ts +6 -5
- package/dist/astro.js +5 -5
- package/dist/{chunk-K4ZR45W7.cjs → chunk-2ZNVD64B.cjs} +4 -4
- package/dist/{chunk-7IDSUDJN.js → chunk-3JGCXWAM.js} +3 -3
- package/dist/chunk-42ZHOCZJ.cjs +14 -0
- package/dist/{chunk-PZZP3VX2.cjs → chunk-4PIVB3SY.cjs} +14 -9
- package/dist/{chunk-ZCMOAOQN.cjs → chunk-B6DVCLP5.cjs} +8 -7
- package/dist/chunk-CCJQBJKQ.js +12 -0
- package/dist/{chunk-VZMAJMBD.js → chunk-DVJEAUGP.js} +5 -5
- package/dist/{chunk-3CCAN6GY.cjs → chunk-E4QAO32M.cjs} +176 -128
- package/dist/chunk-FON7JDQF.cjs +12 -0
- package/dist/{chunk-NSHXFNIL.js → chunk-IBQ5USID.js} +12 -7
- package/dist/{chunk-TP4FRF4H.cjs → chunk-JQDMR7OP.cjs} +2 -2
- package/dist/{chunk-4VQBXIAH.js → chunk-MI5E6YZI.js} +3 -3
- package/dist/chunk-NITQ5IYP.js +22 -0
- package/dist/{chunk-JMX44J5R.js → chunk-NM3AFEVI.js} +174 -128
- package/dist/{chunk-AJPO5EP7.js → chunk-PQXP7XQK.js} +8 -7
- package/dist/{chunk-OCEXXVLR.cjs → chunk-TFRZZNXL.cjs} +6 -6
- package/dist/{chunk-JTK4RYSG.js → chunk-U5MNJ4XF.js} +3 -3
- package/dist/{chunk-EXY3RCJH.js → chunk-UNIWU6XL.js} +2 -2
- package/dist/chunk-V5WOGN7O.cjs +25 -0
- package/dist/chunk-XHOP5GXJ.cjs +12 -0
- package/dist/esbuild.cjs +8 -8
- package/dist/esbuild.d.cts +6 -5
- package/dist/esbuild.d.ts +6 -5
- package/dist/esbuild.js +5 -5
- package/dist/farm.cjs +5 -5
- package/dist/farm.d.cts +6 -5
- package/dist/farm.d.ts +6 -5
- package/dist/farm.js +4 -4
- package/dist/index.cjs +30 -22
- package/dist/index.d.cts +6 -7
- package/dist/index.d.ts +6 -7
- package/dist/index.js +6 -6
- package/dist/lib/build/esbuild.d.cts +1 -1
- package/dist/lib/build/esbuild.d.ts +1 -1
- package/dist/lib/build/index.d.cts +2 -3
- package/dist/lib/build/index.d.ts +2 -3
- package/dist/lib/build/rolldown.d.cts +1 -1
- package/dist/lib/build/rolldown.d.ts +1 -1
- package/dist/lib/build/rollup.d.cts +1 -1
- package/dist/lib/build/rollup.d.ts +1 -1
- package/dist/lib/build/rspack.d.cts +1 -1
- package/dist/lib/build/rspack.d.ts +1 -1
- package/dist/lib/build/tsdown.d.cts +1 -1
- package/dist/lib/build/tsdown.d.ts +1 -1
- package/dist/lib/build/tsup.d.cts +1 -1
- package/dist/lib/build/tsup.d.ts +1 -1
- package/dist/lib/build/unbuild.d.cts +2 -3
- package/dist/lib/build/unbuild.d.ts +2 -3
- package/dist/lib/build/vite.d.cts +1 -1
- package/dist/lib/build/vite.d.ts +1 -1
- package/dist/lib/build/webpack.d.cts +1 -1
- package/dist/lib/build/webpack.d.ts +1 -1
- package/dist/lib/chunk-254IMO3A.js +17 -0
- package/dist/lib/chunk-254IMO3A.js.map +1 -0
- package/dist/lib/{chunk-T3VYM4BO.cjs → chunk-4QMQCXAG.cjs} +6 -6
- package/dist/lib/{chunk-T3VYM4BO.cjs.map → chunk-4QMQCXAG.cjs.map} +1 -1
- package/dist/lib/chunk-64R4MDJ7.cjs +25 -0
- package/dist/lib/chunk-64R4MDJ7.cjs.map +1 -0
- package/dist/lib/{chunk-HEMW2YZA.js → chunk-7PD2L3PS.js} +2 -2
- package/dist/lib/{chunk-HEMW2YZA.js.map → chunk-7PD2L3PS.js.map} +1 -1
- package/dist/lib/{chunk-PWKYZBQQ.js → chunk-FI4QUQV2.js} +4 -4
- package/dist/lib/{chunk-PWKYZBQQ.js.map → chunk-FI4QUQV2.js.map} +1 -1
- package/dist/lib/{chunk-3RTOKGVV.cjs → chunk-G3BXMS2V.cjs} +47 -48
- package/dist/lib/chunk-G3BXMS2V.cjs.map +1 -0
- package/dist/lib/chunk-GNEHIBN4.cjs +20 -0
- package/dist/lib/chunk-GNEHIBN4.cjs.map +1 -0
- package/dist/lib/{chunk-57WHQU5T.cjs → chunk-GZDE4GLY.cjs} +2 -2
- package/dist/lib/{chunk-57WHQU5T.cjs.map → chunk-GZDE4GLY.cjs.map} +1 -1
- package/dist/lib/chunk-HGE5DAZF.js +22 -0
- package/dist/lib/chunk-HGE5DAZF.js.map +1 -0
- package/dist/lib/{chunk-GUZKITBG.js → chunk-I7BLJZ4D.js} +5 -5
- package/dist/lib/chunk-I7BLJZ4D.js.map +1 -0
- package/dist/lib/{chunk-MZQFHBHY.cjs → chunk-QVDESIYV.cjs} +5 -5
- package/dist/lib/chunk-QVDESIYV.cjs.map +1 -0
- package/dist/lib/{chunk-POY47Z36.js → chunk-TO3SBSXL.js} +35 -36
- package/dist/lib/chunk-TO3SBSXL.js.map +1 -0
- package/dist/lib/{chunk-XAALLEOG.js → chunk-TWAVU346.js} +27 -29
- package/dist/lib/chunk-TWAVU346.js.map +1 -0
- package/dist/lib/{chunk-C7KNYLNP.cjs → chunk-UXLXQOJD.cjs} +29 -30
- package/dist/lib/chunk-UXLXQOJD.cjs.map +1 -0
- package/dist/lib/chunk-WAN5RBXY.cjs +234 -0
- package/dist/lib/chunk-WAN5RBXY.cjs.map +1 -0
- package/dist/lib/chunk-XDUEQVFC.js +232 -0
- package/dist/lib/chunk-XDUEQVFC.js.map +1 -0
- package/dist/lib/{config-BSQhtJCR.d.ts → config-BLfOgflT.d.ts} +230 -104
- package/dist/lib/{config-CP6f9ozu.d.cts → config-CmG_oSbS.d.cts} +230 -104
- 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 +7 -5
- package/dist/lib/contexts/api-context.d.cts +2 -3
- package/dist/lib/contexts/api-context.d.ts +2 -3
- package/dist/lib/contexts/api-context.js +6 -4
- package/dist/lib/contexts/context.cjs +3 -2
- package/dist/lib/contexts/context.d.cts +2 -3
- package/dist/lib/contexts/context.d.ts +2 -3
- package/dist/lib/contexts/context.js +2 -1
- package/dist/lib/contexts/environment-context.cjs +6 -4
- package/dist/lib/contexts/environment-context.d.cts +3 -4
- package/dist/lib/contexts/environment-context.d.ts +3 -4
- package/dist/lib/contexts/environment-context.js +5 -3
- package/dist/lib/contexts/index.cjs +10 -8
- package/dist/lib/contexts/index.d.cts +2 -3
- package/dist/lib/contexts/index.d.ts +2 -3
- package/dist/lib/contexts/index.js +6 -4
- package/dist/lib/contexts/plugin-context.cjs +2 -2
- package/dist/lib/contexts/plugin-context.d.cts +2 -3
- package/dist/lib/contexts/plugin-context.d.ts +2 -3
- package/dist/lib/contexts/plugin-context.js +1 -1
- package/dist/lib/entry.d.cts +1 -1
- package/dist/lib/entry.d.ts +1 -1
- package/dist/lib/fs/index.d.cts +1 -1
- package/dist/lib/fs/index.d.ts +1 -1
- package/dist/lib/fs/vfs.d.cts +1 -1
- package/dist/lib/fs/vfs.d.ts +1 -1
- package/dist/lib/index.cjs +22 -17
- package/dist/lib/index.d.cts +3 -5
- package/dist/lib/index.d.ts +3 -5
- package/dist/lib/index.js +8 -7
- package/dist/lib/{internal-BusfSz8D.d.ts → internal-BfGb9HLc.d.ts} +4 -3
- package/dist/lib/{internal-CPKLmt5v.d.cts → internal-CYMrNGHE.d.cts} +4 -3
- 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 +8 -6
- package/dist/lib/unplugin/factory.d.cts +4 -128
- package/dist/lib/unplugin/factory.d.ts +4 -128
- package/dist/lib/unplugin/factory.js +7 -5
- package/dist/lib/unplugin/helpers.cjs +7 -2
- package/dist/lib/unplugin/helpers.d.cts +9 -2
- package/dist/lib/unplugin/helpers.d.ts +9 -2
- package/dist/lib/unplugin/helpers.js +2 -1
- package/dist/lib/unplugin/index.cjs +15 -10
- package/dist/lib/unplugin/index.d.cts +4 -6
- package/dist/lib/unplugin/index.d.ts +4 -6
- package/dist/lib/unplugin/index.js +8 -7
- package/dist/lib/unplugin/plugin.cjs +4 -3
- package/dist/lib/unplugin/plugin.d.cts +2 -4
- package/dist/lib/unplugin/plugin.d.ts +2 -4
- package/dist/lib/unplugin/plugin.js +3 -2
- package/dist/lib/utilities/bundle.d.cts +1 -1
- package/dist/lib/utilities/bundle.d.ts +1 -1
- 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/index.d.cts +1 -1
- package/dist/lib/utilities/index.d.ts +1 -1
- package/dist/lib/utilities/meta.d.cts +1 -1
- package/dist/lib/utilities/meta.d.ts +1 -1
- package/dist/lib/utilities/resolve.d.cts +1 -1
- package/dist/lib/utilities/resolve.d.ts +1 -1
- 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 +6 -6
- package/dist/next.js +5 -5
- package/dist/nuxt.cjs +9 -9
- package/dist/nuxt.d.cts +4 -3
- package/dist/nuxt.d.ts +4 -3
- package/dist/nuxt.js +7 -7
- package/dist/plugin-utils/{chunk-EJ5XPAJQ.cjs → chunk-2I5L22QB.cjs} +8 -6
- package/dist/plugin-utils/chunk-2I5L22QB.cjs.map +1 -0
- package/dist/plugin-utils/{chunk-AHZPK4Z5.cjs → chunk-4FLR5DY5.cjs} +7 -7
- package/dist/plugin-utils/{chunk-AHZPK4Z5.cjs.map → chunk-4FLR5DY5.cjs.map} +1 -1
- package/dist/plugin-utils/{chunk-BWAX3NRG.cjs → chunk-6YOLE5BT.cjs} +34 -21
- package/dist/plugin-utils/chunk-6YOLE5BT.cjs.map +1 -0
- package/dist/plugin-utils/{chunk-JAG7QJDV.cjs → chunk-ARNNN4GS.cjs} +5 -5
- package/dist/plugin-utils/chunk-ARNNN4GS.cjs.map +1 -0
- package/dist/plugin-utils/{chunk-FTVPZZJO.js → chunk-I3FSMSLD.js} +32 -20
- package/dist/plugin-utils/chunk-I3FSMSLD.js.map +1 -0
- package/dist/plugin-utils/{chunk-N4IXPCGY.js → chunk-RZAQTG45.js} +3 -3
- package/dist/plugin-utils/{chunk-N4IXPCGY.js.map → chunk-RZAQTG45.js.map} +1 -1
- package/dist/plugin-utils/{chunk-JCX2UJYO.js → chunk-XDURJUGS.js} +5 -3
- package/dist/plugin-utils/chunk-XDURJUGS.js.map +1 -0
- package/dist/plugin-utils/{chunk-WZCGJ7JR.js → chunk-Z2BYI6KW.js} +3 -3
- package/dist/plugin-utils/chunk-Z2BYI6KW.js.map +1 -0
- package/dist/plugin-utils/{context-GdayEWcl.d.cts → context-BQTlTcfV.d.cts} +444 -76
- package/dist/plugin-utils/{context-GdayEWcl.d.ts → context-BQTlTcfV.d.ts} +444 -76
- package/dist/plugin-utils/context-helpers.d.cts +11 -2
- package/dist/plugin-utils/context-helpers.d.ts +11 -2
- package/dist/plugin-utils/enforce.cjs +5 -5
- package/dist/plugin-utils/enforce.d.cts +13 -4
- package/dist/plugin-utils/enforce.d.ts +13 -4
- package/dist/plugin-utils/enforce.js +4 -4
- package/dist/plugin-utils/extend.cjs +4 -4
- package/dist/plugin-utils/extend.d.cts +11 -2
- package/dist/plugin-utils/extend.d.ts +11 -2
- package/dist/plugin-utils/extend.js +3 -3
- package/dist/plugin-utils/get-config-path.d.cts +11 -2
- package/dist/plugin-utils/get-config-path.d.ts +11 -2
- package/dist/plugin-utils/helpers.cjs +25 -21
- package/dist/plugin-utils/helpers.d.cts +36 -32
- package/dist/plugin-utils/helpers.d.ts +36 -32
- package/dist/plugin-utils/helpers.js +1 -1
- package/dist/plugin-utils/index.cjs +31 -27
- package/dist/plugin-utils/index.d.cts +12 -3
- package/dist/plugin-utils/index.d.ts +12 -3
- package/dist/plugin-utils/index.js +4 -4
- package/dist/plugin-utils/merge.cjs +3 -3
- package/dist/plugin-utils/merge.d.cts +11 -2
- package/dist/plugin-utils/merge.d.ts +11 -2
- package/dist/plugin-utils/merge.js +2 -2
- package/dist/plugin-utils/paths.d.cts +11 -2
- package/dist/plugin-utils/paths.d.ts +11 -2
- package/dist/rolldown.cjs +8 -8
- package/dist/rolldown.d.cts +6 -5
- package/dist/rolldown.d.ts +6 -5
- package/dist/rolldown.js +5 -5
- package/dist/rollup.cjs +5 -5
- package/dist/rollup.d.cts +6 -5
- package/dist/rollup.d.ts +6 -5
- package/dist/rollup.js +4 -4
- package/dist/rspack.cjs +5 -5
- package/dist/rspack.d.cts +6 -5
- package/dist/rspack.d.ts +6 -5
- package/dist/rspack.js +4 -4
- package/dist/tsdown.cjs +6 -6
- package/dist/tsdown.js +5 -5
- package/dist/tsup.cjs +6 -6
- package/dist/tsup.js +5 -5
- package/dist/types/api.d.cts +5 -5
- package/dist/types/api.d.ts +5 -5
- package/dist/types/babel.d.cts +6 -5
- package/dist/types/babel.d.ts +6 -5
- package/dist/types/build.cjs +7 -3
- package/dist/types/build.d.cts +19 -13
- package/dist/types/build.d.ts +19 -13
- package/dist/types/build.js +1 -1
- package/dist/types/commands.d.cts +4 -3
- package/dist/types/commands.d.ts +4 -3
- package/dist/types/config.d.cts +3 -2
- package/dist/types/config.d.ts +3 -2
- package/dist/types/context.cjs +2 -2
- package/dist/types/context.d.cts +3 -2
- package/dist/types/context.d.ts +3 -2
- package/dist/types/context.js +1 -1
- package/dist/types/hooks.cjs +8 -1
- package/dist/types/hooks.d.cts +15 -14
- package/dist/types/hooks.d.ts +15 -14
- package/dist/types/hooks.js +2 -1
- package/dist/types/index.cjs +19 -11
- package/dist/types/index.d.cts +4 -5
- package/dist/types/index.d.ts +4 -5
- package/dist/types/index.js +4 -4
- package/dist/types/internal.d.cts +8 -6
- package/dist/types/internal.d.ts +8 -6
- package/dist/types/plugin.cjs +7 -7
- package/dist/types/plugin.d.cts +3 -2
- package/dist/types/plugin.d.ts +3 -2
- package/dist/types/plugin.js +2 -2
- package/dist/types/resolved.d.cts +2 -1
- package/dist/types/resolved.d.ts +2 -1
- package/dist/types/unplugin.d.cts +14 -39
- package/dist/types/unplugin.d.ts +14 -39
- package/dist/unloader.cjs +5 -5
- package/dist/unloader.d.cts +4 -3
- package/dist/unloader.d.ts +4 -3
- package/dist/unloader.js +4 -4
- package/dist/unplugin.cjs +17 -15
- package/dist/unplugin.d.cts +18 -13
- package/dist/unplugin.d.ts +18 -13
- package/dist/unplugin.js +9 -13
- package/dist/vite.cjs +8 -8
- package/dist/vite.d.cts +6 -5
- package/dist/vite.d.ts +6 -5
- package/dist/vite.js +5 -5
- package/dist/webpack.cjs +8 -8
- package/dist/webpack.d.cts +6 -5
- package/dist/webpack.d.ts +6 -5
- package/dist/webpack.js +5 -5
- package/package.json +7 -4
- package/dist/api-D0gA4eJU.d.cts +0 -142
- package/dist/api-cYTlb0MO.d.ts +0 -142
- package/dist/chunk-HJW7OH6E.js +0 -3
- package/dist/chunk-J7SXQCBV.cjs +0 -12
- package/dist/chunk-U2RJRKLT.js +0 -15
- package/dist/chunk-WVLFG7L6.cjs +0 -12
- package/dist/chunk-XOMY3USD.cjs +0 -17
- package/dist/chunk-XZO6ZJQP.cjs +0 -4
- package/dist/lib/api-BeWRTlF3.d.cts +0 -141
- package/dist/lib/api-C00m3GB0.d.ts +0 -141
- package/dist/lib/chunk-3RTOKGVV.cjs.map +0 -1
- package/dist/lib/chunk-A4RSMLXW.cjs +0 -13
- package/dist/lib/chunk-A4RSMLXW.cjs.map +0 -1
- package/dist/lib/chunk-C7KNYLNP.cjs.map +0 -1
- package/dist/lib/chunk-DLX6BNNE.cjs +0 -196
- package/dist/lib/chunk-DLX6BNNE.cjs.map +0 -1
- package/dist/lib/chunk-GUZKITBG.js.map +0 -1
- package/dist/lib/chunk-HDUSUF6L.js +0 -11
- package/dist/lib/chunk-HDUSUF6L.js.map +0 -1
- package/dist/lib/chunk-MZQFHBHY.cjs.map +0 -1
- package/dist/lib/chunk-POY47Z36.js.map +0 -1
- package/dist/lib/chunk-XAALLEOG.js.map +0 -1
- package/dist/lib/chunk-XHDL2XZB.js +0 -194
- package/dist/lib/chunk-XHDL2XZB.js.map +0 -1
- package/dist/lib/unplugin-BKtwOoMk.d.ts +0 -18
- package/dist/lib/unplugin-BWG1mWFO.d.cts +0 -18
- package/dist/plugin-utils/chunk-BWAX3NRG.cjs.map +0 -1
- package/dist/plugin-utils/chunk-EJ5XPAJQ.cjs.map +0 -1
- package/dist/plugin-utils/chunk-FTVPZZJO.js.map +0 -1
- package/dist/plugin-utils/chunk-JAG7QJDV.cjs.map +0 -1
- package/dist/plugin-utils/chunk-JCX2UJYO.js.map +0 -1
- package/dist/plugin-utils/chunk-WZCGJ7JR.js.map +0 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { isUnpluginBuilderVariant } from './chunk-254IMO3A.js';
|
|
2
|
+
import { createPluginContext } from './chunk-7PD2L3PS.js';
|
|
3
|
+
import { PowerlinesContext, isPluginConfig, isPlugin, PLUGIN_NON_HOOK_FIELDS, isPluginHookField, isPluginHook, addPluginHook, isUnpluginHookField, isUnpluginHookKey } from './chunk-TWAVU346.js';
|
|
4
|
+
import { __name } from './chunk-7QVYU63E.js';
|
|
5
|
+
import { resolvePackage } from '@stryke/fs/resolve';
|
|
6
|
+
import { isFunction } from '@stryke/type-checks/is-function';
|
|
7
|
+
import { isObject } from '@stryke/type-checks/is-object';
|
|
8
|
+
import { isSetObject } from '@stryke/type-checks/is-set-object';
|
|
9
|
+
|
|
10
|
+
var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends PowerlinesContext {
|
|
11
|
+
static {
|
|
12
|
+
__name(this, "PowerlinesEnvironmentContext");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The hooks registered by plugins in this environment
|
|
16
|
+
*/
|
|
17
|
+
#hooks = {};
|
|
18
|
+
/**
|
|
19
|
+
* Create a new Storm context from the workspace root and user config.
|
|
20
|
+
*
|
|
21
|
+
* @param workspaceConfig - The root directory of the workspace.
|
|
22
|
+
* @param config - The user configuration options.
|
|
23
|
+
* @returns A promise that resolves to the new context.
|
|
24
|
+
*/
|
|
25
|
+
static async fromConfig(workspaceConfig, config) {
|
|
26
|
+
const context = new _PowerlinesEnvironmentContext(config, workspaceConfig);
|
|
27
|
+
await context.init();
|
|
28
|
+
const powerlinesPath = await resolvePackage("powerlines");
|
|
29
|
+
if (!powerlinesPath) {
|
|
30
|
+
throw new Error("Could not resolve `powerlines` package location.");
|
|
31
|
+
}
|
|
32
|
+
context.powerlinesPath = powerlinesPath;
|
|
33
|
+
return context;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The resolved environment configuration
|
|
37
|
+
*/
|
|
38
|
+
environment;
|
|
39
|
+
/**
|
|
40
|
+
* The list of plugins applied to this environment
|
|
41
|
+
*/
|
|
42
|
+
plugins = [];
|
|
43
|
+
/**
|
|
44
|
+
* The resolved configuration options
|
|
45
|
+
*/
|
|
46
|
+
get config() {
|
|
47
|
+
return super.config;
|
|
48
|
+
}
|
|
49
|
+
get hooks() {
|
|
50
|
+
return this.#hooks;
|
|
51
|
+
}
|
|
52
|
+
async addPlugin(plugin) {
|
|
53
|
+
let resolvedPlugin = plugin;
|
|
54
|
+
if (isFunction(plugin.applyToEnvironment)) {
|
|
55
|
+
const result = await Promise.resolve(plugin.applyToEnvironment(this.environment));
|
|
56
|
+
if (!result || isObject(result) && Object.keys(result).length === 0) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (isPluginConfig(result)) {
|
|
60
|
+
return this.$$internal.addPlugin(result);
|
|
61
|
+
}
|
|
62
|
+
resolvedPlugin = isPlugin(result) ? result : plugin;
|
|
63
|
+
}
|
|
64
|
+
const context = createPluginContext(resolvedPlugin, this);
|
|
65
|
+
this.plugins.push({
|
|
66
|
+
plugin: resolvedPlugin,
|
|
67
|
+
context
|
|
68
|
+
});
|
|
69
|
+
this.#hooks = Object.keys(resolvedPlugin).filter((key) => !PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
|
|
70
|
+
const hook = key;
|
|
71
|
+
if (isPluginHookField(hook)) {
|
|
72
|
+
const pluginHook = resolvedPlugin[hook];
|
|
73
|
+
if (!isPluginHook(pluginHook)) {
|
|
74
|
+
return ret;
|
|
75
|
+
}
|
|
76
|
+
ret[hook] ??= {
|
|
77
|
+
preEnforced: [],
|
|
78
|
+
preOrdered: [],
|
|
79
|
+
normal: [],
|
|
80
|
+
postEnforced: [],
|
|
81
|
+
postOrdered: []
|
|
82
|
+
};
|
|
83
|
+
if (resolvedPlugin.enforce) {
|
|
84
|
+
const hookListOrder2 = `${resolvedPlugin.enforce}Enforced`;
|
|
85
|
+
ret[hook][hookListOrder2] ??= [];
|
|
86
|
+
const bucket = ret[hook][hookListOrder2];
|
|
87
|
+
addPluginHook(context, resolvedPlugin, pluginHook, bucket);
|
|
88
|
+
return ret;
|
|
89
|
+
}
|
|
90
|
+
if (isFunction(pluginHook) || !pluginHook.order) {
|
|
91
|
+
ret[hook].normal ??= [];
|
|
92
|
+
const bucket = ret[hook].normal;
|
|
93
|
+
addPluginHook(context, resolvedPlugin, pluginHook, bucket);
|
|
94
|
+
return ret;
|
|
95
|
+
}
|
|
96
|
+
const hookListOrder = `${pluginHook.order}Ordered`;
|
|
97
|
+
ret[hook][hookListOrder] ??= [];
|
|
98
|
+
addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][hookListOrder]);
|
|
99
|
+
return ret;
|
|
100
|
+
} else if (isUnpluginHookField(hook)) {
|
|
101
|
+
const unpluginPlugin = resolvedPlugin[hook];
|
|
102
|
+
if (!isSetObject(unpluginPlugin)) {
|
|
103
|
+
return ret;
|
|
104
|
+
}
|
|
105
|
+
for (const field of Object.keys(unpluginPlugin)) {
|
|
106
|
+
const variantField = field;
|
|
107
|
+
const pluginHook = unpluginPlugin[variantField];
|
|
108
|
+
if (!isPluginHook(pluginHook)) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
ret[hook] ??= {};
|
|
112
|
+
ret[hook][variantField] ??= {
|
|
113
|
+
preEnforced: [],
|
|
114
|
+
preOrdered: [],
|
|
115
|
+
normal: [],
|
|
116
|
+
postEnforced: [],
|
|
117
|
+
postOrdered: []
|
|
118
|
+
};
|
|
119
|
+
if (resolvedPlugin.enforce) {
|
|
120
|
+
addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${resolvedPlugin.enforce}Enforced`]);
|
|
121
|
+
return ret;
|
|
122
|
+
}
|
|
123
|
+
if (isFunction(pluginHook) || !pluginHook.order) {
|
|
124
|
+
addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField].normal);
|
|
125
|
+
return ret;
|
|
126
|
+
}
|
|
127
|
+
addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${pluginHook.order}Ordered`]);
|
|
128
|
+
}
|
|
129
|
+
} else {
|
|
130
|
+
this.warn(`Unknown plugin hook field: ${String(hook)}`);
|
|
131
|
+
}
|
|
132
|
+
return ret;
|
|
133
|
+
}, this.hooks);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Retrieves the hook handlers for a specific hook name
|
|
137
|
+
*/
|
|
138
|
+
selectHooks(key, options) {
|
|
139
|
+
const result = [];
|
|
140
|
+
if (isUnpluginHookKey(key)) {
|
|
141
|
+
const variant = String(key).split(":")[0];
|
|
142
|
+
if (isUnpluginBuilderVariant(variant)) {
|
|
143
|
+
const hooks = this.hooks[variant];
|
|
144
|
+
if (hooks) {
|
|
145
|
+
const field = String(key).split(":")[1];
|
|
146
|
+
if (field && hooks[field]) {
|
|
147
|
+
const fieldHooks = hooks[field];
|
|
148
|
+
if (options?.order) {
|
|
149
|
+
const mapHooksToResult = /* @__PURE__ */ __name((hooksList) => hooksList.map((hook) => {
|
|
150
|
+
const plugin = this.plugins.find((p) => p.plugin.name === hook.plugin.name);
|
|
151
|
+
if (!plugin) {
|
|
152
|
+
throw new Error(`Could not find plugin context for plugin "${hook.plugin.name}".`);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
handler: hook.handler,
|
|
156
|
+
plugin: hook.plugin,
|
|
157
|
+
context: plugin.context
|
|
158
|
+
};
|
|
159
|
+
}), "mapHooksToResult");
|
|
160
|
+
if (options?.order === "pre") {
|
|
161
|
+
result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));
|
|
162
|
+
result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));
|
|
163
|
+
} else if (options?.order === "post") {
|
|
164
|
+
result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));
|
|
165
|
+
result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));
|
|
166
|
+
} else {
|
|
167
|
+
result.push(...mapHooksToResult(fieldHooks.normal ?? []));
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
result.push(...this.selectHooks(key, {
|
|
171
|
+
order: "pre"
|
|
172
|
+
}));
|
|
173
|
+
result.push(...this.selectHooks(key, {
|
|
174
|
+
order: "normal"
|
|
175
|
+
}));
|
|
176
|
+
result.push(...this.selectHooks(key, {
|
|
177
|
+
order: "post"
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
} else if (isPluginHookField(key)) {
|
|
184
|
+
if (this.hooks[key]) {
|
|
185
|
+
const fieldHooks = this.hooks[key];
|
|
186
|
+
if (options?.order) {
|
|
187
|
+
const mapHooksToResult = /* @__PURE__ */ __name((hooksList) => hooksList.map((hook) => {
|
|
188
|
+
const plugin = this.plugins.find((p) => p.plugin.name === hook.plugin.name);
|
|
189
|
+
if (!plugin) {
|
|
190
|
+
throw new Error(`Could not find plugin context for plugin "${hook.plugin.name}".`);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
handler: hook.handler,
|
|
194
|
+
plugin: hook.plugin,
|
|
195
|
+
context: plugin.context
|
|
196
|
+
};
|
|
197
|
+
}), "mapHooksToResult");
|
|
198
|
+
if (options?.order === "pre") {
|
|
199
|
+
result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));
|
|
200
|
+
result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));
|
|
201
|
+
} else if (options?.order === "post") {
|
|
202
|
+
result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));
|
|
203
|
+
result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));
|
|
204
|
+
} else {
|
|
205
|
+
result.push(...mapHooksToResult(fieldHooks.normal ?? []));
|
|
206
|
+
}
|
|
207
|
+
} else {
|
|
208
|
+
result.push(...this.selectHooks(key, {
|
|
209
|
+
order: "pre"
|
|
210
|
+
}));
|
|
211
|
+
result.push(...this.selectHooks(key, {
|
|
212
|
+
order: "normal"
|
|
213
|
+
}));
|
|
214
|
+
result.push(...this.selectHooks(key, {
|
|
215
|
+
order: "post"
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
throw new Error(`Unknown plugin hook key: ${String(key)}`);
|
|
221
|
+
}
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
constructor(config, workspaceConfig) {
|
|
225
|
+
super(workspaceConfig);
|
|
226
|
+
this.resolvedConfig = config;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export { PowerlinesEnvironmentContext };
|
|
231
|
+
//# sourceMappingURL=chunk-XDUEQVFC.js.map
|
|
232
|
+
//# sourceMappingURL=chunk-XDUEQVFC.js.map
|
|
@@ -0,0 +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","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-XDUEQVFC.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 { 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 // if (this.hooks[key]) {\n // if (!isPluginHookField(key)) {\n // const hooks = this.hooks[key];\n // if (options?.order) {\n // if (options?.order === \"pre\") {\n // // result.push(\n // // ...(hooks.preOrdered ?? []).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 // // context: plugin.context\n // // };\n // // })\n // // );\n // // result.push(\n // // ...(hooks.preEnforced ?? []).map(h => {\n // // const plugin = this.plugins.find(\n // // p => p.plugin.name === h.plugin.name\n // // );\n // // if (!plugin) {\n // // throw new Error(\n // // `Could not find plugin context for plugin \"${\n // // h.plugin.name\n // // }\".`\n // // );\n // // }\n\n // // return {\n // // handler: h.handler,\n // // context: plugin.context\n // // };\n // // })\n // // );\n // } else if (options?.order === \"post\") {\n // result.push(\n // ...(hooks.postOrdered ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // result.push(\n // ...(hooks.postEnforced ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // } else {\n // result.push(\n // ...(hooks.normal ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\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 // } else {\n // result.push(\n // ...this.hooks[key].map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${h.plugin.name}\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // }\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"]}
|