UNPKG

@knorm/knorm

Version:

A JavaScript ORM written using ES6 classes

37 lines (36 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Model_1 = require("./Model"); class Virtual { constructor({ name, model, descriptor } = {}) { if (!name) { throw new Error('Virtual requires a name'); } if (!model || !(model.prototype instanceof Model_1.Model)) { throw new Error(`Virtual '${name}' requires a subclass of Model`); } if (typeof descriptor === 'function') { descriptor = { get: descriptor, }; } if (!descriptor.get && !descriptor.set) { throw new Error(`Virtual '${model.name}.${name}' has no setter or getter`); } if (descriptor.get) { if (typeof descriptor.get !== 'function') { throw new Error(`Getter for virtual '${model.name}.${name}' is not a function`); } this.get = descriptor.get; } if (descriptor.set) { if (typeof descriptor.set !== 'function') { throw new Error(`Setter for virtual '${model.name}.${name}' is not a function`); } this.set = descriptor.set; } this.name = name; this.model = model; } } exports.Virtual = Virtual;