UNPKG

@patchworkdev/common

Version:

Patchwork Development Kit

19 lines (18 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaFuncGen = void 0; const generator_1 = require("../generator"); class SchemaFuncGen { gen(schema) { const fieldEntries = schema.storage.fields.map((entry, index) => { return `entries[${index}] = MetadataSchemaEntry(${entry.id}, ${entry.permissionId ? entry.permissionId : 0}, FieldType.${entry.fieldTypeSolidityEnum}, ${entry.arrayLength}, FieldVisibility.${entry.visibility.toUpperCase()}, ${entry.slot}, ${entry.offset}, "${entry.key}");`; }); return (0, generator_1.ind)(4, `` + `function schema() pure external override returns (MetadataSchema memory) {\n` + ` MetadataSchemaEntry[] memory entries = new MetadataSchemaEntry[](${schema.storage.fields.length});\n` + ` ${fieldEntries.join("\n ")}\n` + ` return MetadataSchema(1, entries);\n` + `}\n`); } } exports.SchemaFuncGen = SchemaFuncGen;