@gmetrixr/rjson
Version:
(R)ecursive Json
76 lines (75 loc) • 3.78 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fn = exports.pn = exports.rn = exports.vn = exports.sn = exports.en = exports.getFactory = exports.emptyROM = exports.createRecord = exports.rtp = exports.RT = exports.rUtils = exports.RF = exports.r = exports.R = void 0;
const R = __importStar(require("./R"));
exports.R = R;
const R_1 = require("./R");
Object.defineProperty(exports, "RT", { enumerable: true, get: function () { return R_1.RT; } });
Object.defineProperty(exports, "rtp", { enumerable: true, get: function () { return R_1.rtp; } });
Object.defineProperty(exports, "createRecord", { enumerable: true, get: function () { return R_1.createRecord; } });
Object.defineProperty(exports, "emptyROM", { enumerable: true, get: function () { return R_1.emptyROM; } });
const RecordFactory_1 = require("./R/RecordFactory");
const ElementFactory_1 = require("./recordFactories/ElementFactory");
const ProjectFactory_1 = require("./recordFactories/ProjectFactory");
const RF = __importStar(require("./recordFactories"));
exports.RF = RF;
const definitions_1 = require("./definitions");
Object.defineProperty(exports, "en", { enumerable: true, get: function () { return definitions_1.en; } });
Object.defineProperty(exports, "sn", { enumerable: true, get: function () { return definitions_1.sn; } });
Object.defineProperty(exports, "vn", { enumerable: true, get: function () { return definitions_1.vn; } });
Object.defineProperty(exports, "rn", { enumerable: true, get: function () { return definitions_1.rn; } });
Object.defineProperty(exports, "pn", { enumerable: true, get: function () { return definitions_1.pn; } });
Object.defineProperty(exports, "fn", { enumerable: true, get: function () { return definitions_1.fn; } });
/**
* Use r.record(json) for all RecordNode type objects, except the below ones
* For project, scene, rule and element only there are overridden factories
*/
const r = {
"record": (json) => new R.RecordFactory(json),
"project": (json) => new RF.ProjectFactory(json),
"scene": (json) => new RF.SceneFactory(json),
"element": (json) => new RF.ElementFactory(json),
};
exports.r = r;
const rUtils = {
ElementUtils: ElementFactory_1.ElementUtils,
ProjectUtils: ProjectFactory_1.ProjectUtils,
RecordUtils: RecordFactory_1.RecordUtils,
};
exports.rUtils = rUtils;
const getFactory = (rJson) => {
switch (rJson.type) {
case R_1.RT.project:
return new RF.ProjectFactory(rJson);
case R_1.RT.scene:
return new RF.SceneFactory(rJson);
case R_1.RT.element:
return new RF.ElementFactory(rJson);
default:
return new R.RecordFactory(rJson);
}
};
exports.getFactory = getFactory;