@kubb/core 5.0.0-beta.14 → 5.0.0-beta.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "5.0.0-beta.14",
3
+ "version": "5.0.0-beta.15",
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.14"
61
+ "@kubb/ast": "5.0.0-beta.15"
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.14"
66
+ "@kubb/renderer-jsx": "5.0.0-beta.15"
67
67
  },
68
68
  "peerDependencies": {
69
- "@kubb/renderer-jsx": "5.0.0-beta.14"
69
+ "@kubb/renderer-jsx": "5.0.0-beta.15"
70
70
  },
71
71
  "size-limit": [
72
72
  {
package/src/createKubb.ts CHANGED
@@ -1019,11 +1019,11 @@ async function runPluginAstHooks(plugin: NormalizedPlugin, context: GeneratorCon
1019
1019
 
1020
1020
  const ctx = { ...generatorContext, options }
1021
1021
 
1022
- for (const gen of generators) {
1023
- if (!gen.schema) continue
1024
- const result = await gen.schema(transformedNode, ctx)
1025
- await applyHookResult(result, driver, resolveRenderer(gen))
1026
- }
1022
+ await Promise.all(
1023
+ generators
1024
+ .filter((gen) => gen.schema)
1025
+ .map((gen) => Promise.resolve(gen.schema!(transformedNode, ctx)).then((result) => applyHookResult(result, driver, resolveRenderer(gen)))),
1026
+ )
1027
1027
 
1028
1028
  await driver.hooks.emit('kubb:generate:schema', transformedNode, ctx)
1029
1029
  },
@@ -1040,11 +1040,11 @@ async function runPluginAstHooks(plugin: NormalizedPlugin, context: GeneratorCon
1040
1040
 
1041
1041
  const ctx = { ...generatorContext, options }
1042
1042
 
1043
- for (const gen of generators) {
1044
- if (!gen.operation) continue
1045
- const result = await gen.operation(transformedNode, ctx)
1046
- await applyHookResult(result, driver, resolveRenderer(gen))
1047
- }
1043
+ await Promise.all(
1044
+ generators
1045
+ .filter((gen) => gen.operation)
1046
+ .map((gen) => Promise.resolve(gen.operation!(transformedNode, ctx)).then((result) => applyHookResult(result, driver, resolveRenderer(gen)))),
1047
+ )
1048
1048
 
1049
1049
  await driver.hooks.emit('kubb:generate:operation', transformedNode, ctx)
1050
1050
  }
@@ -1176,8 +1176,6 @@ async function safeBuild(setupResult: SetupResult): Promise<BuildOutput> {
1176
1176
  upsertFile: (...files) => driver.fileManager.upsert(...files),
1177
1177
  })
1178
1178
 
1179
- await flushPendingFiles()
1180
-
1181
1179
  await hooks.emit('kubb:debug', {
1182
1180
  date: new Date(),
1183
1181
  logs: [`✓ Plugin started successfully (${formatMs(duration)})`],
@@ -1199,8 +1197,6 @@ async function safeBuild(setupResult: SetupResult): Promise<BuildOutput> {
1199
1197
  upsertFile: (...files) => driver.fileManager.upsert(...files),
1200
1198
  })
1201
1199
 
1202
- await flushPendingFiles()
1203
-
1204
1200
  await hooks.emit('kubb:debug', {
1205
1201
  date: errorTimestamp,
1206
1202
  logs: [
@@ -53,10 +53,9 @@ export const fsStorage = createStorage(() => ({
53
53
  await rm(resolve(key), { force: true })
54
54
  },
55
55
  async getKeys(base?: string) {
56
- const keys: Array<string> = []
57
56
  const resolvedBase = resolve(base ?? process.cwd())
58
57
 
59
- async function walk(dir: string, prefix: string): Promise<void> {
58
+ async function* walk(dir: string, prefix: string): AsyncGenerator<string, void, undefined> {
60
59
  let entries: Array<Dirent>
61
60
  try {
62
61
  entries = (await readdir(dir, {
@@ -68,15 +67,17 @@ export const fsStorage = createStorage(() => ({
68
67
  for (const entry of entries) {
69
68
  const rel = prefix ? `${prefix}/${entry.name}` : entry.name
70
69
  if (entry.isDirectory()) {
71
- await walk(join(dir, entry.name), rel)
70
+ yield* walk(join(dir, entry.name), rel)
72
71
  } else {
73
- keys.push(rel)
72
+ yield rel
74
73
  }
75
74
  }
76
75
  }
77
76
 
78
- await walk(resolvedBase, '')
79
-
77
+ const keys: Array<string> = []
78
+ for await (const key of walk(resolvedBase, '')) {
79
+ keys.push(key)
80
+ }
80
81
  return keys
81
82
  },
82
83
  async clear(base?: string) {