Add a promise version of each of Babel's transform functions.

This commit is contained in:
Logan Smyth
2018-05-23 19:48:05 -07:00
parent 6f3093b557
commit 0bc3027554
5 changed files with 61 additions and 4 deletions

View File

@@ -17,10 +17,18 @@ export { createConfigItem } from "./config/item";
export { loadPartialConfig, loadOptions } from "./config";
export { transform, transformSync } from "./transform";
export { transformFile, transformFileSync } from "./transform-file";
export { transformFromAst, transformFromAstSync } from "./transform-ast";
export { parse, parseSync } from "./parse";
export { transform, transformSync, transformAsync } from "./transform";
export {
transformFile,
transformFileSync,
transformFileAsync,
} from "./transform-file";
export {
transformFromAst,
transformFromAstSync,
transformFromAstAsync,
} from "./transform-ast";
export { parse, parseSync, parseAsync } from "./parse";
/**
* Recommended set of compilable extensions. Not used in @babel/core directly, but meant as

View File

@@ -70,3 +70,15 @@ export function parseSync(
return normalizeFile(config.passes, normalizeOptions(config), code).ast;
}
export function parseAsync(
code: string,
opts?: InputOptions,
): Promise<ParseResult | null> {
return new Promise((res, rej) => {
parse(code, opts, (err, result) => {
if (err == null) res(result);
else rej(err);
});
});
}

View File

@@ -71,3 +71,16 @@ export function transformFromAstSync(
return runSync(config, code, ast);
}
export function transformFromAstAsync(
ast: AstRoot,
code: string,
opts: ?InputOptions,
): Promise<FileResult | null> {
return new Promise((res, rej) => {
transformFromAst(ast, code, opts, (err, result) => {
if (err == null) res(result);
else rej(err);
});
});
}

View File

@@ -73,3 +73,15 @@ export function transformFileSync(
return runSync(config, fs.readFileSync(filename, "utf8"));
}
export function transformFileAsync(
filename: string,
opts: ?InputOptions,
): Promise<FileResult | null> {
return new Promise((res, rej) => {
transformFile(filename, opts, (err, result) => {
if (err == null) res(result);
else rej(err);
});
});
}

View File

@@ -53,3 +53,15 @@ export function transformSync(
return runSync(config, code);
}
export function transformAsync(
code: string,
opts: ?InputOptions,
): Promise<FileResult | null> {
return new Promise((res, rej) => {
transform(code, opts, (err, result) => {
if (err == null) res(result);
else rej(err);
});
});
}