UNPKG

@pebula/metap

Version:
536 lines (530 loc) 14.1 kB
import { __extends } from 'tslib'; import { isFunction } from '@pebula/utils'; import { targetStore as targetStore$1, TargetStore, RelationMetadata, PropMetadata, ExcludeMetadata, TargetMetadata } from '@pebula/metap/internal'; import { Relation, Prop, Exclude, Model, Identity } from '@pebula/metap'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var targetStore = targetStore$1; /** * @param {?} target * @return {?} */ function getTargetMetaStore(target) { return (/** @type {?} */ (targetStore.getTargetMeta(target))); } var TestTargetStore = /** @class */ (function (_super) { __extends(TestTargetStore, _super); function TestTargetStore() { return _super !== null && _super.apply(this, arguments) || this; } /** * @param {?} target * @return {?} */ TestTargetStore.getTargetMeta = /** * @param {?} target * @return {?} */ function (target) { return targetStore.builtTargets.get(target); }; /** * @template T * @param {?} target * @return {?} */ TestTargetStore.getModel = /** * @template T * @param {?} target * @return {?} */ function (target) { /** @type {?} */ var t = targetStore.getTargetMeta(target); return t && t.model(); }; /** * @return {?} */ TestTargetStore.clearAll = /** * @return {?} */ function () { targetStore.namedTargets.clear(); targetStore.builtTargets.clear(); targetStore.targets.clear(); targetStore.locals.clear(); }; /** * @param {?} target * @return {?} */ TestTargetStore.clear = /** * @param {?} target * @return {?} */ function (target) { /** @type {?} */ var meta = targetStore.builtTargets.get(target); if (meta) { targetStore.namedTargets.delete(meta.model().resName); targetStore.builtTargets.delete(target); targetStore.targets.get(target).clear(); } }; return TestTargetStore; }(TargetStore)); // @dynamic var TestTargetMetadata = /** @class */ (function (_super) { __extends(TestTargetMetadata, _super); function TestTargetMetadata() { return _super !== null && _super.apply(this, arguments) || this; } /** * @template T, Z * @param {?} type * @return {?} */ TestTargetMetadata.getFactory = /** * @template T, Z * @param {?} type * @return {?} */ function (type) { return (/** * @param {?} target * @param {?} key * @return {?} */ function (target, key) { /** @type {?} */ var t = getTargetMetaStore(target); if (t) { return t.config.get(type, key); } }); }; /** * @template T, Z * @param {?} type * @return {?} */ TestTargetMetadata.removeFactory = /** * @template T, Z * @param {?} type * @return {?} */ function (type) { return (/** * @param {?} target * @param {?} key * @return {?} */ function (target, key) { /** @type {?} */ var t = TestTargetStore.getTargetMeta(target); if (t) { return t.config.delete(type, key); } }); }; /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ TestTargetMetadata.addRelation = /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ function (target, key, meta) { Relation(meta)(target.prototype, key); }; /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ TestTargetMetadata.addProp = /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ function (target, key, meta) { Prop(meta)(target.prototype, key); }; /** * @param {?} target * @return {?} */ TestTargetMetadata.setExcludeClass = /** * @param {?} target * @return {?} */ function (target) { Exclude()(target); }; /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ TestTargetMetadata.addExclude = /** * @param {?} target * @param {?} key * @param {?=} meta * @return {?} */ function (target, key, meta) { Exclude(meta)(target.prototype, key); }; TestTargetMetadata.getRelation = TestTargetMetadata.getFactory(RelationMetadata); TestTargetMetadata.getProp = TestTargetMetadata.getFactory(PropMetadata); TestTargetMetadata.getExclude = TestTargetMetadata.getFactory(ExcludeMetadata); TestTargetMetadata.removeRelation = TestTargetMetadata.removeFactory(RelationMetadata); TestTargetMetadata.removeProp = TestTargetMetadata.removeFactory(PropMetadata); TestTargetMetadata.removeExclude = TestTargetMetadata.removeFactory(ExcludeMetadata); return TestTargetMetadata; }(TargetMetadata)); if (false) { /** @type {?} */ TestTargetMetadata.getRelation; /** @type {?} */ TestTargetMetadata.getProp; /** @type {?} */ TestTargetMetadata.getExclude; /** @type {?} */ TestTargetMetadata.removeRelation; /** @type {?} */ TestTargetMetadata.removeProp; /** @type {?} */ TestTargetMetadata.removeExclude; } /** * @template T, Z */ var /** * @template T, Z */ TargetMetaModifier = /** @class */ (function () { function TargetMetaModifier(target) { this.target = target; } /** * @return {?} */ TargetMetaModifier.prototype.build = /** * @return {?} */ function () { targetStore .getTargetMeta(this.target) .model() .build(); }; /** * @template THIS * @this {THIS} * @return {THIS} */ TargetMetaModifier.prototype.clear = /** * @template THIS * @this {THIS} * @return {THIS} */ function () { TestTargetStore.clear((/** @type {?} */ (this)).target); return (/** @type {?} */ (this)); }; /** * Registers a new model * * > Clears the model from the registry before trying to register. * @param metaArgs * @param type * @returns */ /** * Registers a new model * * > Clears the model from the registry before trying to register. * @template THIS,T * @this {THIS} * @param {?=} metaArgs * @return {THIS} */ TargetMetaModifier.prototype.setModel = /** * Registers a new model * * > Clears the model from the registry before trying to register. * @template THIS,T * @this {THIS} * @param {?=} metaArgs * @return {THIS} */ function (metaArgs) { if (metaArgs === void 0) { metaArgs = undefined; } (/** @type {?} */ (this)).clear(); Model(metaArgs)((/** @type {?} */ (this)).target); return (/** @type {?} */ (this)); }; /** * Set/Update/Remove the identity field. * If key is empty will remove identity. * @param key * @returns */ /** * Set/Update/Remove the identity field. * If key is empty will remove identity. * @template THIS * @this {THIS} * @param {?=} key * @return {THIS} */ TargetMetaModifier.prototype.setIdentity = /** * Set/Update/Remove the identity field. * If key is empty will remove identity. * @template THIS * @this {THIS} * @param {?=} key * @return {THIS} */ function (key) { Identity()((/** @type {?} */ (this)).target.prototype, key); return (/** @type {?} */ (this)); }; /** * Set exclusion/inclusion at the class level * @param exclude * @returns */ /** * Set exclusion/inclusion at the class level * @template THIS * @this {THIS} * @param {?} exclude * @return {THIS} */ TargetMetaModifier.prototype.setExclude = /** * Set exclusion/inclusion at the class level * @template THIS * @this {THIS} * @param {?} exclude * @return {THIS} */ function (exclude) { if (!exclude) { delete targetStore.getTargetMeta((/** @type {?} */ (this)).target).model().transformStrategy; } else { TestTargetMetadata.setExcludeClass((/** @type {?} */ (this)).target); } return (/** @type {?} */ (this)); }; /** * @template P * @param {?} key * @return {?} */ TargetMetaModifier.prototype.getProp = /** * @template P * @param {?} key * @return {?} */ function (key) { return TestTargetMetadata.getProp(this.target, key); }; /** * @template P * @param {?} key * @return {?} */ TargetMetaModifier.prototype.getType = /** * @template P * @param {?} key * @return {?} */ function (key) { return this.getProp(key).type; }; /** * @template P * @param {?} key * @return {?} */ TargetMetaModifier.prototype.getRelation = /** * @template P * @param {?} key * @return {?} */ function (key) { return TestTargetMetadata.getRelation(this.target, key); }; /** * @template P * @param {?} key * @return {?} */ TargetMetaModifier.prototype.getExclude = /** * @template P * @param {?} key * @return {?} */ function (key) { return TestTargetMetadata.getExclude(this.target, key); }; /** * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @return {THIS} */ TargetMetaModifier.prototype.relation = /** * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @return {THIS} */ function (key, meta) { TestTargetMetadata.removeRelation((/** @type {?} */ (this)).target, key); if (typeof meta !== 'boolean') { TestTargetMetadata.addRelation((/** @type {?} */ (this)).target, key.toString(), meta); } return (/** @type {?} */ (this)); }; /** * Add or remove prop, to remove set meta to false * @param key * @param meta * @param type * @returns */ /** * Add or remove prop, to remove set meta to false * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @param {?=} type * @return {THIS} */ TargetMetaModifier.prototype.prop = /** * Add or remove prop, to remove set meta to false * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @param {?=} type * @return {THIS} */ function (key, meta, type) { TestTargetMetadata.removeProp((/** @type {?} */ (this)).target, key); if ((!type && isFunction(meta)) || isFunction(type)) { ((/** @type {?} */ (Reflect))).defineMetadata('design:type', type || meta, (/** @type {?} */ (this)).target.prototype, key); } if (typeof meta !== 'boolean' && !isFunction(meta)) { TestTargetMetadata.addProp((/** @type {?} */ (this)).target, key.toString(), meta); } return (/** @type {?} */ (this)); }; /** * @template THIS * @this {THIS} * @param {...?} args * @return {THIS} */ TargetMetaModifier.prototype.props = /** * @template THIS * @this {THIS} * @param {...?} args * @return {THIS} */ function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } args.forEach((/** * @template THIS * @this {THIS} * @param {?} a * @return {THIS} */ function (a) { return (/** @type {?} */ (_this)).prop(a); })); return (/** @type {?} */ (this)); }; /** * Add or remove exclude, to remove set meta to false * @param key * @param meta * @returns */ /** * Add or remove exclude, to remove set meta to false * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @return {THIS} */ TargetMetaModifier.prototype.exclude = /** * Add or remove exclude, to remove set meta to false * @template THIS * @this {THIS} * @param {?} key * @param {?=} meta * @return {THIS} */ function (key, meta) { TestTargetMetadata.removeExclude((/** @type {?} */ (this)).target, key); if (typeof meta !== 'boolean') { TestTargetMetadata.addExclude((/** @type {?} */ (this)).target, key.toString(), meta); } return (/** @type {?} */ (this)); }; /** * @template T, Z * @param {?} target * @return {?} */ TargetMetaModifier.create = /** * @template T, Z * @param {?} target * @return {?} */ function (target) { return new TargetMetaModifier(target); }; return TargetMetaModifier; }()); if (false) { /** @type {?} */ TargetMetaModifier.prototype.target; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { TargetMetaModifier, TestTargetMetadata, TestTargetStore }; //# sourceMappingURL=pebula-metap-testing.js.map