@decaf-ts/for-couchdb 0.4.2 → 0.4.4
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/adapter.cjs +77 -37
- package/lib/adapter.d.ts +50 -22
- package/lib/adapter.js.map +1 -1
- package/lib/esm/adapter.d.ts +50 -22
- package/lib/esm/adapter.js +70 -30
- package/lib/esm/adapter.js.map +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +2 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/indexes/generator.js +4 -3
- package/lib/esm/indexes/generator.js.map +1 -1
- package/lib/esm/query/Paginator.d.ts +1 -1
- package/lib/esm/query/Paginator.js +4 -3
- package/lib/esm/query/Paginator.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +6 -5
- package/lib/esm/query/Statement.js +8 -7
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/repository.d.ts +39 -0
- package/lib/esm/repository.js +147 -0
- package/lib/esm/repository.js.map +1 -0
- package/lib/esm/sequences/Sequence.d.ts +19 -18
- package/lib/esm/sequences/Sequence.js +33 -28
- package/lib/esm/sequences/Sequence.js.map +1 -1
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.js.map +1 -1
- package/lib/indexes/generator.cjs +3 -2
- package/lib/indexes/generator.js.map +1 -1
- package/lib/query/Paginator.cjs +4 -3
- package/lib/query/Paginator.d.ts +1 -1
- package/lib/query/Paginator.js.map +1 -1
- package/lib/query/Statement.cjs +7 -6
- package/lib/query/Statement.d.ts +6 -5
- package/lib/query/Statement.js.map +1 -1
- package/lib/repository.cjs +151 -0
- package/lib/repository.d.ts +39 -0
- package/lib/repository.js.map +1 -0
- package/lib/sequences/Sequence.cjs +31 -26
- package/lib/sequences/Sequence.d.ts +19 -18
- package/lib/sequences/Sequence.js.map +1 -1
- package/package.json +1 -2
- package/lib/esm/interfaces/CouchDBRepository.d.ts +0 -16
- package/lib/esm/interfaces/CouchDBRepository.js +0 -2
- package/lib/esm/interfaces/CouchDBRepository.js.map +0 -1
- package/lib/esm/interfaces/index.d.ts +0 -1
- package/lib/esm/interfaces/index.js +0 -2
- package/lib/esm/interfaces/index.js.map +0 -1
- package/lib/interfaces/CouchDBRepository.cjs +0 -3
- package/lib/interfaces/CouchDBRepository.d.ts +0 -16
- package/lib/interfaces/CouchDBRepository.js.map +0 -1
- package/lib/interfaces/index.cjs +0 -18
- package/lib/interfaces/index.d.ts +0 -1
- package/lib/interfaces/index.js.map +0 -1
package/lib/esm/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,OAAO,EAGP,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./indexes";
|
|
2
|
-
export * from "./interfaces";
|
|
3
2
|
export * from "./model";
|
|
4
3
|
export * from "./sequences";
|
|
4
|
+
export * from "./repository";
|
|
5
5
|
export * from "./adapter";
|
|
6
6
|
export * from "./constants";
|
|
7
7
|
export * from "./errors";
|
|
@@ -18,7 +18,7 @@ export * from "./query";
|
|
|
18
18
|
* @summary The version string of the for-couchdb package
|
|
19
19
|
* @const VERSION
|
|
20
20
|
*/
|
|
21
|
-
export declare const VERSION = "0.4.
|
|
21
|
+
export declare const VERSION = "0.4.3";
|
|
22
22
|
/**
|
|
23
23
|
* @description Stores the current package name
|
|
24
24
|
* @summary The version string of the for-couchdb package
|
package/lib/esm/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Metadata } from "@decaf-ts/decoration";
|
|
2
2
|
export * from "./indexes/index.js";
|
|
3
|
-
export * from "./interfaces/index.js";
|
|
4
3
|
export * from "./model/index.js";
|
|
5
4
|
export * from "./sequences/index.js";
|
|
5
|
+
export * from "./repository.js";
|
|
6
6
|
export * from "./adapter.js";
|
|
7
7
|
export * from "./constants.js";
|
|
8
8
|
export * from "./errors.js";
|
|
@@ -19,7 +19,7 @@ export * from "./query/index.js";
|
|
|
19
19
|
* @summary The version string of the for-couchdb package
|
|
20
20
|
* @const VERSION
|
|
21
21
|
*/
|
|
22
|
-
export const VERSION = "0.4.
|
|
22
|
+
export const VERSION = "0.4.3";
|
|
23
23
|
/**
|
|
24
24
|
* @description Stores the current package name
|
|
25
25
|
* @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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,mCAA0B;AAC1B,iCAAwB;AACxB,qCAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B;AAC1B,+BAA4B;AAC5B,4BAAyB;AACzB,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,6 +1,7 @@
|
|
|
1
|
-
import { PersistenceKeys
|
|
1
|
+
import { PersistenceKeys } from "@decaf-ts/core";
|
|
2
2
|
import { CouchDBKeys } from "./../constants.js";
|
|
3
3
|
import { DefaultSeparator } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
5
|
import { CouchDBOperator } from "./../query/constants.js";
|
|
5
6
|
/**
|
|
6
7
|
* @description Generates a name for a CouchDB index
|
|
@@ -79,12 +80,12 @@ export function generateIndexes(models) {
|
|
|
79
80
|
type: "json",
|
|
80
81
|
};
|
|
81
82
|
models.forEach((m) => {
|
|
82
|
-
const ind =
|
|
83
|
+
const ind = Model.indexes(m);
|
|
83
84
|
Object.entries(ind).forEach(([key, value]) => {
|
|
84
85
|
const k = Object.keys(value)[0];
|
|
85
86
|
// eslint-disable-next-line prefer-const
|
|
86
87
|
let { directions, compositions } = value[k];
|
|
87
|
-
const tableName =
|
|
88
|
+
const tableName = Model.tableName(m);
|
|
88
89
|
compositions = compositions || [];
|
|
89
90
|
function generate(sort) {
|
|
90
91
|
const name = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/indexes/generator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/indexes/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export declare class CouchDBPaginator<M extends Model, R> extends Paginator<M, R
|
|
|
53
53
|
* @param {number} size - The page size
|
|
54
54
|
* @param {Constructor<M>} clazz - The model constructor
|
|
55
55
|
*/
|
|
56
|
-
constructor(adapter: CouchDBAdapter<any, any, any
|
|
56
|
+
constructor(adapter: CouchDBAdapter<any, any, any>, query: MangoQuery, size: number, clazz: Constructor<M>);
|
|
57
57
|
/**
|
|
58
58
|
* @description Prepares a query for pagination
|
|
59
59
|
* @summary Modifies the raw query to include pagination parameters
|
|
@@ -128,10 +128,11 @@ export class CouchDBPaginator extends Paginator {
|
|
|
128
128
|
* end
|
|
129
129
|
*/
|
|
130
130
|
async page(page = 1) {
|
|
131
|
+
const { ctx } = this.adapter["logCtx"]([page], this.page);
|
|
131
132
|
const statement = Object.assign({}, this.statement);
|
|
132
133
|
if (!this._recordCount || !this._totalPages) {
|
|
133
134
|
this._totalPages = this._recordCount = 0;
|
|
134
|
-
const results = (await this.adapter.raw({ ...statement, limit: undefined })) || [];
|
|
135
|
+
const results = (await this.adapter.raw({ ...statement, limit: undefined }, true, ctx)) || [];
|
|
135
136
|
this._recordCount = results.length;
|
|
136
137
|
if (this._recordCount > 0) {
|
|
137
138
|
const size = statement?.limit || this.size;
|
|
@@ -144,7 +145,7 @@ export class CouchDBPaginator extends Paginator {
|
|
|
144
145
|
throw new PagingError("No bookmark. Did you start in the first page?");
|
|
145
146
|
statement["bookmark"] = this.bookMark;
|
|
146
147
|
}
|
|
147
|
-
const rawResult = await this.adapter.raw(statement, false);
|
|
148
|
+
const rawResult = await this.adapter.raw(statement, false, ctx);
|
|
148
149
|
const { docs, bookmark, warning } = rawResult;
|
|
149
150
|
if (warning)
|
|
150
151
|
this.log.for(this.page).warn(warning);
|
|
@@ -158,7 +159,7 @@ export class CouchDBPaginator extends Paginator {
|
|
|
158
159
|
//no fields means we need to revert to saving process
|
|
159
160
|
const originalId = d._id.split(CouchDBKeys.SEPARATOR);
|
|
160
161
|
originalId.splice(0, 1); // remove the table name
|
|
161
|
-
return this.adapter.revert(d, this.clazz,
|
|
162
|
+
return this.adapter.revert(d, this.clazz, Sequence.parseValue(type, originalId.join(CouchDBKeys.SEPARATOR)), undefined, ctx);
|
|
162
163
|
});
|
|
163
164
|
this.bookMark = bookmark;
|
|
164
165
|
this._currentPage = page;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,0BAAqB;AAC3C,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,gBAAqC,SAAQ,SAIzD;IAOC;;;;;OAKG;IACH,IAAa,KAAK;QAChB,MAAM,IAAI,aAAa,CAAC,kDAAkD,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACH,IAAa,KAAK;QAChB,MAAM,IAAI,aAAa,CACrB,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,YACE,
|
|
1
|
+
{"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Condition, Paginator, Statement } from "@decaf-ts/core";
|
|
2
2
|
import { MangoQuery } from "../types";
|
|
3
3
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import {
|
|
4
|
+
import type { Context } from "@decaf-ts/db-decorators";
|
|
5
|
+
import { Adapter } from "@decaf-ts/core";
|
|
5
6
|
/**
|
|
6
7
|
* @description Statement builder for CouchDB Mango queries
|
|
7
8
|
* @summary Provides a fluent interface for building CouchDB Mango queries with type safety
|
|
@@ -22,8 +23,8 @@ import { CouchDBAdapter } from "../adapter";
|
|
|
22
23
|
* .limit(10)
|
|
23
24
|
* .execute();
|
|
24
25
|
*/
|
|
25
|
-
export declare class CouchDBStatement<M extends Model, R> extends Statement<
|
|
26
|
-
constructor(adapter:
|
|
26
|
+
export declare class CouchDBStatement<M extends Model, A extends Adapter<any, any, MangoQuery, any>, R> extends Statement<M, A, R, MangoQuery> {
|
|
27
|
+
constructor(adapter: A);
|
|
27
28
|
/**
|
|
28
29
|
* @description Builds a CouchDB Mango query from the statement
|
|
29
30
|
* @summary Converts the statement's conditions, selectors, and options into a CouchDB Mango query
|
|
@@ -98,7 +99,7 @@ export declare class CouchDBStatement<M extends Model, R> extends Statement<Mang
|
|
|
98
99
|
* @param {"Number" | "BigInt" | undefined} sequenceType - The type of the sequence
|
|
99
100
|
* @return {any} The processed record
|
|
100
101
|
*/
|
|
101
|
-
protected processRecord(r: any, pkAttr: keyof M, sequenceType: "Number" | "BigInt" | undefined): any;
|
|
102
|
+
protected processRecord(r: any, pkAttr: keyof M, sequenceType: "Number" | "BigInt" | undefined, ctx: Context): any;
|
|
102
103
|
/**
|
|
103
104
|
* @description Executes a raw Mango query
|
|
104
105
|
* @summary Sends a raw Mango query to CouchDB and processes the results
|
|
@@ -106,7 +107,7 @@ export declare class CouchDBStatement<M extends Model, R> extends Statement<Mang
|
|
|
106
107
|
* @param {MangoQuery} rawInput - The raw Mango query to execute
|
|
107
108
|
* @return {Promise<R>} A promise that resolves to the query results
|
|
108
109
|
*/
|
|
109
|
-
raw<R>(rawInput: MangoQuery): Promise<R>;
|
|
110
|
+
raw<R>(rawInput: MangoQuery, ...args: any[]): Promise<R>;
|
|
110
111
|
/**
|
|
111
112
|
* @description Parses a condition into a CouchDB Mango query selector
|
|
112
113
|
* @summary Converts a Condition object into a CouchDB Mango query selector structure
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Condition, GroupOperator, Operator,
|
|
1
|
+
import { Condition, GroupOperator, Operator, Sequence, Statement, } from "@decaf-ts/core";
|
|
2
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { translateOperators } from "./translate.js";
|
|
4
4
|
import { CouchDBKeys } from "./../constants.js";
|
|
@@ -90,7 +90,7 @@ export class CouchDBStatement extends Statement {
|
|
|
90
90
|
const log = this.log.for(this.build);
|
|
91
91
|
const selectors = {};
|
|
92
92
|
selectors[CouchDBKeys.TABLE] = {};
|
|
93
|
-
selectors[CouchDBKeys.TABLE] =
|
|
93
|
+
selectors[CouchDBKeys.TABLE] = Model.tableName(this.fromSelector);
|
|
94
94
|
const query = { selector: selectors };
|
|
95
95
|
if (this.selectSelector)
|
|
96
96
|
query.fields = this.selectSelector;
|
|
@@ -189,11 +189,11 @@ export class CouchDBStatement extends Statement {
|
|
|
189
189
|
* @param {"Number" | "BigInt" | undefined} sequenceType - The type of the sequence
|
|
190
190
|
* @return {any} The processed record
|
|
191
191
|
*/
|
|
192
|
-
processRecord(r, pkAttr, sequenceType) {
|
|
192
|
+
processRecord(r, pkAttr, sequenceType, ctx) {
|
|
193
193
|
if (r[CouchDBKeys.ID]) {
|
|
194
194
|
const [, ...keyArgs] = r[CouchDBKeys.ID].split(CouchDBKeys.SEPARATOR);
|
|
195
195
|
const id = keyArgs.join("_");
|
|
196
|
-
return this.adapter.revert(r, this.fromSelector,
|
|
196
|
+
return this.adapter.revert(r, this.fromSelector, Sequence.parseValue(sequenceType, id), undefined, ctx);
|
|
197
197
|
}
|
|
198
198
|
return r;
|
|
199
199
|
}
|
|
@@ -204,12 +204,13 @@ export class CouchDBStatement extends Statement {
|
|
|
204
204
|
* @param {MangoQuery} rawInput - The raw Mango query to execute
|
|
205
205
|
* @return {Promise<R>} A promise that resolves to the query results
|
|
206
206
|
*/
|
|
207
|
-
async raw(rawInput) {
|
|
208
|
-
const
|
|
207
|
+
async raw(rawInput, ...args) {
|
|
208
|
+
const { ctx } = this.logCtx(args, this.raw);
|
|
209
|
+
const results = await this.adapter.raw(rawInput, true, ctx);
|
|
209
210
|
const pkAttr = Model.pk(this.fromSelector);
|
|
210
211
|
const type = Metadata.get(this.fromSelector, Metadata.key(DBKeys.ID, pkAttr))?.type;
|
|
211
212
|
if (!this.selectSelector)
|
|
212
|
-
return results.map((r) => this.processRecord(r, pkAttr, type));
|
|
213
|
+
return results.map((r) => this.processRecord(r, pkAttr, type, ctx));
|
|
213
214
|
return results;
|
|
214
215
|
}
|
|
215
216
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,QAAQ,EAGR,
|
|
1
|
+
{"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MaybeContextualArg, Repository } from "@decaf-ts/core";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
|
+
import { CouchDBAdapter } from "./adapter";
|
|
5
|
+
import { ContextOf } from "@decaf-ts/core";
|
|
6
|
+
import type { PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
7
|
+
export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter<any, any, any>> extends Repository<M, A> {
|
|
8
|
+
constructor(adapter: A, model: Constructor<M>);
|
|
9
|
+
protected assignMetadata(model: M, source?: M): M;
|
|
10
|
+
protected assignMetadata(models: M[], source?: M[]): M[];
|
|
11
|
+
create(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
|
12
|
+
createAll(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
|
|
13
|
+
read(id: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
|
14
|
+
readAll(ids: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
|
|
15
|
+
update(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
|
16
|
+
updateAll(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
|
|
17
|
+
delete(id: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
|
18
|
+
deleteAll(ids: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
|
|
19
|
+
/**
|
|
20
|
+
* @description Prepares a model for update.
|
|
21
|
+
* @summary Validates the model and prepares it for update in the database.
|
|
22
|
+
* @param {M} model - The model to update.
|
|
23
|
+
* @param {...any[]} args - Additional arguments.
|
|
24
|
+
* @return The prepared model and context arguments.
|
|
25
|
+
* @throws {InternalError} If the model has no primary key value.
|
|
26
|
+
* @throws {ValidationError} If the model fails validation.
|
|
27
|
+
*/
|
|
28
|
+
protected updatePrefix(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M, ...args: any[], ContextOf<A>]>;
|
|
29
|
+
/**
|
|
30
|
+
* @description Prepares multiple models for update.
|
|
31
|
+
* @summary Validates multiple models and prepares them for update in the database.
|
|
32
|
+
* @param {M[]} models - The models to update.
|
|
33
|
+
* @param {...any[]} args - Additional arguments.
|
|
34
|
+
* @return {Promise<any[]>} The prepared models and context arguments.
|
|
35
|
+
* @throws {InternalError} If any model has no primary key value.
|
|
36
|
+
* @throws {ValidationError} If any model fails validation.
|
|
37
|
+
*/
|
|
38
|
+
protected updateAllPrefix(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M[], ...args: any[], ContextOf<A>]>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { Repository } from "@decaf-ts/core";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { CouchDBAdapter } from "./adapter.js";
|
|
4
|
+
import { Context, enforceDBDecorators, InternalError, OperationKeys, ValidationError, } from "@decaf-ts/db-decorators";
|
|
5
|
+
export class CouchDBRepository extends Repository {
|
|
6
|
+
constructor(adapter, model) {
|
|
7
|
+
super(adapter, model);
|
|
8
|
+
}
|
|
9
|
+
assignMetadata(target, source) {
|
|
10
|
+
const apply = (instance, carrier) => {
|
|
11
|
+
const metadataSource = carrier ?? instance;
|
|
12
|
+
const metadata = CouchDBAdapter.getMetadata(metadataSource);
|
|
13
|
+
if (metadata)
|
|
14
|
+
CouchDBAdapter.setMetadata(instance, metadata);
|
|
15
|
+
return instance;
|
|
16
|
+
};
|
|
17
|
+
if (Array.isArray(target)) {
|
|
18
|
+
return target.map((model, index) => {
|
|
19
|
+
const carrier = Array.isArray(source) ? source[index] : source;
|
|
20
|
+
return apply(model, carrier);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const carrier = Array.isArray(source) ? source?.[0] : source;
|
|
24
|
+
return apply(target, carrier);
|
|
25
|
+
}
|
|
26
|
+
async create(model, ...args) {
|
|
27
|
+
const result = await super.create(model, ...args);
|
|
28
|
+
this.assignMetadata(result);
|
|
29
|
+
this.assignMetadata(model, result);
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
async createAll(models, ...args) {
|
|
33
|
+
const results = await super.createAll(models, ...args);
|
|
34
|
+
this.assignMetadata(results);
|
|
35
|
+
this.assignMetadata(models, results);
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
async read(id, ...args) {
|
|
39
|
+
const result = await super.read(id, ...args);
|
|
40
|
+
return this.assignMetadata(result);
|
|
41
|
+
}
|
|
42
|
+
async readAll(ids, ...args) {
|
|
43
|
+
const results = await super.readAll(ids, ...args);
|
|
44
|
+
return this.assignMetadata(results);
|
|
45
|
+
}
|
|
46
|
+
async update(model, ...args) {
|
|
47
|
+
const result = await super.update(model, ...args);
|
|
48
|
+
this.assignMetadata(result);
|
|
49
|
+
this.assignMetadata(model, result);
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
async updateAll(models, ...args) {
|
|
53
|
+
const results = await super.updateAll(models, ...args);
|
|
54
|
+
this.assignMetadata(results);
|
|
55
|
+
this.assignMetadata(models, results);
|
|
56
|
+
return results;
|
|
57
|
+
}
|
|
58
|
+
async delete(id, ...args) {
|
|
59
|
+
const result = await super.delete(id, ...args);
|
|
60
|
+
return this.assignMetadata(result);
|
|
61
|
+
}
|
|
62
|
+
async deleteAll(ids, ...args) {
|
|
63
|
+
const results = await super.deleteAll(ids, ...args);
|
|
64
|
+
return this.assignMetadata(results);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @description Prepares a model for update.
|
|
68
|
+
* @summary Validates the model and prepares it for update in the database.
|
|
69
|
+
* @param {M} model - The model to update.
|
|
70
|
+
* @param {...any[]} args - Additional arguments.
|
|
71
|
+
* @return The prepared model and context arguments.
|
|
72
|
+
* @throws {InternalError} If the model has no primary key value.
|
|
73
|
+
* @throws {ValidationError} If the model fails validation.
|
|
74
|
+
*/
|
|
75
|
+
async updatePrefix(model, ...args) {
|
|
76
|
+
const contextArgs = await Context.args(OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
77
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
78
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
79
|
+
const pk = model[this.pk];
|
|
80
|
+
if (!pk)
|
|
81
|
+
throw new InternalError(`No value for the Id is defined under the property ${this.pk}`);
|
|
82
|
+
const oldModel = await this.read(pk, ...contextArgs.args);
|
|
83
|
+
model = Model.merge(oldModel, model, this.class);
|
|
84
|
+
if (shouldRunHandlers)
|
|
85
|
+
await enforceDBDecorators(this, contextArgs.context, model, OperationKeys.UPDATE, OperationKeys.ON, oldModel);
|
|
86
|
+
if (shouldValidate) {
|
|
87
|
+
const errors = await Promise.resolve(model.hasErrors(oldModel, ...Model.relations(this.class), ...(contextArgs.context.get("ignoredValidationProperties") || [])));
|
|
88
|
+
if (errors)
|
|
89
|
+
throw new ValidationError(errors.toString());
|
|
90
|
+
}
|
|
91
|
+
const oldMetadata = CouchDBAdapter.getMetadata(oldModel);
|
|
92
|
+
if (oldMetadata)
|
|
93
|
+
CouchDBAdapter.setMetadata(model, oldMetadata);
|
|
94
|
+
return [model, ...contextArgs.args];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @description Prepares multiple models for update.
|
|
98
|
+
* @summary Validates multiple models and prepares them for update in the database.
|
|
99
|
+
* @param {M[]} models - The models to update.
|
|
100
|
+
* @param {...any[]} args - Additional arguments.
|
|
101
|
+
* @return {Promise<any[]>} The prepared models and context arguments.
|
|
102
|
+
* @throws {InternalError} If any model has no primary key value.
|
|
103
|
+
* @throws {ValidationError} If any model fails validation.
|
|
104
|
+
*/
|
|
105
|
+
async updateAllPrefix(models, ...args) {
|
|
106
|
+
const contextArgs = await Context.args(OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
107
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
108
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
109
|
+
const ids = models.map((m) => {
|
|
110
|
+
const id = m[this.pk];
|
|
111
|
+
if (!id)
|
|
112
|
+
throw new InternalError("missing id on update operation");
|
|
113
|
+
return id;
|
|
114
|
+
});
|
|
115
|
+
const oldModels = await this.readAll(ids, ...contextArgs.args);
|
|
116
|
+
models = models.map((m, i) => {
|
|
117
|
+
m = Model.merge(oldModels[i], m, this.class);
|
|
118
|
+
const oldMetadata = CouchDBAdapter.getMetadata(oldModels[i]);
|
|
119
|
+
if (oldMetadata)
|
|
120
|
+
CouchDBAdapter.setMetadata(m, oldMetadata);
|
|
121
|
+
return m;
|
|
122
|
+
});
|
|
123
|
+
if (shouldRunHandlers)
|
|
124
|
+
await Promise.all(models.map((m, i) => enforceDBDecorators(this, contextArgs.context, m, OperationKeys.UPDATE, OperationKeys.ON, oldModels[i])));
|
|
125
|
+
if (shouldValidate) {
|
|
126
|
+
const ignoredProps = contextArgs.context.get("ignoredValidationProperties") || [];
|
|
127
|
+
const errors = await Promise.all(models.map((m, i) => Promise.resolve(m.hasErrors(oldModels[i], m, ...ignoredProps))));
|
|
128
|
+
const errorMessages = errors.reduce((accum, e, i) => {
|
|
129
|
+
if (e)
|
|
130
|
+
accum =
|
|
131
|
+
typeof accum === "string"
|
|
132
|
+
? accum + `\n - ${i}: ${e.toString()}`
|
|
133
|
+
: ` - ${i}: ${e.toString()}`;
|
|
134
|
+
return accum;
|
|
135
|
+
}, undefined);
|
|
136
|
+
if (errorMessages)
|
|
137
|
+
throw new ValidationError(errorMessages);
|
|
138
|
+
}
|
|
139
|
+
models.forEach((m, i) => {
|
|
140
|
+
const oldMetadata = CouchDBAdapter.getMetadata(oldModels[i]);
|
|
141
|
+
if (oldMetadata)
|
|
142
|
+
CouchDBAdapter.setMetadata(m, oldMetadata);
|
|
143
|
+
});
|
|
144
|
+
return [models, ...contextArgs.args];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Sequence as Seq } from "../model/CouchDBSequence";
|
|
2
|
-
import { Adapter, SequenceOptions } from "@decaf-ts/core";
|
|
2
|
+
import { Adapter, MaybeContextualArg, SequenceOptions } from "@decaf-ts/core";
|
|
3
3
|
import { Sequence } from "@decaf-ts/core";
|
|
4
4
|
import { MangoQuery } from "../types";
|
|
5
|
-
import { CouchDBRepository } from "../
|
|
5
|
+
import { CouchDBRepository } from "../repository";
|
|
6
6
|
/**
|
|
7
7
|
* @summary Abstract implementation of a Sequence
|
|
8
8
|
* @description provides the basic functionality for {@link Sequence}s
|
|
@@ -13,20 +13,13 @@ import { CouchDBRepository } from "../interfaces";
|
|
|
13
13
|
* @implements Sequence
|
|
14
14
|
*/
|
|
15
15
|
export declare class CouchDBSequence extends Sequence {
|
|
16
|
-
protected repo: CouchDBRepository<Seq, any
|
|
17
|
-
constructor(options: SequenceOptions, adapter: Adapter<any, any, MangoQuery, any
|
|
16
|
+
protected repo: CouchDBRepository<Seq, any>;
|
|
17
|
+
constructor(options: SequenceOptions, adapter: Adapter<any, any, MangoQuery, any>);
|
|
18
18
|
/**
|
|
19
19
|
* @summary Retrieves the current value for the sequence
|
|
20
20
|
* @protected
|
|
21
21
|
*/
|
|
22
|
-
current(): Promise<string | number | bigint>;
|
|
23
|
-
/**
|
|
24
|
-
* @summary Parses the {@link Sequence} value
|
|
25
|
-
*
|
|
26
|
-
* @protected
|
|
27
|
-
* @param value
|
|
28
|
-
*/
|
|
29
|
-
private parse;
|
|
22
|
+
current(...args: MaybeContextualArg<any>): Promise<string | number | bigint>;
|
|
30
23
|
/**
|
|
31
24
|
* @summary increments the sequence
|
|
32
25
|
* @description Sequence specific implementation
|
|
@@ -37,11 +30,19 @@ export declare class CouchDBSequence extends Sequence {
|
|
|
37
30
|
*/
|
|
38
31
|
private increment;
|
|
39
32
|
/**
|
|
40
|
-
* @
|
|
41
|
-
* @
|
|
42
|
-
*
|
|
43
|
-
*
|
|
33
|
+
* @description Gets the next value in the sequence
|
|
34
|
+
* @summary Retrieves the current value of the sequence and increments it by the
|
|
35
|
+
* configured increment amount. This is the main method used to get a new sequential value.
|
|
36
|
+
* @return A promise that resolves to the next value in the sequence
|
|
37
|
+
*/
|
|
38
|
+
next(...argz: MaybeContextualArg<any>): Promise<number | string | bigint>;
|
|
39
|
+
/**
|
|
40
|
+
* @description Generates a range of sequential values
|
|
41
|
+
* @summary Retrieves a specified number of sequential values from the sequence.
|
|
42
|
+
* This is useful when you need to allocate multiple IDs at once.
|
|
43
|
+
* The method increments the sequence by the total amount needed and returns all values in the range.
|
|
44
|
+
* @param {number} count - The number of sequential values to generate
|
|
45
|
+
* @return A promise that resolves to an array of sequential values
|
|
44
46
|
*/
|
|
45
|
-
|
|
46
|
-
range(count: number): Promise<(number | string | bigint)[]>;
|
|
47
|
+
range(count: number, ...argz: MaybeContextualArg<any>): Promise<(number | string | bigint)[]>;
|
|
47
48
|
}
|