summaryrefslogtreecommitdiff
path: root/chromium/third_party/node/node_modules/@babel/types/scripts/generators/asserts.js
diff options
context:
space:
mode:
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.js50
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;
+}