@decaf-ts/for-fabric 0.1.74 → 0.1.76
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-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/cli-module.cjs +43 -13
- package/lib/cli-module.js.map +1 -1
- package/lib/cli-utils.cjs +10 -4
- package/lib/cli-utils.d.ts +2 -2
- package/lib/cli-utils.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +36 -1
- package/lib/client/FabricClientAdapter.d.ts +12 -1
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +36 -0
- package/lib/client/FabricClientRepository.d.ts +7 -0
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/FabricClientStatement.cjs +321 -18
- package/lib/client/FabricClientStatement.d.ts +52 -1
- package/lib/client/FabricClientStatement.js.map +1 -1
- package/lib/client/collections/generation.cjs +7 -0
- package/lib/client/collections/generation.d.ts +2 -0
- package/lib/client/collections/generation.js.map +1 -1
- package/lib/client/fabric-fs.d.ts +1 -1
- package/lib/client/indexes/generation.cjs +37 -79
- package/lib/client/indexes/generation.d.ts +5 -12
- package/lib/client/indexes/generation.js.map +1 -1
- package/lib/client/utils.d.ts +1 -1
- package/lib/contract/Product.cjs +1 -1
- package/lib/contract/Product.js.map +1 -1
- package/lib/contract/SegregatedPrivateDocumentContract.cjs +30 -0
- package/lib/contract/SegregatedPrivateDocumentContract.d.ts +5 -0
- package/lib/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/contract/SegregatedSharedDocumentContract.cjs +30 -0
- package/lib/contract/SegregatedSharedDocumentContract.d.ts +5 -0
- package/lib/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/contract/User.cjs +1 -1
- package/lib/contract/User.js.map +1 -1
- package/lib/contract/index.cjs +4 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/models/Market.cjs +1 -1
- package/lib/contract/models/Market.js.map +1 -1
- package/lib/contract/models/OtherProductShared.cjs +2 -2
- package/lib/contract/models/OtherProductShared.js.map +1 -1
- package/lib/contract/models/SegregatedDocument.cjs +94 -0
- package/lib/contract/models/SegregatedDocument.d.ts +18 -0
- package/lib/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/contracts/ContractAdapter.cjs +177 -25
- package/lib/contracts/ContractAdapter.d.ts +8 -1
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractContext.cjs +29 -0
- package/lib/contracts/ContractContext.d.ts +16 -0
- package/lib/contracts/ContractContext.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +44 -0
- package/lib/contracts/FabricContractSequence.d.ts +10 -0
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +1 -86
- package/lib/contracts/FabricContractStatement.d.ts +2 -4
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +35 -0
- package/lib/contracts/crud/crud-contract.d.ts +7 -0
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +63 -0
- package/lib/contracts/crud/serialized-crud-contract.d.ts +7 -0
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/types.d.ts +2 -1
- package/lib/esm/cli-module.js +45 -15
- package/lib/esm/cli-module.js.map +1 -1
- package/lib/esm/cli-utils.d.ts +2 -2
- package/lib/esm/cli-utils.js +10 -4
- package/lib/esm/cli-utils.js.map +1 -1
- package/lib/esm/client/FabricClientAdapter.d.ts +12 -1
- package/lib/esm/client/FabricClientAdapter.js +36 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +7 -0
- package/lib/esm/client/FabricClientRepository.js +36 -0
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/FabricClientStatement.d.ts +52 -1
- package/lib/esm/client/FabricClientStatement.js +323 -20
- package/lib/esm/client/FabricClientStatement.js.map +1 -1
- package/lib/esm/client/collections/generation.d.ts +2 -0
- package/lib/esm/client/collections/generation.js +6 -0
- package/lib/esm/client/collections/generation.js.map +1 -1
- package/lib/esm/client/fabric-fs.d.ts +1 -1
- package/lib/esm/client/indexes/generation.d.ts +5 -12
- package/lib/esm/client/indexes/generation.js +36 -80
- package/lib/esm/client/indexes/generation.js.map +1 -1
- package/lib/esm/client/utils.d.ts +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.d.ts +5 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +27 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.d.ts +5 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +27 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -1
- package/lib/esm/contract/index.js +4 -0
- package/lib/esm/contract/index.js.map +1 -1
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -1
- package/lib/esm/contract/models/OtherProductShared.js +4 -4
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -1
- package/lib/esm/contract/models/SegregatedDocument.d.ts +18 -0
- package/lib/esm/contract/models/SegregatedDocument.js +91 -0
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +8 -1
- package/lib/esm/contracts/ContractAdapter.js +178 -26
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractContext.d.ts +16 -0
- package/lib/esm/contracts/ContractContext.js +29 -0
- package/lib/esm/contracts/ContractContext.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.d.ts +10 -0
- package/lib/esm/contracts/FabricContractSequence.js +44 -0
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +2 -4
- package/lib/esm/contracts/FabricContractStatement.js +1 -86
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +7 -0
- package/lib/esm/contracts/crud/crud-contract.js +35 -0
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +7 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +63 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/types.d.ts +2 -1
- package/lib/esm/shared/decorators.d.ts +23 -4
- package/lib/esm/shared/decorators.js +147 -53
- package/lib/esm/shared/decorators.js.map +1 -1
- package/lib/esm/shared/overrides/overrides.js +20 -13
- package/lib/esm/shared/overrides/overrides.js.map +1 -1
- package/lib/esm/shared/types.d.ts +2 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +149 -53
- package/lib/shared/decorators.d.ts +23 -4
- package/lib/shared/decorators.js.map +1 -1
- package/lib/shared/overrides/overrides.cjs +20 -13
- package/lib/shared/overrides/overrides.js.map +1 -1
- package/lib/shared/types.d.ts +2 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +3 -5
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { PersistenceKeys, PreparedStatementKeys, QueryClause, Repository,
|
|
1
|
+
import { Condition, GroupOperator, Operator, PersistenceKeys, PreparedStatementKeys, QueryClause, QueryError, Repository, Sequence, Statement, } from "@decaf-ts/core";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { CouchDBKeys, CouchDBOperator, CouchDBGroupOperator, CouchDBQueryLimit, translateOperators, generateDesignDocName, generateViewName, findViewMetadata, } from "@decaf-ts/for-couchdb";
|
|
2
4
|
import { toCamelCase } from "@decaf-ts/logging";
|
|
3
|
-
import { InternalError } from "@decaf-ts/db-decorators";
|
|
5
|
+
import { DBKeys, InternalError } from "@decaf-ts/db-decorators";
|
|
6
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
4
7
|
export class FabricClientStatement extends Statement {
|
|
5
8
|
constructor(adapter, overrides) {
|
|
6
9
|
super(adapter, overrides);
|
|
@@ -60,30 +63,330 @@ export class FabricClientStatement extends Statement {
|
|
|
60
63
|
}
|
|
61
64
|
if (this.selectSelector)
|
|
62
65
|
method.push(QueryClause.SELECT, this.selectSelector.join(` ${QueryClause.AND.toLowerCase()} `));
|
|
63
|
-
if (this.
|
|
64
|
-
method.push(QueryClause.ORDER_BY, this.
|
|
65
|
-
args.push(this.
|
|
66
|
-
}
|
|
67
|
-
// if (this.groupBySelector)
|
|
68
|
-
// method.push(QueryClause.GROUP_BY, this.groupBySelector as string);
|
|
69
|
-
// if (this.limitSelector) params.limit = this.limitSelector;
|
|
70
|
-
// if (this.offsetSelector) {
|
|
71
|
-
// params.skip = this.offsetSelector;
|
|
72
|
-
// }
|
|
66
|
+
if (this.orderBySelectors?.length) {
|
|
67
|
+
method.push(QueryClause.ORDER_BY, this.orderBySelectors[0][0]);
|
|
68
|
+
args.push(this.orderBySelectors[0][1]);
|
|
69
|
+
}
|
|
73
70
|
prepared.method = toCamelCase(method.join(" "));
|
|
74
71
|
prepared.params = params;
|
|
75
72
|
this.prepared = prepared;
|
|
76
73
|
return this;
|
|
77
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* @description Processes a record from CouchDB/Fabric
|
|
77
|
+
* @summary Extracts the ID from a CouchDB document and reverts it to a model instance
|
|
78
|
+
*/
|
|
79
|
+
processRecord(r, pkAttr, sequenceType, ctx) {
|
|
80
|
+
if (r[CouchDBKeys.ID]) {
|
|
81
|
+
const [, ...keyArgs] = r[CouchDBKeys.ID].split(CouchDBKeys.SEPARATOR);
|
|
82
|
+
const id = keyArgs.join("_");
|
|
83
|
+
return this.adapter.revert(r, this.fromSelector, Sequence.parseValue(sequenceType, id), undefined, ctx);
|
|
84
|
+
}
|
|
85
|
+
return r;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @description Executes a raw Mango query
|
|
89
|
+
* @summary Sends a raw Mango query to Fabric and processes the results
|
|
90
|
+
*/
|
|
91
|
+
async raw(rawInput, ...args) {
|
|
92
|
+
const { ctx } = this.logCtx(args, this.raw);
|
|
93
|
+
const aggregator = rawInput?.aggregateInfo;
|
|
94
|
+
if (rawInput?.aggregate && aggregator) {
|
|
95
|
+
return this.executeAggregate(aggregator, ctx);
|
|
96
|
+
}
|
|
97
|
+
const results = await this.adapter.raw(rawInput, true, this.fromSelector, ctx);
|
|
98
|
+
const pkAttr = Model.pk(this.fromSelector);
|
|
99
|
+
const type = Metadata.get(this.fromSelector, Metadata.key(DBKeys.ID, pkAttr))?.type;
|
|
100
|
+
if (!this.selectSelector)
|
|
101
|
+
return results.map((r) => this.processRecord(r, pkAttr, type, ctx));
|
|
102
|
+
return results;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @description Builds a CouchDB Mango query from the statement
|
|
106
|
+
* @summary Converts the statement's conditions, selectors, and options into a CouchDB Mango query
|
|
107
|
+
*/
|
|
78
108
|
build() {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
109
|
+
const log = this.log.for(this.build);
|
|
110
|
+
const aggregateQuery = this.buildAggregateQuery();
|
|
111
|
+
if (aggregateQuery)
|
|
112
|
+
return aggregateQuery;
|
|
113
|
+
const selectors = {};
|
|
114
|
+
selectors[CouchDBKeys.TABLE] = {};
|
|
115
|
+
selectors[CouchDBKeys.TABLE] = Model.tableName(this.fromSelector);
|
|
116
|
+
const query = { selector: selectors };
|
|
117
|
+
if (this.selectSelector)
|
|
118
|
+
query.fields = this.selectSelector;
|
|
119
|
+
if (this.whereCondition) {
|
|
120
|
+
const condition = this.parseCondition(Condition.and(this.whereCondition, Condition.attribute(CouchDBKeys.TABLE).eq(query.selector[CouchDBKeys.TABLE]))).selector;
|
|
121
|
+
const selectorKeys = Object.keys(condition);
|
|
122
|
+
if (selectorKeys.length === 1 &&
|
|
123
|
+
Object.values(CouchDBGroupOperator).indexOf(selectorKeys[0]) !== -1)
|
|
124
|
+
switch (selectorKeys[0]) {
|
|
125
|
+
case CouchDBGroupOperator.AND:
|
|
126
|
+
condition[CouchDBGroupOperator.AND] = [
|
|
127
|
+
...Object.values(condition[CouchDBGroupOperator.AND]).reduce((accum, val) => {
|
|
128
|
+
const keys = Object.keys(val);
|
|
129
|
+
if (keys.length !== 1)
|
|
130
|
+
throw new Error("Too many keys in query selector. should be one");
|
|
131
|
+
const k = keys[0];
|
|
132
|
+
if (k === CouchDBGroupOperator.AND)
|
|
133
|
+
accum.push(...val[k]);
|
|
134
|
+
else
|
|
135
|
+
accum.push(val);
|
|
136
|
+
return accum;
|
|
137
|
+
}, []),
|
|
138
|
+
];
|
|
139
|
+
query.selector = condition;
|
|
140
|
+
break;
|
|
141
|
+
case CouchDBGroupOperator.OR: {
|
|
142
|
+
const s = {};
|
|
143
|
+
s[CouchDBGroupOperator.AND] = [
|
|
144
|
+
condition,
|
|
145
|
+
...Object.entries(query.selector).map(([key, val]) => {
|
|
146
|
+
const result = {};
|
|
147
|
+
result[key] = val;
|
|
148
|
+
return result;
|
|
149
|
+
}),
|
|
150
|
+
];
|
|
151
|
+
query.selector = s;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
throw new Error("This should be impossible");
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
Object.entries(condition).forEach(([key, val]) => {
|
|
159
|
+
if (query.selector[key])
|
|
160
|
+
log.warn(`A ${key} query param is about to be overridden: ${query.selector[key]} by ${val}`);
|
|
161
|
+
query.selector[key] = val;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (this.orderBySelectors?.length) {
|
|
166
|
+
query.sort = query.sort || [];
|
|
167
|
+
query.selector = query.selector || {};
|
|
168
|
+
for (const [selectorKey, direction] of this.orderBySelectors) {
|
|
169
|
+
const selector = selectorKey;
|
|
170
|
+
const rec = {};
|
|
171
|
+
rec[selector] = direction;
|
|
172
|
+
query.sort.push(rec);
|
|
173
|
+
if (!query.selector[selector]) {
|
|
174
|
+
query.selector[selector] = {};
|
|
175
|
+
query.selector[selector][CouchDBOperator.BIGGER] =
|
|
176
|
+
null;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (this.limitSelector) {
|
|
181
|
+
query.limit = this.limitSelector;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
log.warn(`No limit selector defined. Using default couchdb limit of ${CouchDBQueryLimit}`);
|
|
185
|
+
query.limit = CouchDBQueryLimit;
|
|
186
|
+
}
|
|
187
|
+
if (this.offsetSelector)
|
|
188
|
+
query.skip = this.offsetSelector;
|
|
189
|
+
return query;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* @description Parses a condition into a CouchDB Mango query selector
|
|
193
|
+
* @summary Converts a Condition object into a CouchDB Mango query selector structure
|
|
194
|
+
*/
|
|
195
|
+
parseCondition(condition) {
|
|
196
|
+
function merge(op, obj1, obj2) {
|
|
197
|
+
const result = { selector: {} };
|
|
198
|
+
result.selector[op] = [obj1, obj2];
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
const { attr1, operator, comparison } = condition;
|
|
202
|
+
if (operator === Operator.BETWEEN) {
|
|
203
|
+
const attr = attr1;
|
|
204
|
+
if (!Array.isArray(comparison) || comparison.length !== 2)
|
|
205
|
+
throw new QueryError("BETWEEN operator requires [min, max] comparison");
|
|
206
|
+
const [min, max] = comparison;
|
|
207
|
+
const opBetween = {};
|
|
208
|
+
opBetween[attr] = {};
|
|
209
|
+
opBetween[attr][translateOperators(Operator.BIGGER_EQ)] = min;
|
|
210
|
+
opBetween[attr][translateOperators(Operator.SMALLER_EQ)] = max;
|
|
211
|
+
return { selector: opBetween };
|
|
212
|
+
}
|
|
213
|
+
let op = {};
|
|
214
|
+
if ([GroupOperator.AND, GroupOperator.OR, Operator.NOT].indexOf(operator) === -1) {
|
|
215
|
+
op[attr1] = {};
|
|
216
|
+
op[attr1][translateOperators(operator)] =
|
|
217
|
+
comparison;
|
|
218
|
+
}
|
|
219
|
+
else if (operator === Operator.NOT) {
|
|
220
|
+
op = this.parseCondition(attr1).selector;
|
|
221
|
+
op[translateOperators(Operator.NOT)] = {};
|
|
222
|
+
op[translateOperators(Operator.NOT)][attr1.attr1] = comparison;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
const op1 = this.parseCondition(attr1).selector;
|
|
226
|
+
const op2 = this.parseCondition(comparison).selector;
|
|
227
|
+
op = merge(translateOperators(operator), op1, op2).selector;
|
|
228
|
+
}
|
|
229
|
+
return { selector: op };
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @description Builds an aggregate query if aggregation is requested
|
|
233
|
+
* @summary Checks for aggregate operations and returns a special MangoQuery for them
|
|
234
|
+
*/
|
|
235
|
+
buildAggregateQuery() {
|
|
236
|
+
if (!this.fromSelector)
|
|
237
|
+
return undefined;
|
|
238
|
+
if (this.avgSelector) {
|
|
239
|
+
const attribute = String(this.avgSelector);
|
|
240
|
+
const sumInfo = this.createAggregateDescriptor("sum", attribute);
|
|
241
|
+
const countInfo = this.createAggregateDescriptor("count", attribute);
|
|
242
|
+
if (!sumInfo || !countInfo)
|
|
243
|
+
throw new QueryError(`Avg operation requires sum and count views for attribute ${attribute}`);
|
|
244
|
+
return this.createAggregateQuery({
|
|
245
|
+
kind: "avg",
|
|
246
|
+
attribute,
|
|
247
|
+
sumDescriptor: sumInfo.descriptor,
|
|
248
|
+
countDescriptor: countInfo.descriptor,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
if (typeof this.countDistinctSelector !== "undefined") {
|
|
252
|
+
const attribute = this.countDistinctSelector == null
|
|
253
|
+
? undefined
|
|
254
|
+
: String(this.countDistinctSelector);
|
|
255
|
+
const info = this.createAggregateDescriptor("distinct", attribute);
|
|
256
|
+
if (info) {
|
|
257
|
+
info.countDistinct = true;
|
|
258
|
+
return this.createAggregateQuery(info);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
const aggregatorUsed = typeof this.countSelector !== "undefined" ||
|
|
262
|
+
typeof this.countDistinctSelector !== "undefined" ||
|
|
263
|
+
!!this.minSelector ||
|
|
264
|
+
!!this.maxSelector ||
|
|
265
|
+
!!this.sumSelector ||
|
|
266
|
+
!!this.distinctSelector;
|
|
267
|
+
const aggregatorChecks = [
|
|
268
|
+
[
|
|
269
|
+
"count",
|
|
270
|
+
(this.countSelector ?? undefined),
|
|
271
|
+
],
|
|
272
|
+
["max", this.maxSelector],
|
|
273
|
+
["min", this.minSelector],
|
|
274
|
+
["sum", this.sumSelector],
|
|
275
|
+
["distinct", this.distinctSelector],
|
|
276
|
+
];
|
|
277
|
+
for (const [kind, selector] of aggregatorChecks) {
|
|
278
|
+
const attribute = selector ? String(selector) : undefined;
|
|
279
|
+
const info = this.createAggregateDescriptor(kind, attribute);
|
|
280
|
+
if (info)
|
|
281
|
+
return this.createAggregateQuery(info);
|
|
282
|
+
}
|
|
283
|
+
if (aggregatorUsed) {
|
|
284
|
+
throw new QueryError(`No CouchDB view metadata found for table ${Model.tableName(this.fromSelector)} aggregator`);
|
|
285
|
+
}
|
|
286
|
+
return undefined;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @description Creates an aggregate descriptor for a view-based aggregation
|
|
290
|
+
*/
|
|
291
|
+
createAggregateDescriptor(kind, attribute) {
|
|
292
|
+
if (!this.fromSelector)
|
|
293
|
+
return undefined;
|
|
294
|
+
const metas = findViewMetadata(this.fromSelector, kind, attribute);
|
|
295
|
+
if (!metas.length)
|
|
296
|
+
return undefined;
|
|
297
|
+
const meta = metas[0];
|
|
298
|
+
const tableName = Model.tableName(this.fromSelector);
|
|
299
|
+
const viewName = generateViewName(tableName, meta.attribute, kind, meta);
|
|
300
|
+
const ddoc = meta.ddoc || generateDesignDocName(tableName, viewName);
|
|
301
|
+
const options = {
|
|
302
|
+
reduce: meta.reduce !== undefined ? true : !meta.returnDocs,
|
|
303
|
+
};
|
|
304
|
+
if (kind === "distinct" || kind === "groupBy")
|
|
305
|
+
options.group = true;
|
|
306
|
+
return {
|
|
307
|
+
kind,
|
|
308
|
+
meta,
|
|
309
|
+
descriptor: {
|
|
310
|
+
ddoc,
|
|
311
|
+
view: viewName,
|
|
312
|
+
options,
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* @description Creates the special aggregate MangoQuery marker
|
|
318
|
+
*/
|
|
319
|
+
createAggregateQuery(info) {
|
|
320
|
+
return {
|
|
321
|
+
selector: {},
|
|
322
|
+
aggregate: true,
|
|
323
|
+
aggregateInfo: info,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* @description Gets the adapter cast to FabricClientAdapter for view access
|
|
328
|
+
*/
|
|
329
|
+
getFabricAdapter() {
|
|
330
|
+
return this.adapter;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* @description Executes an aggregate query via adapter's view method
|
|
334
|
+
*/
|
|
335
|
+
async executeAggregate(info, ctx) {
|
|
336
|
+
if (!this.isViewAggregate(info)) {
|
|
337
|
+
return this.handleAverage(info, ctx);
|
|
338
|
+
}
|
|
339
|
+
const fabricAdapter = this.getFabricAdapter();
|
|
340
|
+
const viewInfo = info;
|
|
341
|
+
const response = await fabricAdapter.view(viewInfo.descriptor.ddoc, viewInfo.descriptor.view, viewInfo.descriptor.options, ctx);
|
|
342
|
+
return this.processViewResponse(info, response);
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* @description Handles average calculation from sum and count views
|
|
346
|
+
*/
|
|
347
|
+
async handleAverage(info, ctx) {
|
|
348
|
+
if (info.kind !== "avg")
|
|
349
|
+
throw new QueryError("Average descriptor is not valid");
|
|
350
|
+
const fabricAdapter = this.getFabricAdapter();
|
|
351
|
+
const [sumDesc, countDesc] = [info.sumDescriptor, info.countDescriptor];
|
|
352
|
+
const [sumResponse, countResponse] = await Promise.all([
|
|
353
|
+
fabricAdapter.view(sumDesc.ddoc, sumDesc.view, sumDesc.options, ctx),
|
|
354
|
+
fabricAdapter.view(countDesc.ddoc, countDesc.view, countDesc.options, ctx),
|
|
355
|
+
]);
|
|
356
|
+
const sum = sumResponse.rows?.[0]?.value ?? 0;
|
|
357
|
+
const count = countResponse.rows?.[0]?.value ?? 0;
|
|
358
|
+
if (!count)
|
|
359
|
+
return 0;
|
|
360
|
+
return (sum / count);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* @description Processes the view response based on aggregate kind
|
|
364
|
+
*/
|
|
365
|
+
processViewResponse(info, response) {
|
|
366
|
+
if (info.kind === "avg")
|
|
367
|
+
throw new QueryError("Average results should be handled before processing rows");
|
|
368
|
+
const rows = response.rows || [];
|
|
369
|
+
const viewInfo = info;
|
|
370
|
+
const meta = viewInfo.meta;
|
|
371
|
+
if (viewInfo.countDistinct) {
|
|
372
|
+
return (rows.length || 0);
|
|
373
|
+
}
|
|
374
|
+
if (viewInfo.kind === "distinct" || viewInfo.kind === "groupBy") {
|
|
375
|
+
return rows.map((row) => row.key ?? row.value);
|
|
376
|
+
}
|
|
377
|
+
if (meta.returnDocs) {
|
|
378
|
+
return rows.map((row) => row.value ?? row.doc ?? row);
|
|
379
|
+
}
|
|
380
|
+
if (!rows.length) {
|
|
381
|
+
return (viewInfo.kind === "count" ? 0 : null);
|
|
382
|
+
}
|
|
383
|
+
return (rows[0].value ?? rows[0].key ?? null);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* @description Type guard to check if info is a view-based aggregate
|
|
387
|
+
*/
|
|
388
|
+
isViewAggregate(info) {
|
|
389
|
+
return info.kind !== "avg";
|
|
87
390
|
}
|
|
88
391
|
}
|
|
89
392
|
//# sourceMappingURL=FabricClientStatement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OrderDirection } from "@decaf-ts/core";
|
|
2
2
|
import { Constructor } from "@decaf-ts/decoration";
|
|
3
|
+
import { CouchDBDesignDoc } from "@decaf-ts/for-couchdb";
|
|
3
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
5
|
export type Index = {
|
|
5
6
|
index: {
|
|
@@ -53,3 +54,4 @@ export declare function extractCollections<M extends Model>(m: Constructor<M>, m
|
|
|
53
54
|
shared: PrivateCollection[];
|
|
54
55
|
}>;
|
|
55
56
|
export declare function writeCollections(cols: PrivateCollection[], p?: string, fileName?: string): void;
|
|
57
|
+
export declare function writeCollectionDesignDocs(docs: CouchDBDesignDoc[], p?: string, collection?: string): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { InternalError } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { writeDesignDocs } from "./../indexes/generation.js";
|
|
3
4
|
export function collectionFor(collectionName, policy, requiredPeerCount, maxPeerCount, blockToLive, memberOnlyRead, memberOnlyWrite) {
|
|
4
5
|
return {
|
|
5
6
|
name: collectionName,
|
|
@@ -92,4 +93,9 @@ export function writeCollections(cols, p = process.cwd(), fileName = "collection
|
|
|
92
93
|
ensureDirectoryExistence(file);
|
|
93
94
|
fs.writeFileSync(file, JSON.stringify(cols, undefined, 2));
|
|
94
95
|
}
|
|
96
|
+
export function writeCollectionDesignDocs(docs, p = process.cwd(), collection) {
|
|
97
|
+
if (!docs?.length)
|
|
98
|
+
return;
|
|
99
|
+
writeDesignDocs(docs, p, collection);
|
|
100
|
+
}
|
|
95
101
|
//# sourceMappingURL=generation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/collections/generation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/collections/generation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,mCAA8B;AA8DxD,MAAM,UAAU,aAAa,CAC3B,cAAsB,EACtB,MAAc,EACd,iBAAyB,EACzB,YAAoB,EACpB,WAAmB,EACnB,cAAuB,EACvB,eAAwB;IAExB,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,MAAM;QACd,iBAAiB;QACjB,YAAY;QACZ,WAAW;QACX,cAAc;QACd,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,iBAAyB,GAAG,KAAK,SAAS,EAC1C,oBAA4B,CAAC,EAC7B,eAAuB,CAAC,EACxB,cAAsB,CAAC,EACvB,iBAA0B,IAAI,EAC9B,kBAA2B,IAAI;IAE/B,OAAO,aAAa,CAClB,cAAc,EACd,OAAO,KAAK,WAAW,EACvB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAgB,EAChB,cAAsB,EACtB,oBAA4B,CAAC,EAC7B,eAAuB,CAAC,EACxB,cAAsB,CAAC,EACvB,iBAA0B,IAAI,EAC9B,kBAA2B,IAAI;IAE/B,MAAM,CAAC,GAAG,aAAa,CACrB,cAAc,EACd,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACrD,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,CAChB,CAAC;IACF,CAAC,CAAC,iBAAiB,GAAG;QACpB,eAAe,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;KACtE,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,CAAiB,EACjB,MAAgB,EAChB,YAGI,EAAE,EACN,SAAkB,KAAK;IAEvB,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE1D,SAAS,iBAAiB,CAAC,GAAgC;QACzD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAC;YACxC,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAW,CAAC;QACrC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CACnC,EAAE,EACF;QACE,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;KACtB,EACD,SAAS,EAAE,WAAW,IAAI,EAAE,CAC7B,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,EAAE,EACF;QACE,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;KACtB,EACD,SAAS,EAAE,UAAU,IAAI,EAAE,CAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,WAAwB;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,QAAQ,GACZ,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;YACrC,CAAC,CAAC,UAAU,CAAC,QAAQ;YACrB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,CACL,QAAQ,KAAK,CAAC;YACd,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5D,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,EACJ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,GAChB,GAAG,eAAe,CAAC;QACpB,OAAO,oBAAoB,CACzB,KAAK,EACL,CAAC,EACD,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CACL;SACA,IAAI,EAAE,CAAC;IAEV,MAAM,MAAM,GAAI,UAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,MAAM,EACJ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,GAChB,GAAG,cAAc,CAAC;QACnB,OAAO,mBAAmB,CACxB,MAAM,EACN,CAAC,EACD,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAyB,EACzB,IAAY,OAAO,CAAC,GAAG,EAAE,EACzB,QAAQ,GAAG,oBAAoB;IAE/B,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,SAAS,wBAAwB,CAAC,QAAgB;QAChD,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,QAAQ,OAAO,CAAC,CAAC,CAAC;IACvE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAwB,EACxB,IAAY,OAAO,CAAC,GAAG,EAAE,EACzB,UAAmB;IAEnB,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO;IAC1B,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -18,7 +18,7 @@ export declare function contentOfLoadFile(contentOrPath: string | Uint8Array, fi
|
|
|
18
18
|
* @function readFile
|
|
19
19
|
* @memberOf module:for-fabric.client
|
|
20
20
|
*/
|
|
21
|
-
export declare function readFile(contentOrPath: string | Buffer): Promise<
|
|
21
|
+
export declare function readFile(contentOrPath: string | Buffer): Promise<NonSharedBuffer>;
|
|
22
22
|
/**
|
|
23
23
|
* @description Creates a Certificate Authority user
|
|
24
24
|
* @summary Initializes a user with the given credentials for interacting with a Fabric CA
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import { OrderDirection } from "@decaf-ts/core";
|
|
2
1
|
import { Constructor } from "@decaf-ts/decoration";
|
|
2
|
+
import { CreateIndexRequest, CouchDBDesignDoc } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { Model, ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
4
|
-
export type Index =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
[k: string]: OrderDirection;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
ddoc?: string;
|
|
11
|
-
name: string;
|
|
12
|
-
type: "json";
|
|
13
|
-
};
|
|
14
|
-
export declare function generateModelIndexes<M extends Model>(m: Constructor<M>, accum?: Record<string, any>): Index[];
|
|
4
|
+
export type Index = CreateIndexRequest;
|
|
5
|
+
export declare function generateModelIndexes<M extends Model>(m: Constructor<M>): Index[];
|
|
6
|
+
export declare function generateModelDesignDocs<M extends Model>(m: Constructor<M>, accum?: Record<string, CouchDBDesignDoc>): CouchDBDesignDoc[];
|
|
15
7
|
export declare function readModelFile(file: any): ModelConstructor<any>[];
|
|
16
8
|
export declare function readModelFolders(...folders: string[]): Promise<ModelConstructor<any>[]>;
|
|
17
9
|
export declare function writeIndexes(indexes: Index[], p?: string, collection?: string): void;
|
|
10
|
+
export declare function writeDesignDocs(designDocs: CouchDBDesignDoc[], p?: string, collection?: string): void;
|
|
@@ -1,79 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CouchDBKeys } from "@decaf-ts/for-couchdb";
|
|
1
|
+
import { generateIndexes, generateViews, } from "@decaf-ts/for-couchdb";
|
|
3
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function addIndex(accum, fields, direction, compositions) {
|
|
13
|
-
const tableField = fields.pop();
|
|
14
|
-
if (tableField && tableField !== CouchDBKeys.TABLE) {
|
|
15
|
-
fields.push(tableField);
|
|
16
|
-
}
|
|
17
|
-
else if (tableField === CouchDBKeys.TABLE) {
|
|
18
|
-
fields.unshift(tableField);
|
|
3
|
+
function ensureDirectoryExistence(filePath) {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const dirname = path.dirname(filePath);
|
|
9
|
+
if (fs.existsSync(dirname)) {
|
|
10
|
+
return true;
|
|
19
11
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
...fields,
|
|
23
|
-
...(compositions || []),
|
|
24
|
-
];
|
|
25
|
-
if (direction)
|
|
26
|
-
f = f.reduce((accum, el) => {
|
|
27
|
-
const entry = {};
|
|
28
|
-
entry[el] = direction;
|
|
29
|
-
accum.push(entry);
|
|
30
|
-
return accum;
|
|
31
|
-
}, []);
|
|
32
|
-
const index = {
|
|
33
|
-
index: {
|
|
34
|
-
fields: f,
|
|
35
|
-
},
|
|
36
|
-
name: name,
|
|
37
|
-
ddoc: name,
|
|
38
|
-
type: "json",
|
|
39
|
-
};
|
|
40
|
-
accum[name] = index;
|
|
12
|
+
ensureDirectoryExistence(dirname);
|
|
13
|
+
fs.mkdirSync(dirname);
|
|
41
14
|
}
|
|
42
|
-
export function generateModelIndexes(m
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
ddoc: tableName,
|
|
51
|
-
type: "json",
|
|
52
|
-
};
|
|
53
|
-
const result = {};
|
|
54
|
-
const modelIndexes = Model.indexes(m);
|
|
55
|
-
for (const prop of Object.keys(modelIndexes)) {
|
|
56
|
-
for (const [, dec] of Object.entries(modelIndexes[prop])) {
|
|
57
|
-
const directions = dec
|
|
58
|
-
.directions;
|
|
59
|
-
const compositions = dec.compositions;
|
|
60
|
-
const fields = [prop, CouchDBKeys.TABLE];
|
|
61
|
-
addIndex(result, fields);
|
|
62
|
-
if (compositions && compositions.length)
|
|
63
|
-
addIndex(result, fields, undefined, compositions);
|
|
64
|
-
if (directions && directions.length) {
|
|
65
|
-
directions.forEach((d) => {
|
|
66
|
-
addIndex(result, fields, d);
|
|
67
|
-
if (compositions && compositions.length)
|
|
68
|
-
addIndex(result, fields, d, compositions);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
Object.entries(result).forEach(([key, value]) => {
|
|
74
|
-
indexes[key] = value;
|
|
15
|
+
export function generateModelIndexes(m) {
|
|
16
|
+
return generateIndexes([m]);
|
|
17
|
+
}
|
|
18
|
+
export function generateModelDesignDocs(m, accum) {
|
|
19
|
+
const views = generateViews([m]);
|
|
20
|
+
const storage = accum || {};
|
|
21
|
+
views.forEach((doc) => {
|
|
22
|
+
storage[doc._id] = doc;
|
|
75
23
|
});
|
|
76
|
-
return
|
|
24
|
+
return views;
|
|
77
25
|
}
|
|
78
26
|
export function readModelFile(file) {
|
|
79
27
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
@@ -114,18 +62,26 @@ export function writeIndexes(indexes, p = process.cwd(), collection) {
|
|
|
114
62
|
const fs = require("fs");
|
|
115
63
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
116
64
|
const path = require("path");
|
|
117
|
-
function ensureDirectoryExistence(filePath) {
|
|
118
|
-
const dirname = path.dirname(filePath);
|
|
119
|
-
if (fs.existsSync(dirname)) {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
ensureDirectoryExistence(dirname);
|
|
123
|
-
fs.mkdirSync(dirname);
|
|
124
|
-
}
|
|
125
65
|
indexes.forEach((index) => {
|
|
126
66
|
const file = path.resolve(path.join(p, `./META-INF/statedb/couchdb/${collection ? `collections/${collection}/` : ""}indexes/${index.name}.json`));
|
|
127
67
|
ensureDirectoryExistence(file);
|
|
128
68
|
fs.writeFileSync(file, JSON.stringify(index, undefined, 2));
|
|
129
69
|
});
|
|
130
70
|
}
|
|
71
|
+
export function writeDesignDocs(designDocs, p = process.cwd(), collection) {
|
|
72
|
+
if (!designDocs.length)
|
|
73
|
+
return;
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
75
|
+
const fs = require("fs");
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
77
|
+
const path = require("path");
|
|
78
|
+
designDocs.forEach((doc) => {
|
|
79
|
+
const docId = doc._id.replace(/^_design\//, "");
|
|
80
|
+
const file = path.resolve(path.join(p, `./META-INF/statedb/couchdb/${collection ? `collections/${collection}/` : ""}design_docs/${docId}.json`));
|
|
81
|
+
ensureDirectoryExistence(file);
|
|
82
|
+
const payload = { ...doc };
|
|
83
|
+
delete payload._rev;
|
|
84
|
+
fs.writeFileSync(file, JSON.stringify(payload, undefined, 2));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
131
87
|
//# sourceMappingURL=generation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/indexes/generation.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/indexes/generation.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAoB,MAAM,gCAAgC,CAAC;AAIzE,SAAS,wBAAwB,CAAC,QAAgB;IAChD,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,CAAiB;IAEjB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,CAAiB,EACjB,KAAwC;IAExC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAqC,KAAK,IAAI,EAAE,CAAC;IAC9D,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACrC,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,iEAAiE;IACjE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAK,CAAiB,EAAE,CAAC;YACnC,OAAO,CAAC,YAAY,KAAK,CAAC;YAC1B,6DAA6D;QAC/D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAA4B,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAG,OAAiB;IAEpB,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE;aACb,WAAW,CAAC,MAAM,EAAE;YACnB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;SAChB,CAAC;aACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,IAAY,OAAO,CAAC,GAAG,EAAE,EACzB,UAAmB;IAEnB,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CACvB,IAAI,CAAC,IAAI,CACP,CAAC,EACD,8BAA8B,UAAU,CAAC,CAAC,CAAC,eAAe,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,CAAC,IAAI,OAAO,CACzG,CACF,CAAC;QACF,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAA8B,EAC9B,IAAY,OAAO,CAAC,GAAG,EAAE,EACzB,UAAmB;IAEnB,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO;IAC/B,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CACvB,IAAI,CAAC,IAAI,CACP,CAAC,EACD,8BAA8B,UAAU,CAAC,CAAC,CAAC,eAAe,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CACxG,CACF,CAAC;QACF,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}
|