Skip to content

Commit f8cbea3

Browse files
committed
use plimit
1 parent 24dc2d3 commit f8cbea3

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

packages/cli/src/file_operations.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,14 @@ export class FileOperations {
7171
return files;
7272
}
7373

74-
public static writeFiles(files: {path: string, contents: string}[]) {
75-
for (const file of files) {
76-
fs.writeFileSync(file.path, file.contents);
77-
}
74+
public static async writeFiles(files: {path: string, contents: string}[]) {
75+
const limit = this.setupPLimit();
76+
const promises = files.map((file) => {
77+
return limit(async () => {
78+
await fsPromises.writeFile(file.path, file.contents);
79+
});
80+
});
81+
await Promise.all(promises);
7882
}
7983

8084
}

packages/cli/src/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ async function loadLib(config: ITranspilerConfig): Promise<Transpiler.IFile[]> {
7070
return files;
7171
}
7272

73-
function writeObjects(outputFiles: Transpiler.IOutputFile[], config: ITranspilerConfig, outputFolder: string, files: Transpiler.IFile[]) {
73+
async function writeObjects(outputFiles: Transpiler.IOutputFile[],
74+
config: ITranspilerConfig, outputFolder: string, files: Transpiler.IFile[]) {
75+
7476
const writeSourceMaps = config.write_source_map || false;
7577
const filesToWrite: {path: string, contents: string}[] = [];
7678

@@ -104,7 +106,7 @@ function writeObjects(outputFiles: Transpiler.IOutputFile[], config: ITranspiler
104106
filesToWrite.push({path: outputFolder + path.sep + output.filename, contents});
105107
}
106108

107-
FileOperations.writeFiles(filesToWrite);
109+
await FileOperations.writeFiles(filesToWrite);
108110
}
109111

110112
async function build(config: ITranspilerConfig, files: Transpiler.IFile[]) {
@@ -139,7 +141,7 @@ async function run() {
139141
fs.mkdirSync(outputFolder);
140142
}
141143

142-
writeObjects(output.objects, config, outputFolder, files);
144+
await writeObjects(output.objects, config, outputFolder, files);
143145
console.log(output.objects.length + " objects written to disk");
144146

145147
if (config.write_unit_tests === true) {

0 commit comments

Comments
 (0)