concepts-parser
Version:
Concepts Extracting from text
46 lines (45 loc) • 1.26 kB
JavaScript
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;
;