@decaf-ts/for-couchdb 0.4.28 → 0.4.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-couchdb.cjs +1 -1
- package/dist/for-couchdb.cjs.map +1 -1
- package/dist/for-couchdb.js +1 -1
- package/dist/for-couchdb.js.map +1 -1
- package/lib/constants.cjs +2 -0
- package/lib/constants.d.ts +2 -0
- package/lib/constants.js.map +1 -1
- package/lib/decorators.cjs +168 -0
- package/lib/decorators.d.ts +11 -0
- package/lib/decorators.js.map +1 -0
- package/lib/esm/constants.d.ts +2 -0
- package/lib/esm/constants.js +2 -0
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/decorators.d.ts +11 -0
- package/lib/esm/decorators.js +158 -0
- package/lib/esm/decorators.js.map +1 -0
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +3 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/indexes/generator.js +6 -0
- package/lib/esm/indexes/generator.js.map +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -1
- package/lib/esm/views/generator.d.ts +7 -0
- package/lib/esm/views/generator.js +251 -0
- package/lib/esm/views/generator.js.map +1 -0
- package/lib/esm/views/index.d.ts +2 -0
- package/lib/esm/views/index.js +3 -0
- package/lib/esm/views/index.js.map +1 -0
- package/lib/esm/views/types.d.ts +44 -0
- package/lib/esm/views/types.js +2 -0
- package/lib/esm/views/types.js.map +1 -0
- package/lib/index.cjs +3 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js.map +1 -1
- package/lib/indexes/generator.cjs +6 -0
- package/lib/indexes/generator.js.map +1 -1
- package/lib/utils.cjs +1 -1
- package/lib/utils.js.map +1 -1
- package/lib/views/generator.cjs +256 -0
- package/lib/views/generator.d.ts +7 -0
- package/lib/views/generator.js.map +1 -0
- package/lib/views/index.cjs +19 -0
- package/lib/views/index.d.ts +2 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/types.cjs +3 -0
- package/lib/views/types.d.ts +44 -0
- package/lib/views/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultSeparator = void 0;
|
|
4
|
+
exports.view = view;
|
|
5
|
+
exports.groupBy = groupBy;
|
|
6
|
+
exports.count = count;
|
|
7
|
+
exports.sum = sum;
|
|
8
|
+
exports.max = max;
|
|
9
|
+
exports.min = min;
|
|
10
|
+
exports.distinct = distinct;
|
|
11
|
+
const core_1 = require("@decaf-ts/core");
|
|
12
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
13
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
14
|
+
Object.defineProperty(exports, "DefaultSeparator", { enumerable: true, get: function () { return db_decorators_1.DefaultSeparator; } });
|
|
15
|
+
const constants_1 = require("./constants.cjs");
|
|
16
|
+
function nextViewSlot(target, key, attr) {
|
|
17
|
+
const existing = decoration_1.Metadata.get(target.constructor, key) || {};
|
|
18
|
+
const attrBucket = existing[attr] || {};
|
|
19
|
+
const next = Object.keys(attrBucket).length + 1;
|
|
20
|
+
return String(next);
|
|
21
|
+
}
|
|
22
|
+
function applyViewDecorator(metaKey, kind, opts) {
|
|
23
|
+
return function decorator(target, attr) {
|
|
24
|
+
const slot = opts?.name || nextViewSlot(target, metaKey, attr);
|
|
25
|
+
const key = decoration_1.Metadata.key(metaKey, attr, slot);
|
|
26
|
+
const value = {
|
|
27
|
+
...(opts || {}),
|
|
28
|
+
kind,
|
|
29
|
+
attribute: attr,
|
|
30
|
+
};
|
|
31
|
+
return (0, decoration_1.propMetadata)(key, value)(target, attr);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function view(opts) {
|
|
35
|
+
return decoration_1.Decoration.for(constants_1.CouchDBKeys.VIEW)
|
|
36
|
+
.define({
|
|
37
|
+
decorator: function view(o) {
|
|
38
|
+
return applyViewDecorator(constants_1.CouchDBKeys.VIEW, "view", o);
|
|
39
|
+
},
|
|
40
|
+
args: [opts],
|
|
41
|
+
})
|
|
42
|
+
.apply();
|
|
43
|
+
}
|
|
44
|
+
function groupBy(compositionsOrOptions, nameOrOptions) {
|
|
45
|
+
let opts = {};
|
|
46
|
+
if (Array.isArray(compositionsOrOptions)) {
|
|
47
|
+
opts.compositions = compositionsOrOptions;
|
|
48
|
+
}
|
|
49
|
+
else if (typeof compositionsOrOptions === "string") {
|
|
50
|
+
opts.name = compositionsOrOptions;
|
|
51
|
+
}
|
|
52
|
+
else if (compositionsOrOptions) {
|
|
53
|
+
opts = compositionsOrOptions;
|
|
54
|
+
}
|
|
55
|
+
if (typeof nameOrOptions === "string") {
|
|
56
|
+
opts.name = nameOrOptions;
|
|
57
|
+
}
|
|
58
|
+
else if (nameOrOptions) {
|
|
59
|
+
opts = Object.assign({}, opts, nameOrOptions);
|
|
60
|
+
}
|
|
61
|
+
return decoration_1.Decoration.for(core_1.Operator.GROUP_BY)
|
|
62
|
+
.define({
|
|
63
|
+
decorator: function groupBy(o) {
|
|
64
|
+
return applyViewDecorator(core_1.Operator.GROUP_BY, "groupBy", o);
|
|
65
|
+
},
|
|
66
|
+
args: [opts],
|
|
67
|
+
})
|
|
68
|
+
.apply();
|
|
69
|
+
}
|
|
70
|
+
function count(valueOrCondition, options) {
|
|
71
|
+
let opts = {};
|
|
72
|
+
if (valueOrCondition instanceof core_1.Condition) {
|
|
73
|
+
opts.condition = valueOrCondition;
|
|
74
|
+
}
|
|
75
|
+
else if (typeof valueOrCondition === "object" && valueOrCondition) {
|
|
76
|
+
opts = valueOrCondition;
|
|
77
|
+
}
|
|
78
|
+
else if (typeof valueOrCondition !== "undefined") {
|
|
79
|
+
opts.value = valueOrCondition;
|
|
80
|
+
}
|
|
81
|
+
if (options)
|
|
82
|
+
opts = Object.assign({}, opts, options);
|
|
83
|
+
return decoration_1.Decoration.for(core_1.Operator.COUNT)
|
|
84
|
+
.define({
|
|
85
|
+
decorator: function count(o) {
|
|
86
|
+
return applyViewDecorator(core_1.Operator.COUNT, "count", o);
|
|
87
|
+
},
|
|
88
|
+
args: [opts],
|
|
89
|
+
})
|
|
90
|
+
.apply();
|
|
91
|
+
}
|
|
92
|
+
function sum(conditionOrOptions, options) {
|
|
93
|
+
let opts = {};
|
|
94
|
+
if (conditionOrOptions instanceof core_1.Condition) {
|
|
95
|
+
opts.condition = conditionOrOptions;
|
|
96
|
+
}
|
|
97
|
+
else if (conditionOrOptions) {
|
|
98
|
+
opts = conditionOrOptions;
|
|
99
|
+
}
|
|
100
|
+
if (options)
|
|
101
|
+
opts = Object.assign({}, opts, options);
|
|
102
|
+
return decoration_1.Decoration.for(core_1.Operator.SUM)
|
|
103
|
+
.define({
|
|
104
|
+
decorator: function sum(o) {
|
|
105
|
+
return applyViewDecorator(core_1.Operator.SUM, "sum", o);
|
|
106
|
+
},
|
|
107
|
+
args: [opts],
|
|
108
|
+
})
|
|
109
|
+
.apply();
|
|
110
|
+
}
|
|
111
|
+
function max(conditionOrOptions, options) {
|
|
112
|
+
let opts = {};
|
|
113
|
+
if (conditionOrOptions instanceof core_1.Condition) {
|
|
114
|
+
opts.condition = conditionOrOptions;
|
|
115
|
+
}
|
|
116
|
+
else if (conditionOrOptions) {
|
|
117
|
+
opts = conditionOrOptions;
|
|
118
|
+
}
|
|
119
|
+
if (options)
|
|
120
|
+
opts = Object.assign({}, opts, options);
|
|
121
|
+
return decoration_1.Decoration.for(core_1.Operator.MAX)
|
|
122
|
+
.define({
|
|
123
|
+
decorator: function max(o) {
|
|
124
|
+
return applyViewDecorator(core_1.Operator.MAX, "max", o);
|
|
125
|
+
},
|
|
126
|
+
args: [opts],
|
|
127
|
+
})
|
|
128
|
+
.apply();
|
|
129
|
+
}
|
|
130
|
+
function min(conditionOrOptions, options) {
|
|
131
|
+
let opts = {};
|
|
132
|
+
if (conditionOrOptions instanceof core_1.Condition) {
|
|
133
|
+
opts.condition = conditionOrOptions;
|
|
134
|
+
}
|
|
135
|
+
else if (conditionOrOptions) {
|
|
136
|
+
opts = conditionOrOptions;
|
|
137
|
+
}
|
|
138
|
+
if (options)
|
|
139
|
+
opts = Object.assign({}, opts, options);
|
|
140
|
+
return decoration_1.Decoration.for(core_1.Operator.MIN)
|
|
141
|
+
.define({
|
|
142
|
+
decorator: function min(o) {
|
|
143
|
+
return applyViewDecorator(core_1.Operator.MIN, "min", o);
|
|
144
|
+
},
|
|
145
|
+
args: [opts],
|
|
146
|
+
})
|
|
147
|
+
.apply();
|
|
148
|
+
}
|
|
149
|
+
function distinct(conditionOrOptions, options) {
|
|
150
|
+
let opts = {};
|
|
151
|
+
if (conditionOrOptions instanceof core_1.Condition) {
|
|
152
|
+
opts.condition = conditionOrOptions;
|
|
153
|
+
}
|
|
154
|
+
else if (conditionOrOptions) {
|
|
155
|
+
opts = conditionOrOptions;
|
|
156
|
+
}
|
|
157
|
+
if (options)
|
|
158
|
+
opts = Object.assign({}, opts, options);
|
|
159
|
+
return decoration_1.Decoration.for(core_1.Operator.DISTINCT)
|
|
160
|
+
.define({
|
|
161
|
+
decorator: function distinct(o) {
|
|
162
|
+
return applyViewDecorator(core_1.Operator.DISTINCT, "distinct", o);
|
|
163
|
+
},
|
|
164
|
+
args: [opts],
|
|
165
|
+
})
|
|
166
|
+
.apply();
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Condition } from "@decaf-ts/core";
|
|
2
|
+
import { DefaultSeparator } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { AggregateOptions, ViewOptions } from "./views/types";
|
|
4
|
+
export declare function view(opts?: ViewOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
5
|
+
export declare function groupBy(compositionsOrOptions?: string[] | string | ViewOptions, nameOrOptions?: string | ViewOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
6
|
+
export declare function count(valueOrCondition?: any | Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
7
|
+
export declare function sum(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
8
|
+
export declare function max(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
9
|
+
export declare function min(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
10
|
+
export declare function distinct(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
11
|
+
export { DefaultSeparator };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.d.ts
CHANGED
package/lib/esm/constants.js
CHANGED
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,IAAI;IACf,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,IAAI;IACf,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,OAAO;IAEd,iDAAiD;IACjD,IAAI,EAAE,MAAM;CACb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Condition } from "@decaf-ts/core";
|
|
2
|
+
import { DefaultSeparator } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { AggregateOptions, ViewOptions } from "./views/types";
|
|
4
|
+
export declare function view(opts?: ViewOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
5
|
+
export declare function groupBy(compositionsOrOptions?: string[] | string | ViewOptions, nameOrOptions?: string | ViewOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
6
|
+
export declare function count(valueOrCondition?: any | Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
7
|
+
export declare function sum(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
8
|
+
export declare function max(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
9
|
+
export declare function min(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
10
|
+
export declare function distinct(conditionOrOptions?: Condition<any> | AggregateOptions, options?: AggregateOptions): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
11
|
+
export { DefaultSeparator };
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Condition, Operator } from "@decaf-ts/core";
|
|
2
|
+
import { Decoration, Metadata, propMetadata } from "@decaf-ts/decoration";
|
|
3
|
+
import { DefaultSeparator } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { CouchDBKeys } from "./constants.js";
|
|
5
|
+
function nextViewSlot(target, key, attr) {
|
|
6
|
+
const existing = Metadata.get(target.constructor, key) || {};
|
|
7
|
+
const attrBucket = existing[attr] || {};
|
|
8
|
+
const next = Object.keys(attrBucket).length + 1;
|
|
9
|
+
return String(next);
|
|
10
|
+
}
|
|
11
|
+
function applyViewDecorator(metaKey, kind, opts) {
|
|
12
|
+
return function decorator(target, attr) {
|
|
13
|
+
const slot = opts?.name || nextViewSlot(target, metaKey, attr);
|
|
14
|
+
const key = Metadata.key(metaKey, attr, slot);
|
|
15
|
+
const value = {
|
|
16
|
+
...(opts || {}),
|
|
17
|
+
kind,
|
|
18
|
+
attribute: attr,
|
|
19
|
+
};
|
|
20
|
+
return propMetadata(key, value)(target, attr);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function view(opts) {
|
|
24
|
+
return Decoration.for(CouchDBKeys.VIEW)
|
|
25
|
+
.define({
|
|
26
|
+
decorator: function view(o) {
|
|
27
|
+
return applyViewDecorator(CouchDBKeys.VIEW, "view", o);
|
|
28
|
+
},
|
|
29
|
+
args: [opts],
|
|
30
|
+
})
|
|
31
|
+
.apply();
|
|
32
|
+
}
|
|
33
|
+
export function groupBy(compositionsOrOptions, nameOrOptions) {
|
|
34
|
+
let opts = {};
|
|
35
|
+
if (Array.isArray(compositionsOrOptions)) {
|
|
36
|
+
opts.compositions = compositionsOrOptions;
|
|
37
|
+
}
|
|
38
|
+
else if (typeof compositionsOrOptions === "string") {
|
|
39
|
+
opts.name = compositionsOrOptions;
|
|
40
|
+
}
|
|
41
|
+
else if (compositionsOrOptions) {
|
|
42
|
+
opts = compositionsOrOptions;
|
|
43
|
+
}
|
|
44
|
+
if (typeof nameOrOptions === "string") {
|
|
45
|
+
opts.name = nameOrOptions;
|
|
46
|
+
}
|
|
47
|
+
else if (nameOrOptions) {
|
|
48
|
+
opts = Object.assign({}, opts, nameOrOptions);
|
|
49
|
+
}
|
|
50
|
+
return Decoration.for(Operator.GROUP_BY)
|
|
51
|
+
.define({
|
|
52
|
+
decorator: function groupBy(o) {
|
|
53
|
+
return applyViewDecorator(Operator.GROUP_BY, "groupBy", o);
|
|
54
|
+
},
|
|
55
|
+
args: [opts],
|
|
56
|
+
})
|
|
57
|
+
.apply();
|
|
58
|
+
}
|
|
59
|
+
export function count(valueOrCondition, options) {
|
|
60
|
+
let opts = {};
|
|
61
|
+
if (valueOrCondition instanceof Condition) {
|
|
62
|
+
opts.condition = valueOrCondition;
|
|
63
|
+
}
|
|
64
|
+
else if (typeof valueOrCondition === "object" && valueOrCondition) {
|
|
65
|
+
opts = valueOrCondition;
|
|
66
|
+
}
|
|
67
|
+
else if (typeof valueOrCondition !== "undefined") {
|
|
68
|
+
opts.value = valueOrCondition;
|
|
69
|
+
}
|
|
70
|
+
if (options)
|
|
71
|
+
opts = Object.assign({}, opts, options);
|
|
72
|
+
return Decoration.for(Operator.COUNT)
|
|
73
|
+
.define({
|
|
74
|
+
decorator: function count(o) {
|
|
75
|
+
return applyViewDecorator(Operator.COUNT, "count", o);
|
|
76
|
+
},
|
|
77
|
+
args: [opts],
|
|
78
|
+
})
|
|
79
|
+
.apply();
|
|
80
|
+
}
|
|
81
|
+
export function sum(conditionOrOptions, options) {
|
|
82
|
+
let opts = {};
|
|
83
|
+
if (conditionOrOptions instanceof Condition) {
|
|
84
|
+
opts.condition = conditionOrOptions;
|
|
85
|
+
}
|
|
86
|
+
else if (conditionOrOptions) {
|
|
87
|
+
opts = conditionOrOptions;
|
|
88
|
+
}
|
|
89
|
+
if (options)
|
|
90
|
+
opts = Object.assign({}, opts, options);
|
|
91
|
+
return Decoration.for(Operator.SUM)
|
|
92
|
+
.define({
|
|
93
|
+
decorator: function sum(o) {
|
|
94
|
+
return applyViewDecorator(Operator.SUM, "sum", o);
|
|
95
|
+
},
|
|
96
|
+
args: [opts],
|
|
97
|
+
})
|
|
98
|
+
.apply();
|
|
99
|
+
}
|
|
100
|
+
export function max(conditionOrOptions, options) {
|
|
101
|
+
let opts = {};
|
|
102
|
+
if (conditionOrOptions instanceof Condition) {
|
|
103
|
+
opts.condition = conditionOrOptions;
|
|
104
|
+
}
|
|
105
|
+
else if (conditionOrOptions) {
|
|
106
|
+
opts = conditionOrOptions;
|
|
107
|
+
}
|
|
108
|
+
if (options)
|
|
109
|
+
opts = Object.assign({}, opts, options);
|
|
110
|
+
return Decoration.for(Operator.MAX)
|
|
111
|
+
.define({
|
|
112
|
+
decorator: function max(o) {
|
|
113
|
+
return applyViewDecorator(Operator.MAX, "max", o);
|
|
114
|
+
},
|
|
115
|
+
args: [opts],
|
|
116
|
+
})
|
|
117
|
+
.apply();
|
|
118
|
+
}
|
|
119
|
+
export function min(conditionOrOptions, options) {
|
|
120
|
+
let opts = {};
|
|
121
|
+
if (conditionOrOptions instanceof Condition) {
|
|
122
|
+
opts.condition = conditionOrOptions;
|
|
123
|
+
}
|
|
124
|
+
else if (conditionOrOptions) {
|
|
125
|
+
opts = conditionOrOptions;
|
|
126
|
+
}
|
|
127
|
+
if (options)
|
|
128
|
+
opts = Object.assign({}, opts, options);
|
|
129
|
+
return Decoration.for(Operator.MIN)
|
|
130
|
+
.define({
|
|
131
|
+
decorator: function min(o) {
|
|
132
|
+
return applyViewDecorator(Operator.MIN, "min", o);
|
|
133
|
+
},
|
|
134
|
+
args: [opts],
|
|
135
|
+
})
|
|
136
|
+
.apply();
|
|
137
|
+
}
|
|
138
|
+
export function distinct(conditionOrOptions, options) {
|
|
139
|
+
let opts = {};
|
|
140
|
+
if (conditionOrOptions instanceof Condition) {
|
|
141
|
+
opts.condition = conditionOrOptions;
|
|
142
|
+
}
|
|
143
|
+
else if (conditionOrOptions) {
|
|
144
|
+
opts = conditionOrOptions;
|
|
145
|
+
}
|
|
146
|
+
if (options)
|
|
147
|
+
opts = Object.assign({}, opts, options);
|
|
148
|
+
return Decoration.for(Operator.DISTINCT)
|
|
149
|
+
.define({
|
|
150
|
+
decorator: function distinct(o) {
|
|
151
|
+
return applyViewDecorator(Operator.DISTINCT, "distinct", o);
|
|
152
|
+
},
|
|
153
|
+
args: [opts],
|
|
154
|
+
})
|
|
155
|
+
.apply();
|
|
156
|
+
}
|
|
157
|
+
export { DefaultSeparator };
|
|
158
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ export * from "./adapter";
|
|
|
4
4
|
export * from "./constants";
|
|
5
5
|
export * from "./errors";
|
|
6
6
|
export * from "./metadata";
|
|
7
|
+
export * from "./decorators";
|
|
7
8
|
export * from "./types";
|
|
8
9
|
export * from "./utils";
|
|
9
10
|
export * from "./query";
|
|
11
|
+
export * from "./views";
|
|
10
12
|
/**
|
|
11
13
|
* @description CouchDB adapter for Decaf.ts
|
|
12
14
|
* @summary A TypeScript adapter for CouchDB database operations, providing a seamless integration with the Decaf.ts framework. This module includes classes, interfaces, and utilities for working with CouchDB databases, including support for Mango queries, document operations, and sequence management.
|
|
@@ -17,7 +19,7 @@ export * from "./query";
|
|
|
17
19
|
* @summary The version string of the for-couchdb package
|
|
18
20
|
* @const VERSION
|
|
19
21
|
*/
|
|
20
|
-
export declare const VERSION = "0.4.
|
|
22
|
+
export declare const VERSION = "0.4.29";
|
|
21
23
|
/**
|
|
22
24
|
* @description Stores the current package name
|
|
23
25
|
* @summary The version string of the for-couchdb package
|
package/lib/esm/index.js
CHANGED
|
@@ -5,9 +5,11 @@ export * from "./adapter.js";
|
|
|
5
5
|
export * from "./constants.js";
|
|
6
6
|
export * from "./errors.js";
|
|
7
7
|
export * from "./metadata.js";
|
|
8
|
+
export * from "./decorators.js";
|
|
8
9
|
export * from "./types.js";
|
|
9
10
|
export * from "./utils.js";
|
|
10
11
|
export * from "./query/index.js";
|
|
12
|
+
export * from "./views/index.js";
|
|
11
13
|
/**
|
|
12
14
|
* @description CouchDB adapter for Decaf.ts
|
|
13
15
|
* @summary A TypeScript adapter for CouchDB database operations, providing a seamless integration with the Decaf.ts framework. This module includes classes, interfaces, and utilities for working with CouchDB databases, including support for Mango queries, document operations, and sequence management.
|
|
@@ -18,7 +20,7 @@ export * from "./query/index.js";
|
|
|
18
20
|
* @summary The version string of the for-couchdb package
|
|
19
21
|
* @const VERSION
|
|
20
22
|
*/
|
|
21
|
-
export const VERSION = "0.4.
|
|
23
|
+
export const VERSION = "0.4.29";
|
|
22
24
|
/**
|
|
23
25
|
* @description Stores the current package name
|
|
24
26
|
* @summary The version string of the for-couchdb package
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,mCAA0B;AAC1B,gCAA6B;AAC7B,6BAA0B;AAC1B,+BAA4B;AAC5B,4BAAyB;AACzB,8BAA2B;AAC3B,2BAAwB;AACxB,2BAAwB;AACxB,iCAAwB;AAExB;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,mCAA0B;AAC1B,gCAA6B;AAC7B,6BAA0B;AAC1B,+BAA4B;AAC5B,4BAAyB;AACzB,8BAA2B;AAC3B,gCAA6B;AAC7B,2BAAwB;AACxB,2BAAwB;AACxB,iCAAwB;AACxB,iCAAwB;AAExB;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { CouchDBKeys } from "./../constants.js";
|
|
|
3
3
|
import { DefaultSeparator } from "@decaf-ts/db-decorators";
|
|
4
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
5
|
import { CouchDBOperator } from "./../query/constants.js";
|
|
6
|
+
import { generateViewIndexes } from "./../views/index.js";
|
|
6
7
|
/**
|
|
7
8
|
* @description Generates a name for a CouchDB index
|
|
8
9
|
* @summary Creates a standardized name for a CouchDB index by combining name parts, compositions, and direction
|
|
@@ -124,6 +125,11 @@ export function generateIndexes(models) {
|
|
|
124
125
|
directions.forEach((d) => generate(d));
|
|
125
126
|
});
|
|
126
127
|
});
|
|
128
|
+
generateViewIndexes(models).forEach((index) => {
|
|
129
|
+
if (!index.name)
|
|
130
|
+
return;
|
|
131
|
+
indexes[index.name] = index;
|
|
132
|
+
});
|
|
127
133
|
return Object.values(indexes);
|
|
128
134
|
}
|
|
129
135
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/indexes/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,0BAAqB;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,gCAA2B;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/indexes/generator.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils.js
CHANGED
|
@@ -53,7 +53,7 @@ export async function reAuth(con, user, pass) {
|
|
|
53
53
|
*/
|
|
54
54
|
export function wrapDocumentScope(con, dbName, user, pass) {
|
|
55
55
|
const db = con.use ? con.use(dbName) : con;
|
|
56
|
-
["insert", "get", "put", "destroy", "find"].forEach((k) => {
|
|
56
|
+
["insert", "get", "put", "destroy", "find", "view"].forEach((k) => {
|
|
57
57
|
const original = db[k];
|
|
58
58
|
Object.defineProperty(db, k, {
|
|
59
59
|
enumerable: false,
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,uBAAoB;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAGpD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY;IAC/D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAQ,EACR,MAAc,EACd,IAAY,EACZ,IAAY;IAEZ,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
3
|
+
import { CreateIndexRequest } from "../types";
|
|
4
|
+
import { CouchDBDesignDoc, ViewIndexDefinition, ViewMetadata } from "./types";
|
|
5
|
+
export declare function generateViews<M extends Model>(models: Constructor<M>[]): CouchDBDesignDoc[];
|
|
6
|
+
export declare function generateViewIndexes<M extends Model>(models: Constructor<M>[]): CreateIndexRequest[];
|
|
7
|
+
export declare function viewIndexDefinition(meta: ViewMetadata): ViewIndexDefinition;
|