Skip to content

Commit

Permalink
update generate builders to have function name starting flow lowercase
Browse files Browse the repository at this point in the history
  • Loading branch information
zxbodya committed Jun 6, 2020
1 parent 6c9beda commit a684d80
Show file tree
Hide file tree
Showing 2 changed files with 572 additions and 555 deletions.
21 changes: 18 additions & 3 deletions packages/babel-types/scripts/generators/generateBuilders.js
Expand Up @@ -11,15 +11,30 @@ module.exports = function generateBuilders() {
*/
import builder from "../builder";\n\n`;

const reservedNames = new Set(["super", "import"]);
Object.keys(definitions.BUILDER_KEYS).forEach(type => {
output += `export function ${type}(...args: Array<any>): Object { return builder("${type}", ...args); }
export { ${type} as ${formatBuilderName(type)} };\n`;
const formatedBuilderName = formatBuilderName(type);
const formatedBuilderNameLocal = reservedNames.has(formatedBuilderName)
? `_${formatedBuilderName}`
: formatedBuilderName;
output += `${
formatedBuilderNameLocal === formatedBuilderName ? "export " : ""
}function ${formatedBuilderNameLocal}(...args: Array<any>): Object { return builder("${type}", ...args); }\n`;
// This is needed for backwards compatibility.
// It should be removed in the next major version.
// arrayExpression -> ArrayExpression
output += `export { ${formatedBuilderNameLocal} as ${type} };\n`;
if (formatedBuilderNameLocal !== formatedBuilderName) {
output += `export { ${formatedBuilderNameLocal} as ${formatedBuilderName} };\n`;
}

// This is needed for backwards compatibility.
// It should be removed in the next major version.
// JSXIdentifier -> jSXIdentifier
if (/^[A-Z]{2}/.test(type)) {
output += `export { ${type} as ${lowerFirst(type)} }\n`;
output += `export { ${formatedBuilderNameLocal} as ${lowerFirst(
type
)} }\n`;
}
});

Expand Down

0 comments on commit a684d80

Please sign in to comment.