Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 2x 2x 7x 2x 2x 2x 2x 7x 7x 7x 3x 7x 7x 7x 2x 7x 7x 7x 7x 7x 5x 7x 7x | import { ContractSchema } from "../codegen/contractSchema";
import { Generator } from "../codegen/generator";
import { FieldConfig } from "../types";
export class TSContractConfigGen implements Generator {
constructor() { }
gen(schema: ContractSchema): string {
let out = `import { ContractConfig, Feature, FunctionConfig } from '../../types';\n\n`;
out += `const config: ContractConfig = {\n`;
if (schema.scopeName) {
out += ` "scopeName": "${schema.scopeName}",\n`;
}
out += ` "name": "${schema.name}",\n`;
out += ` "symbol": "${schema.symbol}",\n`;
if (schema.baseURI) {
out += ` "baseURI": "${schema.baseURI}",\n`;
}
if (schema.schemaURI) {
out += ` "schemaURI": "${schema.schemaURI}",\n`;
}
if (schema.imageURI) {
out += ` "imageURI": "${schema.imageURI}",\n`;
}
if (schema.features && schema.features.length > 0) {
out += ` "features": [${schema.features.map(f => `Feature.${f.toUpperCase()}`).join(', ')}],\n`;
}
if (schema.fields && schema.fields.length > 0) {
out += ` "fields": [\n`;
out += schema.fields.map(field => this.generateFieldConfig(field)).join(',\n');
out += `\n ]\n`;
} else E{
out += ` "fields": []\n`;
}
out += `}\n`;
out += `export default config;\n`;
return out;
}
private generateFieldConfig(field: FieldConfig): string {
let fieldConfig = ` {\n`;
fieldConfig += ` "id": ${field.id},\n`;
if (field.permissionId !== undefined && field.permissionId !== 0) {
fieldConfig += ` "permissionId": ${field.permissionId},\n`;
}
fieldConfig += ` "key": "${field.key}",\n`;
fieldConfig += ` "type": "${field.type}",\n`;
if (field.arrayLength !== undefined && field.arrayLength !== 1) {
fieldConfig += ` "arrayLength": ${field.arrayLength},\n`;
}
if (field.visibility) {
fieldConfig += ` "visibility": "${field.visibility}",\n`;
}
if (field.description) {
fieldConfig += ` "description": "${field.description}",\n`;
}
if (field.functionConfig) {
fieldConfig += ` "functionConfig": FunctionConfig.${field.functionConfig.toUpperCase()},\n`;
}
fieldConfig += ` }`;
return fieldConfig;
}
} |