UNPKG

2.95 kBJavaScriptView Raw
1"use strict";
2var Log = require("../log");
3var Constants_1 = require("../Constants");
4var MetadataManager_1 = require("../MetadataManager");
5var log = Log.create(__filename);
6/**
7 * Decorate the repo for a given model
8 *
9 * @param opts for the repository
10 * @return {function(Function)}
11 */
12function RepoDescriptor(opts) {
13 if (opts === void 0) { opts = {}; }
14 return function (constructor) {
15 Reflect.defineMetadata(Constants_1.TypeStoreRepoKey, opts, constructor);
16 };
17}
18exports.RepoDescriptor = RepoDescriptor;
19/**
20 * Get finder options for a specific
21 * repo and finder
22 *
23 * @param repo
24 * @param key
25 * @returns {IFinderOptions}
26 */
27function getFinderOpts(repo, key) {
28 return MetadataManager_1.getMetadata(Constants_1.TypeStoreFinderKey, repo, key);
29}
30exports.getFinderOpts = getFinderOpts;
31/**
32 * Describe a finder function that has to be implemented by the store
33 *
34 * @returns {function(any, string, TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any>}
35 */
36function FinderDescriptor(opts) {
37 if (opts === void 0) { opts = {}; }
38 return function (target, propertyKey, descriptor) {
39 // Add the options to metadata
40 Reflect.defineMetadata(Constants_1.TypeStoreFinderKey, opts, target, propertyKey);
41 // Now add the finders to the repo metadata
42 var finders = Reflect.getMetadata(Constants_1.TypeStoreFindersKey, target) || [];
43 finders.push(propertyKey);
44 Reflect.defineMetadata(Constants_1.TypeStoreFindersKey, finders, target);
45 //return descriptor
46 };
47}
48exports.FinderDescriptor = FinderDescriptor;
49//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb0RlY29yYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRpb25zL1JlcG9EZWNvcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNEJBQTZCO0FBRzdCLDBDQU1zQjtBQUd0QixzREFBOEM7QUFFOUMsSUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUVsQzs7Ozs7R0FLRztBQUNILHdCQUErQixJQUFzQjtJQUF0QixxQkFBQSxFQUFBLFNBQXNCO0lBR3BELE1BQU0sQ0FBQyxVQUFVLFdBQW9CO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQUMsNEJBQWdCLEVBQUMsSUFBSSxFQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzFELENBQUMsQ0FBQTtBQUNGLENBQUM7QUFORCx3Q0FNQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx1QkFBOEIsSUFBYyxFQUFDLEdBQVU7SUFDdEQsTUFBTSxDQUFDLDZCQUFXLENBQ2pCLDhCQUFrQixFQUNsQixJQUFJLEVBQ0osR0FBRyxDQUNILENBQUE7QUFDRixDQUFDO0FBTkQsc0NBTUM7QUFFRDs7OztHQUlHO0FBQ0gsMEJBQWlDLElBQXdCO0lBQXhCLHFCQUFBLEVBQUEsU0FBd0I7SUFFeEQsTUFBTSxDQUFDLFVBQ04sTUFBUSxFQUNSLFdBQWtCLEVBQ2xCLFVBQXVDO1FBRXZDLDhCQUE4QjtRQUM5QixPQUFPLENBQUMsY0FBYyxDQUFDLDhCQUFrQixFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsV0FBVyxDQUFDLENBQUE7UUFFbEUsMkNBQTJDO1FBQzNDLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsK0JBQW1CLEVBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3JFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDekIsT0FBTyxDQUFDLGNBQWMsQ0FBQywrQkFBbUIsRUFBQyxPQUFPLEVBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUQsbUJBQW1CO0lBQ3BCLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFoQkQsNENBZ0JDIn0=
\No newline at end of file