diff options
Diffstat (limited to 'chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js')
-rw-r--r-- | chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js b/chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js new file mode 100644 index 00000000000..bdfd94857fc --- /dev/null +++ b/chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js @@ -0,0 +1,50 @@ +import definitions from "../../lib/definitions/index.js"; + +function addAssertHelper(type) { + const result = + definitions.NODE_FIELDS[type] || definitions.FLIPPED_ALIAS_KEYS[type] + ? `node is t.${type}` + : "boolean"; + + return `export function assert${type}(node: object | null | undefined, opts?: object | null): asserts ${ + result === "boolean" ? "node" : result + } { + assert("${type}", node, opts) } + `; +} + +export default function generateAsserts() { + let output = `/* + * This file is auto-generated! Do not modify it directly. + * To re-generate run 'make build' + */ +import is from "../../validators/is"; +import type * as t from "../.."; + +function assert(type: string, node: any, opts?: any): void { + if (!is(type, node, opts)) { + throw new Error( + \`Expected type "\${type}" with option \${JSON.stringify(opts)}, \` + + \`but instead got "\${node.type}".\`, + ); + } +}\n\n`; + + Object.keys(definitions.VISITOR_KEYS).forEach(type => { + output += addAssertHelper(type); + }); + + Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => { + output += addAssertHelper(type); + }); + + Object.keys(definitions.DEPRECATED_KEYS).forEach(type => { + const newType = definitions.DEPRECATED_KEYS[type]; + output += `export function assert${type}(node: any, opts: any): void { + console.trace("The node type ${type} has been renamed to ${newType}"); + assert("${type}", node, opts); +}\n`; + }); + + return output; +} |