Skip to content

Commit

Permalink
loosen defineType typings
Browse files Browse the repository at this point in the history
The AST typings are generated from defineType calls, so defineType should accept a string as type.
  • Loading branch information
JLHwung committed Jun 20, 2022
1 parent 626983b commit a920dc3
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 4 deletions.
1 change: 0 additions & 1 deletion packages/babel-types/src/definitions/misc.ts
Expand Up @@ -9,7 +9,6 @@ import { PLACEHOLDERS } from "./placeholders";
const defineType = defineAliasedType("Miscellaneous");

if (!process.env.BABEL_8_BREAKING) {
// @ts-ignore Babel 7 AST
defineType("Noop", {
visitor: [],
});
Expand Down
6 changes: 3 additions & 3 deletions packages/babel-types/src/definitions/utils.ts
Expand Up @@ -278,7 +278,7 @@ const validFieldKeys = ["default", "optional", "validate"];

// Wraps defineType to ensure these aliases are included.
export function defineAliasedType(...aliases: string[]) {
return (type: NodeTypes, opts: DefineTypeOpts = {}) => {
return (type: string, opts: DefineTypeOpts = {}) => {
let defined = opts.aliases;
if (!defined) {
if (opts.inherits) defined = store[opts.inherits].aliases?.slice();
Expand All @@ -291,7 +291,7 @@ export function defineAliasedType(...aliases: string[]) {
};
}

export default function defineType(type: NodeTypes, opts: DefineTypeOpts = {}) {
export default function defineType(type: string, opts: DefineTypeOpts = {}) {
const inherits = (opts.inherits && store[opts.inherits]) || {};

let fields = opts.fields;
Expand Down Expand Up @@ -373,4 +373,4 @@ export default function defineType(type: NodeTypes, opts: DefineTypeOpts = {}) {
store[type] = opts;
}

const store = {} as Record<NodeTypes, DefineTypeOpts>;
const store = {} as Record<string, DefineTypeOpts>;

0 comments on commit a920dc3

Please sign in to comment.