1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.addFieldToIndex = exports.setIndexes = exports.getIndexes = void 0;
|
4 | require("reflect-metadata");
|
5 | const INDEXES_KEY = 'sequelize:indexes';
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | function getIndexes(target) {
|
11 | const { named = {}, unnamed = [] } = Reflect.getMetadata(INDEXES_KEY, target) || {};
|
12 | return { named: Object.assign({}, named), unnamed: [...unnamed] };
|
13 | }
|
14 | exports.getIndexes = getIndexes;
|
15 |
|
16 |
|
17 |
|
18 | function setIndexes(target, indexes) {
|
19 | Reflect.defineMetadata(INDEXES_KEY, indexes, target);
|
20 | }
|
21 | exports.setIndexes = setIndexes;
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | function addFieldToIndex(target, fieldOptions, indexOptions, indexId) {
|
27 | const indexes = getIndexes(target);
|
28 | const chosenId = typeof indexId !== 'undefined' ? indexId : indexOptions.name || indexes.unnamed.length;
|
29 | const indexStore = typeof chosenId === 'string' ? indexes.named : indexes.unnamed;
|
30 | if (!indexStore[chosenId])
|
31 | indexStore[chosenId] = Object.assign({}, indexOptions);
|
32 | const index = indexStore[chosenId];
|
33 | if (!index.fields)
|
34 | index.fields = [];
|
35 | index.fields.push(fieldOptions);
|
36 | setIndexes(target, indexes);
|
37 | return chosenId;
|
38 | }
|
39 | exports.addFieldToIndex = addFieldToIndex;
|
40 |
|
\ | No newline at end of file |