unframer 2.16.2 → 2.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAWjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;oBAAc,MAAM;;;;cAAvB,GAAG;gBAAc,MAAM;6CAuF7D,CAAA;AAoCF,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;;;CAAA,OAGtD;AAED,wBAAgB,WAAW,CAAC,EACxB,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACV;;;;;;;CAAA,8CAgCA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EAEN,OAAO,GACV;;;;;;CAAA,8CAsCA"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAWjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;oBAAc,MAAM;;;;cAAvB,GAAG;gBAAc,MAAM;6CAsF7D,CAAA;AAoCF,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;;;CAAA,OAGtD;AAED,wBAAgB,WAAW,CAAC,EACxB,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACV;;;;;;;CAAA,8CA+BA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EAEN,OAAO,GACV;;;;;;CAAA,8CAsCA"}
package/esm/react.js CHANGED
@@ -81,14 +81,14 @@ export const WithFramerBreakpoints = forwardRef(function WithFramerBreakpoints({
81
81
  });
82
82
  }
83
83
  }
84
- const parts = [...variants.values()].map(({ className, breakpoints, variant }) => {
84
+ const parts = [...variants.values()].map(({ className, breakpoints, variant }, i) => {
85
85
  const shouldShow = !currentBreakpoint || breakpoints.includes(currentBreakpoint);
86
86
  if (!shouldShow) {
87
87
  return null;
88
88
  }
89
89
  return (_jsx("div", { className: className, children: _jsx(Component, { ref: ref,
90
90
  // LayoutGroup is used internally
91
- layoutId: id + variant, ...rest, variant: variant }, variant) }, variant));
91
+ layoutId: variant, ...rest, variant: variant }) }, i));
92
92
  });
93
93
  return parts;
94
94
  });
package/esm/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unframer",
3
- "version": "2.16.2",
3
+ "version": "2.17.1",
4
4
  "description": "Import Framer components directly in your React app, type safe and customizable",
5
5
  "sideEffects": false,
6
6
  "repository": "https://github.com/remorses/unframer",
@@ -47,37 +47,37 @@
47
47
  "dprint-node": "^1.0.8",
48
48
  "esbuild": "^0.24.2",
49
49
  "esbuild-plugins-node-modules-polyfill": "^1.6.8",
50
- "find-up": "^5.0.0",
50
+ "find-up": "^7.0.0",
51
51
  "json5": "^2.2.3",
52
- "marked": "^15.0.3",
52
+ "marked": "^15.0.6",
53
53
  "marked-terminal": "^7.2.1",
54
54
  "nanospinner": "^1.2.2",
55
- "picocolors": "^1.0.1",
56
- "real-framer-motion": "npm:framer-motion@11.2.10",
57
- "spiceflow": "^1.4.1",
55
+ "picocolors": "^1.1.1",
56
+ "real-framer-motion": "npm:framer-motion@12.0.6",
57
+ "spiceflow": "^1.5.1",
58
58
  "string-dedent": "^3.0.1"
59
59
  },
60
60
  "devDependencies": {
61
- "@babel/core": "^7.24.9",
62
- "@babel/helper-annotate-as-pure": "^7.24.7",
61
+ "@babel/core": "^7.26.7",
62
+ "@babel/helper-annotate-as-pure": "^7.25.9",
63
63
  "@babel/helper-environment-visitor": "^7.24.7",
64
64
  "@babel/helper-split-export-declaration": "^7.24.7",
65
- "@babel/plugin-transform-react-pure-annotations": "^7.24.7",
66
- "@babel/traverse": "^7.24.8",
67
- "@babel/types": "^7.24.9",
65
+ "@babel/plugin-transform-react-pure-annotations": "^7.25.9",
66
+ "@babel/traverse": "^7.26.7",
67
+ "@babel/types": "^7.26.7",
68
68
  "@types/babel__core": "^7.20.5",
69
69
  "@types/babel__traverse": "^7.20.6",
70
- "@types/bun": "^1.1.6",
71
- "@types/node": "^22.10.2",
72
- "@types/react": "^18.3.12",
70
+ "@types/bun": "^1.2.1",
71
+ "@types/node": "^22.12.0",
72
+ "@types/react": "^19.0.8",
73
73
  "@xmorse/deployment-utils": "^0.2.19",
74
- "concurrently": "^8.2.2",
75
- "openai": "^4.52.7",
74
+ "concurrently": "^9.1.2",
75
+ "openai": "^4.80.1",
76
76
  "posthtml": "^0.16.6",
77
77
  "react": "19.0.0",
78
78
  "react-dom": "19.0.0",
79
- "tiktoken": "^1.0.15",
80
- "typescript": "^5.7.2"
79
+ "tiktoken": "^1.0.18",
80
+ "typescript": "^5.7.3"
81
81
  },
82
82
  "scripts": {
83
83
  "build": "rm -rf dist && pnpm concurrently \"pnpm tsc -m esnext --moduleResolution node --outDir esm\" \"pnpm tsc\" && echo copying && cp ../README.md ./README.md && cp ./src/framer.d.ts ./dist/framer.d.ts && cp ./src/framer.d.ts ./esm/framer.d.ts",
package/src/cli.tsx CHANGED
@@ -4,7 +4,7 @@ import { bundle, StyleToken } from './exporter.js'
4
4
  import { createClient } from './generated/api-client.js'
5
5
 
6
6
  import { cac } from 'cac'
7
- import findUp from 'find-up'
7
+
8
8
  import fs from 'fs'
9
9
  import path, { basename } from 'path'
10
10
  import { BreakpointSizes } from './css.js'
@@ -38,8 +38,8 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
38
38
  const externalPackages: string[] = Array.isArray(external_)
39
39
  ? external_.filter((x) => x.trim())
40
40
  : typeof external_ === 'string'
41
- ? [external_]
42
- : []
41
+ ? [external_]
42
+ : []
43
43
  try {
44
44
  if (options.debug) {
45
45
  logger.debug = true
@@ -47,6 +47,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
47
47
  const outDir = options.outDir
48
48
  const controller = new AbortController()
49
49
  const signal = controller.signal
50
+ const watch = options.watch
50
51
  if (projectId) {
51
52
  logger.log(`Fetching config for project ${projectId}`)
52
53
 
@@ -110,7 +111,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
110
111
  tokens: data.colorStyles,
111
112
  framerWebPages: data.framerWebPages || [],
112
113
  },
113
- watch: false,
114
+ watch,
114
115
 
115
116
  cwd,
116
117
  signal,
@@ -154,6 +155,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
154
155
  fixOldUnframerPath()
155
156
  const cwd = process.cwd()
156
157
  logger.log(`Looking for ${configNames.join(', ')} in ${cwd}`)
158
+ const { findUp } = await import('find-up')
157
159
  const configPath = await findUp(configNames, { cwd })
158
160
  if (!configPath) {
159
161
  logger.log(`No ${configNames.join(', ')} found`)
@@ -173,7 +175,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
173
175
  setMaxListeners(0, controller.signal)
174
176
  const { buildContext } = await bundle({
175
177
  config: { ...config, externalPackages, allExternal },
176
- watch: false,
178
+ watch,
177
179
  signal: controller.signal,
178
180
  cwd: path.resolve(process.cwd(), config.outDir || 'framer'),
179
181
  })
package/src/esbuild.ts CHANGED
@@ -98,7 +98,7 @@ export function esbuildPluginBundleDependencies({
98
98
  }).catch(() => '')
99
99
  if (!installedVersion) {
100
100
  spinner.error(
101
- `${pkg} not found: install it with \`npm i ${pkg}\``,
101
+ `${pkg} not found: install it with \`npm i ${pkg}\` then run \`unframer\` again to generate the types`,
102
102
  )
103
103
  }
104
104
  return {
@@ -124,7 +124,7 @@ export function esbuildPluginBundleDependencies({
124
124
  }).catch(() => '')
125
125
  if (!installedVersion) {
126
126
  spinner.error(
127
- `${pkg} not found: install it with \`npm i ${pkg}\``,
127
+ `${pkg} not found: install it with \`npm i ${pkg}\` then run \`unframer\` again to generate the types`,
128
128
  )
129
129
  }
130
130
  return {
@@ -193,6 +193,9 @@ export function esbuildPluginBundleDependencies({
193
193
  /(\/\* webpackIgnore: true \*\/)/g,
194
194
  '$1 /* @vite-ignore */',
195
195
  )
196
+ // if (!text.includes('import.meta.url')) {
197
+ // return text
198
+ // }
196
199
 
197
200
  const transformed = await transform(text, {
198
201
  define: {
package/src/exporter.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { build, BuildResult, context } from 'esbuild'
1
+ import { build, BuildResult, context, type BuildOptions } from 'esbuild'
2
2
  import packageJson from '../package.json'
3
3
 
4
4
  import url from 'url'
@@ -57,7 +57,7 @@ export async function bundle({
57
57
  out ||= path.resolve(process.cwd(), 'example')
58
58
  out = path.resolve(out)
59
59
  try {
60
- fs.mkdirSync(out, { recursive: true })
60
+ await fs.promises.mkdir(out, { recursive: true })
61
61
  } catch (e) {}
62
62
 
63
63
  spinner.start()
@@ -72,7 +72,17 @@ export async function bundle({
72
72
  const breakpointSizes = Object.entries(
73
73
  config.breakpoints || defaultBreakpointSizes,
74
74
  ).sort(([, a], [, b]) => a - b)
75
- const buildContext = await context({
75
+ function fakeContext(args: BuildOptions) {
76
+ return {
77
+ rebuild() {
78
+ return build(args)
79
+ },
80
+ cancel() {},
81
+ dispose() {},
82
+ }
83
+ }
84
+ const fn = watch ? context : fakeContext
85
+ const buildContext = await fn({
76
86
  absWorkingDir: out,
77
87
 
78
88
  entryPoints: Object.keys(components).map((name) => {
@@ -223,7 +233,7 @@ export async function bundle({
223
233
  } "${config.projectName}", do not edit manually */\n`
224
234
 
225
235
  async function rebuild() {
226
- const prevFiles = recursiveReaddir(out)
236
+ const prevFiles = await recursiveReaddir(out)
227
237
  const buildResult = await buildContext.rebuild().catch((e) => {
228
238
  if (e.message.includes('No matching export ')) {
229
239
  spinner.error(
@@ -237,6 +247,8 @@ export async function bundle({
237
247
  throw e
238
248
  })
239
249
 
250
+ spinner.update('Finished build')
251
+
240
252
  for (let file of buildResult.outputFiles!) {
241
253
  const resultPathAbs = path.resolve(out, file.path)
242
254
  const existing = await fs.promises
@@ -256,24 +268,28 @@ export async function bundle({
256
268
  // })
257
269
  // let inputCode = res!.code!
258
270
 
259
- const tooBig = 1 * 1024 * 1024
271
+ const tooBigSize = 1 * 1024 * 1024
260
272
 
261
273
  let formatted = file.text
262
- if (file.text.length < tooBig) {
263
- formatted = dprint.format('file.jsx', file.text, {
264
- lineWidth: 140,
265
- quoteStyle: 'alwaysSingle',
266
- trailingCommas: 'always',
267
- semiColons: 'always',
268
- })
269
- } else {
270
- spinner.info(
271
- `skipping formatting ${path.relative(
272
- out,
273
- file.path,
274
- )}, too big`,
275
- )
276
- }
274
+ // let tooBig = file.text.length >= tooBigSize
275
+ // let shouldFormat = !tooBig && !file.path.includes('chunks')
276
+ // if (shouldFormat) {
277
+ // spinner.update(`Formatting ${path.relative(out, file.path)}`)
278
+ // formatted = dprint.format('file.jsx', file.text, {
279
+ // lineWidth: 140,
280
+ // quoteStyle: 'alwaysSingle',
281
+ // trailingCommas: 'always',
282
+ // semiColons: 'always',
283
+ // })
284
+ // }
285
+ // if (tooBig) {
286
+ // spinner.info(
287
+ // `skipping formatting ${path.relative(
288
+ // out,
289
+ // file.path,
290
+ // )}, too big`,
291
+ // )
292
+ // }
277
293
 
278
294
  let codeNew =
279
295
  `// @ts-nocheck\n` +
@@ -300,25 +316,32 @@ export async function bundle({
300
316
  continue
301
317
  }
302
318
  logger.log(`writing`, path.relative(out, file.path))
303
- fs.mkdirSync(path.dirname(resultPathAbs), { recursive: true })
304
- fs.writeFileSync(resultPathAbs, codeNew, 'utf-8')
319
+ await fs.promises.mkdir(path.dirname(resultPathAbs), {
320
+ recursive: true,
321
+ })
322
+ await fs.promises.writeFile(resultPathAbs, codeNew, 'utf-8')
305
323
  }
306
324
  spinner.stop()
325
+ await fs.promises.writeFile(
326
+ path.resolve(out, '.cursorignore'),
327
+ `**/*.js\nchunks\n`,
328
+ 'utf-8',
329
+ )
307
330
 
308
- let allFonts = [] as ComponentFontBundle[]
309
-
331
+ if (!buildResult?.outputFiles) {
332
+ throw new Error('Failed to generate result')
333
+ }
310
334
  const packageJson = path.resolve(out, 'package.json')
311
- fs.writeFileSync(
335
+ await fs.promises.writeFile(
312
336
  packageJson,
313
337
  JSON.stringify({ type: 'module' }),
314
338
  'utf-8',
315
339
  )
316
- if (!buildResult?.outputFiles) {
317
- throw new Error('Failed to generate result')
318
- }
340
+
319
341
  const sema = new Sema(10)
320
- spinner.start('Extracting types')
342
+ spinner.update('Extracting types')
321
343
  logger.log(`using node path`, nodePath)
344
+ let allFonts = [] as ComponentFontBundle[]
322
345
  const propControlsData = await Promise.all(
323
346
  buildResult?.outputFiles.map(async (file) => {
324
347
  try {
@@ -349,8 +372,11 @@ export async function bundle({
349
372
  fileName: name,
350
373
  config,
351
374
  })
352
- fs.mkdirSync(out, { recursive: true })
353
- fs.writeFileSync(path.resolve(out, `${name}.d.ts`), types)
375
+ await fs.promises.mkdir(out, { recursive: true })
376
+ await fs.promises.writeFile(
377
+ path.resolve(out, `${name}.d.ts`),
378
+ types,
379
+ )
354
380
  return {
355
381
  propertyControls,
356
382
  fonts,
@@ -360,9 +386,9 @@ export async function bundle({
360
386
  sema.release()
361
387
  }
362
388
  }),
363
- ).finally(() => {
389
+ ).finally(async () => {
364
390
  try {
365
- fs.rmSync(packageJson)
391
+ await fs.promises.rm(packageJson)
366
392
  } catch (error) {
367
393
  // Ignore error if file doesn't exist or can't be deleted
368
394
  }
@@ -381,10 +407,9 @@ export async function bundle({
381
407
  .map((x) => (x?.startsWith(' ') ? dedent(x) : x))
382
408
  .join('\n') +
383
409
  getFontsStyles(allFonts)
384
- fs.writeFileSync(path.resolve(out, 'styles.css'), cssString, 'utf-8')
385
- fs.writeFileSync(
386
- path.resolve(out, '.cursorignore'),
387
- `**/*.js\nchunks\n`,
410
+ await fs.promises.writeFile(
411
+ path.resolve(out, 'styles.css'),
412
+ cssString,
388
413
  'utf-8',
389
414
  )
390
415
 
@@ -397,6 +422,7 @@ export async function bundle({
397
422
  .concat([
398
423
  path.resolve(out, 'meta.json'),
399
424
  path.resolve(out, 'tokens.css'),
425
+ path.resolve(out, '.cursorignore'),
400
426
  path.resolve(out, 'styles.css'),
401
427
  ])
402
428
  .concat(
@@ -408,13 +434,13 @@ export async function bundle({
408
434
  for (let file of filesToDelete) {
409
435
  logger.log('deleting', path.relative(out, file))
410
436
  try {
411
- fs.rmSync(file)
437
+ await fs.promises.rm(file)
412
438
  } catch (error) {
413
439
  // Ignore error if file doesn't exist or can't be deleted
414
440
  }
415
441
  }
416
442
 
417
- fs.writeFileSync(
443
+ await fs.promises.writeFile(
418
444
  path.resolve(out, 'meta.json'),
419
445
  JSON.stringify(buildResult.metafile, null, 2),
420
446
  'utf-8',
@@ -432,7 +458,7 @@ export async function bundle({
432
458
  "/* This css file contains your color variables, sometimes these get desynced when updated in Framer so it's good that you copy and paste this snippet into your app css */\n" +
433
459
  '/* Bug: https://www.framer.community/c/bugs/color-style-unlinks-when-copying-component-between-projects-resulting-in-potential-value-discrepancy */\n' +
434
460
  getTokensCss({ out, result: buildResult })
435
- fs.writeFileSync(
461
+ await fs.promises.writeFile(
436
462
  path.resolve(out, 'tokens.css'),
437
463
  tokensCss,
438
464
  'utf-8',
@@ -594,52 +620,6 @@ export async function bundle({
594
620
  await checkUnframerVersion({ cwd: out })
595
621
  console.log()
596
622
  return { result, rebuild, buildContext }
597
-
598
- // // when user press ctrl+c dispose
599
- // process.on('SIGINT', async () => {
600
- // await buildContext.cancel()
601
- // buildContext.dispose()
602
- // })
603
- // process.on('SIGABRT', async () => {
604
- // await buildContext.cancel()
605
- // buildContext.dispose()
606
- // })
607
- // signal?.addEventListener('abort', async () => {
608
- // await buildContext.cancel()
609
- // buildContext.dispose()
610
- // })
611
-
612
- // const res = await rebuild()
613
-
614
- // /**
615
- // * Get resolved URLs for all components and also wait for 1 second if it took less time than that
616
- // */
617
- // const getResolvedUrls = () =>
618
- // Promise.all([
619
- // ...Object.values(components).map((u) => {
620
- // const url = new URL(u)
621
- // url.searchParams.set('ts', Date.now().toString())
622
- // return resolveRedirect({ url: url.toString(), signal })
623
- // }),
624
- // new Promise((res) => setTimeout(res, 5000)),
625
- // ])
626
- // let prevUrls = await getResolvedUrls()
627
- // while (!signal?.aborted) {
628
- // const urls = await getResolvedUrls()
629
- // const changed = urls
630
- // .map((x, i) => (x !== prevUrls[i] ? i : null))
631
- // .filter(Boolean)
632
- // if (!changed?.length) {
633
- // continue
634
- // }
635
- // const changedNames = Object.keys(components).filter((_, i) =>
636
- // changed.includes(i),
637
- // )
638
- // logger.log(`found new component URLs for ${changedNames.join(', ')}`)
639
- // prevUrls = urls
640
- // await rebuild()
641
- // }
642
- // return res
643
623
  }
644
624
 
645
625
  const packageVersionCache = new Map<string, string>()
@@ -768,7 +748,7 @@ export function findRelativeLinks(text: string) {
768
748
  return [...lineNumbers]
769
749
  }
770
750
 
771
- export async function extractPropControlsSafe(text, name) {
751
+ async function extractPropControlsSafe(text, name) {
772
752
  try {
773
753
  const propControlsCode = await parsePropertyControls(text)
774
754
  // console.log('propControlsCode', propControlsCode)
@@ -778,17 +758,17 @@ export async function extractPropControlsSafe(text, name) {
778
758
  const ivm = require('isolated-vm')
779
759
  const vm = new ivm.Isolate({ memoryLimit: 128 })
780
760
 
781
- const context = vm.createContextSync()
761
+ const vmContext = vm.createContextSync()
782
762
 
783
- const jail = context.global
763
+ const jail = vmContext.global
784
764
 
785
765
  let result = undefined
786
- context.global.setSync('__return', (x) => {
766
+ vmContext.global.setSync('__return', (x) => {
787
767
  result = x
788
768
  })
789
769
 
790
770
  const mod = vm.compileModuleSync(`${text}`)
791
- await mod.instantiateSync(context, (spec, mod) => {
771
+ await mod.instantiateSync(vmContext, (spec, mod) => {
792
772
  // TODO instantiate framer, react, framer-motion etc
793
773
  return
794
774
  })
@@ -927,13 +907,14 @@ export async function extractPropControlsUnsafe(
927
907
  ).href,
928
908
  })
929
909
  let stdout = await new Promise<string>((res, rej) => {
910
+ const cmd = `"${
911
+ nodePath
912
+ }" --no-warnings --input-type=module --loader ${require.resolve(
913
+ '../dist/unframer-loader.js',
914
+ )} -e ${JSON.stringify(code)}`
915
+
930
916
  let childProcess = exec(
931
- `${JSON.stringify(
932
- nodePath,
933
- )} --no-warnings --input-type=module --loader ${
934
- url.pathToFileURL(require.resolve('../dist/unframer-loader.js'))
935
- .href
936
- } -e ${JSON.stringify(code)}`,
917
+ cmd,
937
918
  {
938
919
  env: {
939
920
  // ...process.env,
@@ -1298,11 +1279,13 @@ h1, h2, h3, h4, h5, h6, p, figure {
1298
1279
 
1299
1280
  `
1300
1281
 
1301
- function recursiveReaddir(dir: string) {
1302
- const dirents = fs.readdirSync(dir, { withFileTypes: true })
1303
- const files = dirents.map((dirent) => {
1304
- const res = path.resolve(dir, dirent.name)
1305
- return dirent.isDirectory() ? recursiveReaddir(res) : res
1306
- })
1282
+ async function recursiveReaddir(dir: string): Promise<string[]> {
1283
+ const dirents = await fs.promises.readdir(dir, { withFileTypes: true })
1284
+ const files = await Promise.all(
1285
+ dirents.map((dirent) => {
1286
+ const res = path.resolve(dir, dirent.name)
1287
+ return dirent.isDirectory() ? recursiveReaddir(res) : res
1288
+ }),
1289
+ )
1307
1290
  return files.flat()
1308
1291
  }