@typegoose/typegoose
Version:
Define Mongoose models using TypeScript classes
26 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.index = index;
exports.Index = index;
const constants_1 = require("./internal/constants");
const utils_1 = require("./internal/utils");
const logSettings_1 = require("./logSettings");
/**
* Defines a index for this Class which will then be added to the Schema.
* @param fields Which fields to index (if multiple fields are set, it will be a compound index)
* @param options Options to pass to MongoDB driver's createIndex() function
* @example Example:
* ```ts
* @index({ article: 1, user: 1 }, { unique: true })
* class ClassName {}
* ```
*/
function index(fields, options) {
return (target) => {
logSettings_1.logger.info('Adding "%o" Indexes to %s', { fields, options }, (0, utils_1.getName)(target));
const indices = Array.from(Reflect.getOwnMetadata(constants_1.DecoratorKeys.Index, target) ?? []);
indices.push({ fields, options });
Reflect.defineMetadata(constants_1.DecoratorKeys.Index, indices, target);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLHNCQU9DO0FBR2lCLHNCQUFLO0FBekJ2QixvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixLQUFLLENBQUMsTUFBZ0MsRUFBRSxPQUFzQjtJQUM1RSxPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUU7UUFDckIsb0JBQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLE9BQU8sR0FBa0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDIn0=