@gmetrixr/rjson
Version:
(R)ecursive Json
34 lines (33 loc) • 1.33 kB
JavaScript
;
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;