Ensure component index has been written before renaming

This ensures we correctly wait for `component-index.js.tmp` to be written to
disk before trying to rename into place. This fixes an issue where stray temp
files were being strewn about the repos after renaming failures.
pull/21833/head
J. Ryan Stinnett 2021-01-19 14:45:03 +00:00
parent 0e137bd0f6
commit 4e5f25206a
1 changed files with 4 additions and 2 deletions

View File

@ -2,6 +2,7 @@
const fs = require('fs');
const path = require('path');
const glob = require('glob');
const util = require('util');
const args = require('minimist')(process.argv);
const chokidar = require('chokidar');
@ -12,7 +13,7 @@ const componentJsGlob = '**/*.js';
const componentTsGlob = '**/*.tsx';
let prevFiles = [];
function reskindex() {
async function reskindex() {
const jsFiles = glob.sync(componentJsGlob, {cwd: componentsDir}).sort();
const tsFiles = glob.sync(componentTsGlob, {cwd: componentsDir}).sort();
const files = [...tsFiles, ...jsFiles];
@ -51,7 +52,8 @@ function reskindex() {
}
strm.write("export {components};\n");
strm.end();
// Ensure the file has been fully written to disk before proceeding
await util.promisify(strm.end);
fs.rename(componentIndexTmp, componentIndex, function(err) {
if (err) {
console.error("Error moving new index into place: " + err);