| Server IP : 107.13.46.68 / Your IP : 216.73.216.232 Web Server : Apache/2.4.58 (Ubuntu) System : Linux mariOS 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec 5 13:09:44 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/node_modules/@webassemblyjs/ast/scripts/ |
Upload File : |
const definitions = require("../src/definitions");
const flatMap = require("array.prototype.flatmap");
const { typeSignature, mapProps, iterateProps, unique } = require("./util");
const stdout = process.stdout;
function params(fields) {
return mapProps(fields).map(typeSignature).join(",");
}
function generate() {
stdout.write(`
// @flow
/* eslint no-unused-vars: off */
// THIS FILE IS AUTOGENERATED
// see scripts/generateTypeDefinitions.js
`);
// generate union types
const unionTypes = unique(
flatMap(
mapProps(definitions).filter((d) => d.unionType),
(d) => d.unionType
)
);
unionTypes.forEach((unionType) => {
stdout.write(
`type ${unionType} = ` +
mapProps(definitions)
.filter((d) => d.unionType && d.unionType.includes(unionType))
.map((d) => d.name)
.join("|") +
";\n\n"
);
});
// generate the type definitions
iterateProps(definitions, (typeDef) => {
stdout.write(`type ${typeDef.name} = {
...BaseNode,
type: "${typeDef.name}",
${params(typeDef.fields)}
};\n\n`);
});
}
generate();