UNPKG

@pebula/metap

Version:
82 lines 5.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { MixinFree } from '@pebula/utils'; /** @type {?} */ var ModelClassMark = Symbol('ModelClass instance mark'); /** * @record * @template T */ export function ModelClass() { } /** * @template T */ var /** * @template T */ ModelClassBase = /** @class */ (function () { function ModelClassBase() { } /** * @return {?} */ ModelClassBase.prototype.toString = /** * @return {?} */ function () { return this.constructor.name; }; /** * @param {?} instance * @return {?} */ ModelClassBase.instanceOf = /** * @param {?} instance * @return {?} */ function (instance) { return instance[ModelClassMark] === true; }; /** * @template T, Z * @param {?} model * @return {?} */ ModelClassBase.factory = /** * @template T, Z * @param {?} model * @return {?} */ function (model) { var ModelClass = /** @class */ (function (_super) { tslib_1.__extends(ModelClass, _super); function ModelClass() { return _super !== null && _super.apply(this, arguments) || this; } return ModelClass; }(model)); Object.defineProperty(ModelClass, 'name', { configurable: true, value: model.name }); Object.defineProperty(ModelClass, Symbol.hasInstance, { value: ModelClassBase.instanceOf }); MixinFree(ModelClass, ModelClassBase, 'proto'); // TODO: copy other TS reflection info /** @type {?} */ var paramTypes = ((/** @type {?} */ (Reflect))).getOwnMetadata('design:paramtypes', model); ((/** @type {?} */ (Reflect))).defineMetadata('design:paramtypes', paramTypes, ModelClass); return (/** @type {?} */ (ModelClass)); }; return ModelClassBase; }()); /** * @template T */ export { ModelClassBase }; Object.defineProperty(ModelClassBase.prototype, ModelClassMark, { value: true }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcGVidWxhL21ldGFwL2ludGVybmFsLyIsInNvdXJjZXMiOlsibGliL21vZGVsL21vZGVsLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7SUFFakQsY0FBYyxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQzs7Ozs7QUFFekQsZ0NBQWlDOzs7O0FBRWpDOzs7O0lBQUE7SUE0QkEsQ0FBQzs7OztJQTNCQyxpQ0FBUTs7O0lBQVI7UUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7Ozs7O0lBRU0seUJBQVU7Ozs7SUFBakIsVUFBa0IsUUFBYTtRQUM3QixPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDM0MsQ0FBQzs7Ozs7O0lBRU0sc0JBQU87Ozs7O0lBQWQsVUFBcUIsS0FBeUI7UUFDNUM7WUFBeUIsc0NBQTBCO1lBQW5EOztZQUFxRCxDQUFDO1lBQUQsaUJBQUM7UUFBRCxDQUFDLEFBQXRELENBQTBCLEtBQUssR0FBdUI7UUFFdEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3BELEtBQUssRUFBRSxjQUFjLENBQUMsVUFBVTtTQUNqQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQzs7O1lBR3pDLFVBQVUsR0FBRyxDQUFDLG1CQUFBLE9BQU8sRUFBTyxDQUFDLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQztRQUM5RSxDQUFDLG1CQUFBLE9BQU8sRUFBTyxDQUFDLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUU3RSxPQUFPLG1CQUFBLFVBQVUsRUFBTyxDQUFDO0lBQzNCLENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUE1QkQsSUE0QkM7Ozs7O0FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWl4aW5GcmVlLCBDb25zdHJ1Y3RvciB9IGZyb20gJ0BwZWJ1bGEvdXRpbHMnO1xuXG5jb25zdCBNb2RlbENsYXNzTWFyayA9IFN5bWJvbCgnTW9kZWxDbGFzcyBpbnN0YW5jZSBtYXJrJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxDbGFzczxUPiB7fVxuXG5leHBvcnQgY2xhc3MgTW9kZWxDbGFzc0Jhc2U8VD4gaW1wbGVtZW50cyBNb2RlbENsYXNzPFQ+IHtcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgc3RhdGljIGluc3RhbmNlT2YoaW5zdGFuY2U6IGFueSk6IGluc3RhbmNlIGlzIE1vZGVsQ2xhc3NCYXNlPGFueT4ge1xuICAgIHJldHVybiBpbnN0YW5jZVtNb2RlbENsYXNzTWFya10gPT09IHRydWU7XG4gIH1cblxuICBzdGF0aWMgZmFjdG9yeTxULCBaPihtb2RlbDogWiAmIENvbnN0cnVjdG9yPFQ+KTogWiAmIENvbnN0cnVjdG9yPE1vZGVsQ2xhc3NCYXNlPFQ+PiB7XG4gICAgY2xhc3MgTW9kZWxDbGFzcyBleHRlbmRzIChtb2RlbCBhcyBDb25zdHJ1Y3Rvcjx7fT4pIHt9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTW9kZWxDbGFzcywgJ25hbWUnLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogbW9kZWwubmFtZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNb2RlbENsYXNzLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHtcbiAgICAgIHZhbHVlOiBNb2RlbENsYXNzQmFzZS5pbnN0YW5jZU9mXG4gICAgfSk7XG5cbiAgICBNaXhpbkZyZWUoTW9kZWxDbGFzcywgTW9kZWxDbGFzc0Jhc2UsICdwcm90bycpO1xuXG4gICAgLy8gVE9ETzogY29weSBvdGhlciBUUyByZWZsZWN0aW9uIGluZm9cbiAgICBjb25zdCBwYXJhbVR5cGVzID0gKFJlZmxlY3QgYXMgYW55KS5nZXRPd25NZXRhZGF0YSgnZGVzaWduOnBhcmFtdHlwZXMnLCBtb2RlbCk7XG4gICAgKFJlZmxlY3QgYXMgYW55KS5kZWZpbmVNZXRhZGF0YSgnZGVzaWduOnBhcmFtdHlwZXMnLCBwYXJhbVR5cGVzLCBNb2RlbENsYXNzKTtcblxuICAgIHJldHVybiBNb2RlbENsYXNzIGFzIGFueTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoTW9kZWxDbGFzc0Jhc2UucHJvdG90eXBlLCBNb2RlbENsYXNzTWFyaywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdfQ==