1- import fs from 'node:fs/promises'
1+ import { readdir , mkdir } from 'node:fs/promises'
22import path from 'node:path'
33import { fileURLToPath } from 'node:url'
44
@@ -42,8 +42,7 @@ async function readPackageDescription(packageDir) {
4242 const packageJsonPath = path . join ( packagesRoot , packageDir , 'package.json' )
4343
4444 try {
45- const raw = await fs . readFile ( packageJsonPath , 'utf8' )
46- const parsed = JSON . parse ( raw )
45+ const parsed = await Bun . file ( packageJsonPath ) . json ( )
4746 return parsed . description ?? ''
4847 } catch {
4948 return ''
@@ -90,17 +89,15 @@ async function assertCuratedPackageIsValid(pkg) {
9089
9190 for ( const spec of behavior . specs ) {
9291 const specPath = path . join ( repoRoot , spec )
93- try {
94- await fs . access ( specPath )
95- } catch {
92+ if ( ! await Bun . file ( specPath ) . exists ( ) ) {
9693 throw new Error ( `Missing spec reference: ${ spec } ` )
9794 }
9895 }
9996 }
10097}
10198
10299async function getAllPackageDirs ( ) {
103- const entries = await fs . readdir ( packagesRoot , { withFileTypes : true } )
100+ const entries = await readdir ( packagesRoot , { withFileTypes : true } )
104101 return entries
105102 . filter ( entry => entry . isDirectory ( ) )
106103 . map ( entry => entry . name )
@@ -111,7 +108,7 @@ async function readCuratedPackage(packageDir) {
111108 const curatedPath = path . join ( packagesRoot , packageDir , curatedFilename )
112109
113110 try {
114- const raw = await fs . readFile ( curatedPath , 'utf8' )
111+ const raw = await Bun . file ( curatedPath ) . text ( )
115112 return {
116113 data : JSON . parse ( raw ) ,
117114 curatedRelativePath : `packages/${ packageDir } /${ curatedFilename } `
@@ -128,7 +125,7 @@ async function hasSpecFiles(packageDir) {
128125 const specDir = path . join ( packagesRoot , packageDir , 'spec' )
129126
130127 try {
131- const entries = await fs . readdir ( specDir , { withFileTypes : true } )
128+ const entries = await readdir ( specDir , { withFileTypes : true } )
132129 const hasTests = entries . some (
133130 entry => entry . isFile ( ) && / \. (?: [ c m ] ? [ j t ] s | t s x | j s x ) $ / . test ( entry . name )
134131 )
@@ -190,10 +187,10 @@ function warnForPackagesNeedingCuration(packages) {
190187const allPackageDirs = await getAllPackageDirs ( )
191188const packages = await buildPackages ( allPackageDirs )
192189warnForPackagesNeedingCuration ( packages )
193- await fs . mkdir ( outputDir , { recursive : true } )
190+ await mkdir ( outputDir , { recursive : true } )
194191
195192await Promise . all (
196- packages . map ( pkg => fs . writeFile ( path . join ( outputDir , `${ pkg . slug } .md` ) , renderPackage ( pkg ) , 'utf8' ) )
193+ packages . map ( pkg => Bun . write ( path . join ( outputDir , `${ pkg . slug } .md` ) , renderPackage ( pkg ) ) )
197194)
198195
199- await fs . writeFile ( path . join ( outputDir , 'index.md' ) , renderIndex ( packages ) , 'utf8' )
196+ await Bun . write ( path . join ( outputDir , 'index.md' ) , renderIndex ( packages ) )
0 commit comments