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 | logSettings_1.logger.info('Adding "%o" Indexes to %s', { fields, options }, (0, utils_1.getName)(target));
|
20 | const indices = Array.from(Reflect.getOwnMetadata(constants_1.DecoratorKeys.Index, target) ?? []);
|
21 | indices.push({ fields, options });
|
22 | Reflect.defineMetadata(constants_1.DecoratorKeys.Index, indices, target);
|
23 | };
|
24 | }
|
25 | exports.index = index;
|
26 | exports.Index = index;
|
27 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9EQUFxRDtBQUNyRCw0Q0FBMkM7QUFDM0MsK0NBQXVDO0FBR3ZDOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLEtBQUssQ0FBQyxNQUFnQyxFQUFFLE9BQXNCO0lBQzVFLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFrQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztBQUNKLENBQUM7QUFQRCxzQkFPQztBQUdpQixzQkFBSyJ9 |
\ | No newline at end of file |