UNPKG

clonus

Version:

Ultimate object cloning library.

40 lines 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassCloner = exports.BaseClassCloner = void 0; const makeClone_1 = require("./makeClone"); class BaseClassCloner { constructor(klass) { this.klass = klass; } canClone(input) { return input instanceof this.klass; } } exports.BaseClassCloner = BaseClassCloner; var ClassCloner; (function (ClassCloner) { function newForClass(klass, factory, options) { const clonerClass = forClass(klass, factory, options); return new clonerClass(); } ClassCloner.newForClass = newForClass; function forClass(klass, factory, options) { return class DynamicClassCloner extends BaseClassCloner { constructor() { super(klass); } clone(input, context) { if (!this.canClone(input)) { throw "Can not clone this input."; } const result = factory(input); if (!(options === null || options === void 0 ? void 0 : options.ignoreKeys)) { (0, makeClone_1.cloneObjectKeys)(input, result, context); } return result; } }; } ClassCloner.forClass = forClass; })(ClassCloner = exports.ClassCloner || (exports.ClassCloner = {})); //# sourceMappingURL=classCloner.js.map