1
0
Fork 0

fix(source): wait for output write to finish

This commit is contained in:
ssube 2019-06-16 16:35:43 -05:00
parent ab40330f61
commit 72bedc87a9
1 changed files with 19 additions and 5 deletions

View File

@ -1,23 +1,37 @@
import { promisify } from 'util';
import { readFile, writeFile } from 'fs';
import { isNil } from 'lodash';
import { promisify } from 'util';
export const FILE_ENCODING = 'utf-8';
export const readFileSync = promisify(readFile);
export const writeFileSync = promisify(writeFile);
export async function loadSource(path: string): Promise<string> {
if (path === '-') {
return readFileSync(0, 'utf-8');
return readFileSync(0, {
encoding: FILE_ENCODING,
});
} else {
return readFileSync(path, 'utf-8');
return readFileSync(path, {
encoding: FILE_ENCODING,
});
}
}
export async function writeSource(path: string, data: string): Promise<void> {
if (path === '-') {
process.stdout.write(data);
return new Promise((res, rej) => {
process.stdout.write(data, (err: Error | null | undefined) => {
if (isNil(err)) {
res();
} else {
rej(err);
}
});
});
} else {
return writeFileSync(path, data, {
encoding: 'utf-8',
encoding: FILE_ENCODING,
});
}
}