Dashboard
PHP:
8.2.30
OS:
Linux
User:
dh_nv8b2m
/
/
usr
/
share
/
nodejs
/
@webassemblyjs
/
ast
/
scripts
📤 Upload
📝 New File
📁 New Folder
Close
Editing: generateTypeDefinitions.js
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();
Save
Cancel