@kubb/core 5.0.0-beta.12 → 5.0.0-beta.13
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/index.cjs +12 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/createKubb.ts +13 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.13",
|
|
4
4
|
"description": "Core engine for Kubb's plugin-based code generation system. Provides the plugin driver, file manager, defineConfig, and build orchestration used by every Kubb plugin.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"code-generator",
|
|
@@ -58,15 +58,15 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"fflate": "^0.8.2",
|
|
60
60
|
"tinyexec": "^1.1.2",
|
|
61
|
-
"@kubb/ast": "5.0.0-beta.
|
|
61
|
+
"@kubb/ast": "5.0.0-beta.13"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"p-limit": "^7.3.0",
|
|
65
65
|
"@internals/utils": "0.0.0",
|
|
66
|
-
"@kubb/renderer-jsx": "5.0.0-beta.
|
|
66
|
+
"@kubb/renderer-jsx": "5.0.0-beta.13"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@kubb/renderer-jsx": "5.0.0-beta.
|
|
69
|
+
"@kubb/renderer-jsx": "5.0.0-beta.13"
|
|
70
70
|
},
|
|
71
71
|
"size-limit": [
|
|
72
72
|
{
|
package/src/createKubb.ts
CHANGED
|
@@ -777,6 +777,7 @@ type SetupResult = {
|
|
|
777
777
|
driver: PluginDriver
|
|
778
778
|
storage: Storage
|
|
779
779
|
config: Config
|
|
780
|
+
dispose: () => void
|
|
780
781
|
}
|
|
781
782
|
|
|
782
783
|
/**
|
|
@@ -901,10 +902,15 @@ async function setup(userConfig: UserConfig, options: SetupOptions = {}): Promis
|
|
|
901
902
|
// Register middleware hooks after all plugin hooks are registered.
|
|
902
903
|
// Because AsyncEventEmitter calls listeners in registration order,
|
|
903
904
|
// middleware hooks for any event fire after all plugin hooks for that event.
|
|
905
|
+
// Handlers are tracked so they can be removed after each build (disposeMiddleware),
|
|
906
|
+
// preventing accumulation when multiple configs share the same hooks instance.
|
|
907
|
+
const middlewareListeners: Array<[keyof KubbHooks & string, (...args: never[]) => void | Promise<void>]> = []
|
|
908
|
+
|
|
904
909
|
function registerMiddlewareHook<K extends keyof KubbHooks & string>(event: K, middlewareHooks: Middleware['hooks']) {
|
|
905
910
|
const handler = middlewareHooks[event]
|
|
906
911
|
if (handler) {
|
|
907
912
|
hooks.on(event, handler)
|
|
913
|
+
middlewareListeners.push([event, handler as (...args: never[]) => void | Promise<void>])
|
|
908
914
|
}
|
|
909
915
|
}
|
|
910
916
|
|
|
@@ -940,6 +946,12 @@ async function setup(userConfig: UserConfig, options: SetupOptions = {}): Promis
|
|
|
940
946
|
hooks,
|
|
941
947
|
driver,
|
|
942
948
|
storage,
|
|
949
|
+
dispose: () => {
|
|
950
|
+
driver.dispose()
|
|
951
|
+
for (const [event, handler] of middlewareListeners) {
|
|
952
|
+
hooks.off(event, handler as never)
|
|
953
|
+
}
|
|
954
|
+
},
|
|
943
955
|
}
|
|
944
956
|
}
|
|
945
957
|
|
|
@@ -1239,7 +1251,7 @@ async function safeBuild(setupResult: SetupResult): Promise<BuildOutput> {
|
|
|
1239
1251
|
storage,
|
|
1240
1252
|
}
|
|
1241
1253
|
} finally {
|
|
1242
|
-
|
|
1254
|
+
setupResult.dispose()
|
|
1243
1255
|
}
|
|
1244
1256
|
}
|
|
1245
1257
|
|