From ef3ec54a4e7649bcedab67f3fcd7812cf45c9b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Marius=20L=C3=B8set?= Date: Sun, 31 Dec 2023 18:40:47 +0100 Subject: [PATCH] Output consistency across platforms (#181) * fix: normalize newline * fix: sort readdir * fix: correct sorting * fix: missing npm run in build:registry npm script * Update apps/www/package.json Co-authored-by: Sadegh Barati --------- Co-authored-by: Sadegh Barati --- apps/www/scripts/build-registry.ts | 11 +++++++++-- apps/www/src/lib/registry/registry.ts | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/www/scripts/build-registry.ts b/apps/www/scripts/build-registry.ts index 6ab0ccf2..2df7fd3e 100644 --- a/apps/www/scripts/build-registry.ts +++ b/apps/www/scripts/build-registry.ts @@ -66,6 +66,8 @@ fs.writeFileSync(path.join(process.cwd(), '__registry__/index.ts'), index) // ---------------------------------------------------------------------------- // Build registry/styles/[style]/[name].json. // ---------------------------------------------------------------------------- +const newLine = '\n' + for (const style of styles) { const targetPath = path.join(REGISTRY_PATH, 'styles', style.name) @@ -78,11 +80,14 @@ for (const style of styles) { continue const files = item.files?.map((file) => { - const content = fs.readFileSync( + let content = fs.readFileSync( path.join(process.cwd(), 'src/lib/registry', style.name, file), 'utf8', ) + // Replace Windows-style newlines with Unix-style newlines + content = content.replace(/\r\n/g, newLine) + return { name: basename(file), content, @@ -94,9 +99,11 @@ for (const style of styles) { files, } + const payloadStr = JSON.stringify(payload, null, 2).replace(/\r\n/g, newLine) + fs.writeFileSync( path.join(targetPath, `${item.name}.json`), - JSON.stringify(payload, null, 2), + payloadStr, 'utf8', ) } diff --git a/apps/www/src/lib/registry/registry.ts b/apps/www/src/lib/registry/registry.ts index 3e394880..c7ed9caf 100644 --- a/apps/www/src/lib/registry/registry.ts +++ b/apps/www/src/lib/registry/registry.ts @@ -110,6 +110,7 @@ async function buildUIRegistry(componentPath: string, componentName: string) { const file_path = join('ui', componentName, dirent.name) files.push(file_path) + files.sort() // only grab deps from the vue files if (dirent.name === 'index.ts')