UNPKG

@gmetrixr/rjson

Version:
34 lines (33 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRecord = exports.emptyROM = void 0; const RecordTypes_1 = require("./RecordTypes"); const gdash_1 = require("@gmetrixr/gdash"); const { generateId } = gdash_1.jsUtils; /** * generates an empty RecordOrderedMap */ const emptyROM = () => { return { order: [], map: {} }; }; exports.emptyROM = emptyROM; /** * Creates an object of any of the known record types * id is optional - creates an id if not given * name is optional - used only in case this rcord type needs a name. In case not given, can also use once from rt definitions. */ const createRecord = (type, id, name) => { const node = { id: id !== null && id !== void 0 ? id : generateId(), type: type, //name: name ?? recordTypeDefinitions[type].defaultName, Optional. So we check below if it is even needed. props: {}, //records: {}, //Optional, so don't set here. Automatically set when first record is added. }; //Add name only if this RecordType uses name if (RecordTypes_1.recordTypeDefinitions[type].defaultName !== undefined) { node.name = name !== null && name !== void 0 ? name : RecordTypes_1.recordTypeDefinitions[type].defaultName; } return node; }; exports.createRecord = createRecord;