UNPKG

concepts-parser

Version:
46 lines (45 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function checkField(name) { if (typeof name !== "string") { throw new Error("Invalid model field name"); } } class Model { constructor(fields) { this._fields = {}; if (fields) { if (typeof fields !== "object") { throw new Error("`fields` param must be an oject"); } for (let prop in fields) { this.set(prop, fields[prop]); } } } get(fieldName) { checkField(fieldName); return this._fields[fieldName]; } set(fieldName, fieldValue) { checkField(fieldName); if (fieldValue === undefined) { delete this._fields[fieldName]; } else { this._fields[fieldName] = fieldValue; } } toJSON() { const fields = {}; for (let prop in this._fields) { let value = this._fields[prop]; if (value && typeof value.toJSON === "function") { value = value.toJSON(); } fields[prop] = value; } return fields; } } exports.Model = Model;