Skip to content

Commit 9d47ff8

Browse files
committed
fix(01): sort unix
1 parent ad0387c commit 9d47ff8

2 files changed

Lines changed: 40 additions & 10 deletions

File tree

integration/__snapshots__/index.test.ts.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,25 @@ exports[`build rollup 2`] = `
1717
"{
1818
"name": "@duplojs/test",
1919
"files": [
20-
{
21-
"name": "index.mjs"
22-
},
23-
{
24-
"name": "index.d.ts"
25-
},
2620
{
2721
"name": "mySuperDomain",
2822
"files": [
2923
{
30-
"name": "mySuperFunction.mjs"
24+
"name": "index.d.ts"
3125
},
3226
{
3327
"name": "mySuperFunction.d.ts"
3428
},
3529
{
36-
"name": "index.d.ts"
30+
"name": "mySuperFunction.mjs"
3731
}
3832
]
33+
},
34+
{
35+
"name": "index.d.ts"
36+
},
37+
{
38+
"name": "index.mjs"
3939
}
4040
]
4141
}"

scripts/generateMetadata/walkDirectory.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ export interface FileStructure {
77
files?: FileStructure[];
88
}
99

10+
const collator = new Intl.Collator(
11+
"en-US-u-kn-true",
12+
{
13+
usage: "sort",
14+
sensitivity: "variant",
15+
numeric: false,
16+
ignorePunctuation: false,
17+
},
18+
);
19+
1020
export function walkDirectory(
1121
directoryPath: string,
1222
): Promise<FileStructure[]> {
@@ -20,15 +30,35 @@ export function walkDirectory(
2030
join(directoryPath, name),
2131
walkDirectory,
2232
(files) => ({
33+
type: <const>"folder",
2334
name,
2435
files,
2536
}),
2637
),
2738
),
28-
P.otherwise(O.pick({ name: true })),
39+
P.otherwise(
40+
({ name }) => ({
41+
type: <const>"file",
42+
name,
43+
}),
44+
),
2945
),
3046
),
3147
A.from,
48+
O.to({
49+
folders: innerPipe(
50+
A.filter(O.discriminate("type", "folder")),
51+
A.sort((entry1, entry2) => collator.compare(entry1.name, entry2.name)),
52+
),
53+
files: innerPipe(
54+
A.filter(O.discriminate("type", "file")),
55+
A.sort((entry1, entry2) => collator.compare(entry1.name, entry2.name)),
56+
),
57+
}),
58+
({ folders, files }) => ([
59+
...folders,
60+
...files,
61+
]),
62+
A.map(O.omit({ type: true })),
3263
);
3364
}
34-

0 commit comments

Comments
 (0)