1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Index = exports.index = void 0;
|
4 | const constants_1 = require("./internal/constants");
|
5 | const utils_1 = require("./internal/utils");
|
6 | const logSettings_1 = require("./logSettings");
|
7 | /**
|
8 | * Defines a index for this Class which will then be added to the Schema.
|
9 | * @param fields Which fields to index (if multiple fields are set, it will be a compound index)
|
10 | * @param options Options to pass to MongoDB driver's createIndex() function
|
11 | * @example Example:
|
12 | * ```ts
|
13 | * @index({ article: 1, user: 1 }, { unique: true })
|
14 | * class ClassName {}
|
15 | * ```
|
16 | */
|
17 | function index(fields, options) {
|
18 | return (target) => {
|
19 | var _a;
|
20 | logSettings_1.logger.info('Adding "%o" Indexes to %s', { fields, options }, (0, utils_1.getName)(target));
|
21 | const indices = Array.from((_a = Reflect.getMetadata(constants_1.DecoratorKeys.Index, target)) !== null && _a !== void 0 ? _a : []);
|
22 | indices.push({ fields, options });
|
23 | Reflect.defineMetadata(constants_1.DecoratorKeys.Index, indices, target);
|
24 | };
|
25 | }
|
26 | exports.index = index;
|
27 | exports.Index = index;
|
28 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0RBQXFEO0FBQ3JELDRDQUEyQztBQUMzQywrQ0FBdUM7QUFHdkM7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsS0FBSyxDQUFvQyxNQUFnQyxFQUFFLE9BQXlCO0lBQ2xILE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTs7UUFDckIsb0JBQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLE9BQU8sR0FBa0IsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFBLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBUEQsc0JBT0M7QUFHaUIsc0JBQUsifQ== |
\ | No newline at end of file |