UNPKG

1.99 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Index = exports.index = void 0;
4const constants_1 = require("./internal/constants");
5const utils_1 = require("./internal/utils");
6const 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 */
17function 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}
25exports.index = index;
26exports.Index = index;
27//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9EQUFxRDtBQUNyRCw0Q0FBMkM7QUFDM0MsK0NBQXVDO0FBR3ZDOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLEtBQUssQ0FBQyxNQUFnQyxFQUFFLE9BQXNCO0lBQzVFLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFrQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztBQUNKLENBQUM7QUFQRCxzQkFPQztBQUdpQixzQkFBSyJ9
\No newline at end of file