@venizia/ignis 0.1.1-7 → 0.1.1-8
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/base/repositories/common/types.d.ts +42 -13
- package/dist/base/repositories/common/types.d.ts.map +1 -1
- package/dist/base/repositories/core/abstract.d.ts +38 -13
- package/dist/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/base/repositories/core/abstract.js +71 -0
- package/dist/base/repositories/core/abstract.js.map +1 -1
- package/dist/connectors/postgres/repositories/core/readable.d.ts +6 -13
- package/dist/connectors/postgres/repositories/core/readable.d.ts.map +1 -1
- package/dist/connectors/postgres/repositories/core/readable.js +8 -0
- package/dist/connectors/postgres/repositories/core/readable.js.map +1 -1
- package/dist/connectors/search/repositories/core/readable.d.ts +6 -13
- package/dist/connectors/search/repositories/core/readable.d.ts.map +1 -1
- package/dist/connectors/search/repositories/core/readable.js +14 -1
- package/dist/connectors/search/repositories/core/readable.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AbstractDataSource, ITransaction } from '../../../base/datasources';
|
|
2
2
|
import type { AbstractEntity, IdType } from '../../../base/models';
|
|
3
3
|
import { z } from '@hono/zod-openapi';
|
|
4
|
-
import type { TLogLevel, TNullable } from '@venizia/ignis-helpers';
|
|
4
|
+
import type { IRetryBackoffOptions, TLogLevel, TNullable } from '@venizia/ignis-helpers';
|
|
5
5
|
import type { Column, SQL } from 'drizzle-orm';
|
|
6
6
|
import type { TFilter, TWhere } from '../query-schemas';
|
|
7
7
|
import type { TLockStrength } from './constants';
|
|
@@ -71,6 +71,42 @@ export interface IExtraOptions extends IWithTransaction {
|
|
|
71
71
|
/** Row-level locking. Requires transaction. Incompatible with include/fields (Query API). */
|
|
72
72
|
lock?: TLockOptions;
|
|
73
73
|
}
|
|
74
|
+
/** Read-after-write retry for read verbs behind a replicated pool. The read is re-executed while
|
|
75
|
+
* `until(result)` returns false; on exhaustion the last result is returned as-is. */
|
|
76
|
+
export interface IReadRetryOptions<TResult> {
|
|
77
|
+
/** Default 3. */
|
|
78
|
+
maxAttempts?: number;
|
|
79
|
+
/** Total budget across attempts AND sleeps. Default: unlimited. */
|
|
80
|
+
maxTotalMs?: number;
|
|
81
|
+
/** Aborts between attempts and during backoff sleeps - pass the request signal so a cancelled
|
|
82
|
+
* request stops retrying instead of finishing the loop on a connection nobody is reading. */
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
/** Default: EXPONENTIAL from 50ms, capped at 500ms, EQUAL jitter - tuned for replica lag. */
|
|
85
|
+
backoff?: IRetryBackoffOptions;
|
|
86
|
+
/** Retry while false. Default per verb: findOne/findById non-null, find non-empty. */
|
|
87
|
+
until?: (result: TResult) => boolean;
|
|
88
|
+
}
|
|
89
|
+
/** Intersected into READ verb signatures only. A write verb's options type has no `retry`, so an
|
|
90
|
+
* inline `{ retry }` is rejected at compile time; a pre-built object carrying it is inert, never
|
|
91
|
+
* read. */
|
|
92
|
+
export interface IWithReadRetry<TResult> {
|
|
93
|
+
retry?: IReadRetryOptions<TResult>;
|
|
94
|
+
}
|
|
95
|
+
/** The `shouldQueryRange: true` result envelope. */
|
|
96
|
+
export type TDataWithRange<R> = {
|
|
97
|
+
data: Array<R>;
|
|
98
|
+
range: TDataRange;
|
|
99
|
+
};
|
|
100
|
+
/** Options for `find` returning a plain array - the retry predicate sees `Array<R>`. */
|
|
101
|
+
export type TFindOptions<TOptions extends IExtraOptions, R> = TOptions & {
|
|
102
|
+
shouldQueryRange?: false;
|
|
103
|
+
} & IWithReadRetry<Array<R>>;
|
|
104
|
+
/** Options for `find` with the range envelope - the retry predicate sees `{ data, range }`. */
|
|
105
|
+
export type TFindRangeOptions<TOptions extends IExtraOptions, R> = TOptions & {
|
|
106
|
+
shouldQueryRange: true;
|
|
107
|
+
} & IWithReadRetry<TDataWithRange<R>>;
|
|
108
|
+
/** Options for `findOne`/`findById` - the retry predicate sees `TNullable<R>`. */
|
|
109
|
+
export type TFindOneOptions<TOptions extends IExtraOptions, R> = TOptions & IWithReadRetry<TNullable<R>>;
|
|
74
110
|
/** Base repository interface shared by every engine. Engine-specific accessors (postgres's
|
|
75
111
|
* `getEntitySchema()`/`getConnector()`) stay on the connector's own repository tier. */
|
|
76
112
|
export interface IRepository {
|
|
@@ -90,27 +126,20 @@ export interface IReadableRepository<TDataObject extends object = object, ExtraO
|
|
|
90
126
|
}): Promise<boolean>;
|
|
91
127
|
find<R = TDataObject>(opts: {
|
|
92
128
|
filter: TFilter<TDataObject>;
|
|
93
|
-
options: ExtraOptions
|
|
94
|
-
|
|
95
|
-
};
|
|
96
|
-
}): Promise<{
|
|
97
|
-
data: Array<R>;
|
|
98
|
-
range: TDataRange;
|
|
99
|
-
}>;
|
|
129
|
+
options: TFindRangeOptions<ExtraOptions, R>;
|
|
130
|
+
}): Promise<TDataWithRange<R>>;
|
|
100
131
|
find<R = TDataObject>(opts: {
|
|
101
132
|
filter: TFilter<TDataObject>;
|
|
102
|
-
options?: ExtraOptions
|
|
103
|
-
shouldQueryRange?: false;
|
|
104
|
-
};
|
|
133
|
+
options?: TFindOptions<ExtraOptions, R>;
|
|
105
134
|
}): Promise<Array<R>>;
|
|
106
135
|
findOne<R = TDataObject>(opts: {
|
|
107
136
|
filter: TFilter<TDataObject>;
|
|
108
|
-
options?: ExtraOptions
|
|
137
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
109
138
|
}): Promise<TNullable<R>>;
|
|
110
139
|
findById<R = TDataObject>(opts: {
|
|
111
140
|
id: IdType;
|
|
112
141
|
filter?: Omit<TFilter<TDataObject>, 'where'>;
|
|
113
|
-
options?: ExtraOptions
|
|
142
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
114
143
|
}): Promise<TNullable<R>>;
|
|
115
144
|
}
|
|
116
145
|
/** Interface for create operations. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { AbstractEntity, IdType } from '../../../base/models';
|
|
|
3
3
|
import type { IModelMetadata } from '../../../helpers/inversion';
|
|
4
4
|
import type { TClass, TNullable } from '@venizia/ignis-helpers';
|
|
5
5
|
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
6
|
-
import type { IExtraOptions, IPersistableRepository, TCount,
|
|
6
|
+
import type { IExtraOptions, IPersistableRepository, IWithReadRetry, TCount, TDataWithRange, TFindOneOptions, TFindOptions, TFindRangeOptions, TRepositoryOperationScope } from '../common';
|
|
7
7
|
import type { TFilter, TWhere } from '../query-schemas';
|
|
8
8
|
/** Engine-neutral repository plumbing - lazy dataSource/entity resolution, class-keyed `@model`
|
|
9
9
|
* settings, operation scope. `TOptions` defaults to `IExtraOptions` so connectors can narrow it while staying assignable to this base. */
|
|
@@ -42,6 +42,38 @@ export declare abstract class AbstractRepository<TDataObject extends object, TPe
|
|
|
42
42
|
protected resolveEntity(): AbstractEntity;
|
|
43
43
|
/** Rejects a verb the current operation scope does not permit. */
|
|
44
44
|
protected denyOperation(methodName: string): never;
|
|
45
|
+
/** Shared retry orchestration for read verbs. No `retry` option: zero overhead, today's exact
|
|
46
|
+
* path. Inside a transaction: skipped - the pool routes transactions to the primary, so there
|
|
47
|
+
* is no replica lag to wait out. */
|
|
48
|
+
protected executeReadWithRetry<TResult>(opts: {
|
|
49
|
+
operation: string;
|
|
50
|
+
options: IExtraOptions & IWithReadRetry<TResult>;
|
|
51
|
+
defaultUntil: (result: TResult) => boolean;
|
|
52
|
+
execution: () => Promise<TResult>;
|
|
53
|
+
}): Promise<TResult>;
|
|
54
|
+
/** A copy of `options` without `retry`, so re-entering a read verb takes its non-retry path -
|
|
55
|
+
* what keeps the retry recursion single-depth. Copy-then-delete rather than a rest-destructure
|
|
56
|
+
* (lint rejects the unused rest sibling) or `lodash/omit` (its `Omit<>` return type is not
|
|
57
|
+
* assignable back to the generic `TOptions`). */
|
|
58
|
+
private omitReadRetry;
|
|
59
|
+
/** `find`, re-executed until the retry predicate holds. Connectors dispatch here from `find`
|
|
60
|
+
* when `options.retry` is set. */
|
|
61
|
+
protected findUntil<R = TDataObject>(opts: {
|
|
62
|
+
filter: TFilter<TDataObject>;
|
|
63
|
+
options: TFindOptions<TOptions, R>;
|
|
64
|
+
}): Promise<Array<R>>;
|
|
65
|
+
/** `find` with the range envelope, re-executed until the retry predicate holds. Split from
|
|
66
|
+
* `findUntil` so each result shape is checked against its own `find` overload. */
|
|
67
|
+
protected findRangeUntil<R = TDataObject>(opts: {
|
|
68
|
+
filter: TFilter<TDataObject>;
|
|
69
|
+
options: TFindRangeOptions<TOptions, R>;
|
|
70
|
+
}): Promise<TDataWithRange<R>>;
|
|
71
|
+
/** `findOne`, re-executed until the retry predicate holds. Also serves `findById` via its
|
|
72
|
+
* findOne delegation. */
|
|
73
|
+
protected findOneUntil<R = TDataObject>(opts: {
|
|
74
|
+
filter: TFilter<TDataObject>;
|
|
75
|
+
options: TFindOneOptions<TOptions, R>;
|
|
76
|
+
}): Promise<TNullable<R>>;
|
|
45
77
|
abstract count(opts: {
|
|
46
78
|
where: TWhere<TDataObject>;
|
|
47
79
|
options?: TOptions;
|
|
@@ -52,27 +84,20 @@ export declare abstract class AbstractRepository<TDataObject extends object, TPe
|
|
|
52
84
|
}): Promise<boolean>;
|
|
53
85
|
abstract find<R = TDataObject>(opts: {
|
|
54
86
|
filter: TFilter<TDataObject>;
|
|
55
|
-
options: TOptions
|
|
56
|
-
|
|
57
|
-
};
|
|
58
|
-
}): Promise<{
|
|
59
|
-
data: Array<R>;
|
|
60
|
-
range: TDataRange;
|
|
61
|
-
}>;
|
|
87
|
+
options: TFindRangeOptions<TOptions, R>;
|
|
88
|
+
}): Promise<TDataWithRange<R>>;
|
|
62
89
|
abstract find<R = TDataObject>(opts: {
|
|
63
90
|
filter: TFilter<TDataObject>;
|
|
64
|
-
options?: TOptions
|
|
65
|
-
shouldQueryRange?: false;
|
|
66
|
-
};
|
|
91
|
+
options?: TFindOptions<TOptions, R>;
|
|
67
92
|
}): Promise<R[]>;
|
|
68
93
|
abstract findOne<R = TDataObject>(opts: {
|
|
69
94
|
filter: TFilter<TDataObject>;
|
|
70
|
-
options?: TOptions
|
|
95
|
+
options?: TFindOneOptions<TOptions, R>;
|
|
71
96
|
}): Promise<TNullable<R>>;
|
|
72
97
|
abstract findById<R = TDataObject>(opts: {
|
|
73
98
|
id: IdType;
|
|
74
99
|
filter?: Omit<TFilter<TDataObject>, 'where'>;
|
|
75
|
-
options?: TOptions
|
|
100
|
+
options?: TFindOneOptions<TOptions, R>;
|
|
76
101
|
}): Promise<TNullable<R>>;
|
|
77
102
|
abstract create(opts: {
|
|
78
103
|
data: TPersistObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,6 +93,77 @@ class AbstractRepository extends ignis_helpers_1.BaseHelper {
|
|
|
93
93
|
message: `[${methodName}] Repository operation is NOT ALLOWED | scope: ${this.operationScope}`,
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
+
/** Shared retry orchestration for read verbs. No `retry` option: zero overhead, today's exact
|
|
97
|
+
* path. Inside a transaction: skipped - the pool routes transactions to the primary, so there
|
|
98
|
+
* is no replica lag to wait out. */
|
|
99
|
+
executeReadWithRetry(opts) {
|
|
100
|
+
const { operation, options, defaultUntil, execution } = opts;
|
|
101
|
+
if (!options.retry) {
|
|
102
|
+
return execution();
|
|
103
|
+
}
|
|
104
|
+
if (options.transaction) {
|
|
105
|
+
this.logger.for(operation).debug('Read retry skipped inside transaction');
|
|
106
|
+
return execution();
|
|
107
|
+
}
|
|
108
|
+
const { maxAttempts, maxTotalMs, signal, backoff, until } = options.retry;
|
|
109
|
+
return (0, ignis_helpers_1.executeWithRetryUntil)({
|
|
110
|
+
operation: [this.constructor.name, operation].join('.'),
|
|
111
|
+
execution,
|
|
112
|
+
until: until ?? defaultUntil,
|
|
113
|
+
maxAttempts,
|
|
114
|
+
maxTotalMs,
|
|
115
|
+
signal,
|
|
116
|
+
backoff: backoff ?? {
|
|
117
|
+
strategy: ignis_helpers_1.RetryBackoffStrategies.EXPONENTIAL,
|
|
118
|
+
initialDelayMs: 50,
|
|
119
|
+
maxDelayMs: 500,
|
|
120
|
+
jitter: ignis_helpers_1.RetryJitterModes.EQUAL,
|
|
121
|
+
},
|
|
122
|
+
logger: this.logger,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/** A copy of `options` without `retry`, so re-entering a read verb takes its non-retry path -
|
|
126
|
+
* what keeps the retry recursion single-depth. Copy-then-delete rather than a rest-destructure
|
|
127
|
+
* (lint rejects the unused rest sibling) or `lodash/omit` (its `Omit<>` return type is not
|
|
128
|
+
* assignable back to the generic `TOptions`). */
|
|
129
|
+
omitReadRetry(options) {
|
|
130
|
+
const rest = { ...options };
|
|
131
|
+
delete rest.retry;
|
|
132
|
+
return rest;
|
|
133
|
+
}
|
|
134
|
+
/** `find`, re-executed until the retry predicate holds. Connectors dispatch here from `find`
|
|
135
|
+
* when `options.retry` is set. */
|
|
136
|
+
findUntil(opts) {
|
|
137
|
+
const options = this.omitReadRetry(opts.options);
|
|
138
|
+
return this.executeReadWithRetry({
|
|
139
|
+
operation: 'find',
|
|
140
|
+
options: opts.options,
|
|
141
|
+
defaultUntil: result => result.length > 0,
|
|
142
|
+
execution: () => this.find({ filter: opts.filter, options }),
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/** `find` with the range envelope, re-executed until the retry predicate holds. Split from
|
|
146
|
+
* `findUntil` so each result shape is checked against its own `find` overload. */
|
|
147
|
+
findRangeUntil(opts) {
|
|
148
|
+
const options = this.omitReadRetry(opts.options);
|
|
149
|
+
return this.executeReadWithRetry({
|
|
150
|
+
operation: 'find',
|
|
151
|
+
options: opts.options,
|
|
152
|
+
defaultUntil: result => result.data.length > 0,
|
|
153
|
+
execution: () => this.find({ filter: opts.filter, options }),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/** `findOne`, re-executed until the retry predicate holds. Also serves `findById` via its
|
|
157
|
+
* findOne delegation. */
|
|
158
|
+
findOneUntil(opts) {
|
|
159
|
+
const options = this.omitReadRetry(opts.options);
|
|
160
|
+
return this.executeReadWithRetry({
|
|
161
|
+
operation: 'findOne',
|
|
162
|
+
options: opts.options,
|
|
163
|
+
defaultUntil: result => result !== null && result !== undefined,
|
|
164
|
+
execution: () => this.findOne({ filter: opts.filter, options }),
|
|
165
|
+
});
|
|
166
|
+
}
|
|
96
167
|
updateBy(opts) {
|
|
97
168
|
const { data, where, options } = opts;
|
|
98
169
|
if (options?.shouldReturn === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":";;;AAGA,mDAAuD;AAEvD,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IdType } from '../../../../base/models';
|
|
2
|
-
import type { IExtraOptions, TCount,
|
|
2
|
+
import type { IExtraOptions, TCount, TDataWithRange, TFilter, TFindOneOptions, TFindOptions, TFindRangeOptions, TWhere } from '../../../../base/repositories/common';
|
|
3
3
|
import type { IPostgresDataSource } from '../../../../connectors/postgres/datasources';
|
|
4
4
|
import type { BaseRelationalEntity, TTableInsert, TTableObject, TTableSchemaWithId } from '../../../../connectors/postgres/models';
|
|
5
5
|
import type { TClass, TNullable } from '@venizia/ignis-helpers';
|
|
@@ -25,29 +25,22 @@ export declare class ReadableRelationalRepository<EntitySchema extends TTableSch
|
|
|
25
25
|
}): Promise<Array<R>>;
|
|
26
26
|
find<R = DataObject>(opts: {
|
|
27
27
|
filter: TFilter<DataObject>;
|
|
28
|
-
options: ExtraOptions
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
}): Promise<{
|
|
32
|
-
data: Array<R>;
|
|
33
|
-
range: TDataRange;
|
|
34
|
-
}>;
|
|
28
|
+
options: TFindRangeOptions<ExtraOptions, R>;
|
|
29
|
+
}): Promise<TDataWithRange<R>>;
|
|
35
30
|
find<R = DataObject>(opts: {
|
|
36
31
|
filter: TFilter<DataObject>;
|
|
37
|
-
options?: ExtraOptions
|
|
38
|
-
shouldQueryRange?: false;
|
|
39
|
-
};
|
|
32
|
+
options?: TFindOptions<ExtraOptions, R>;
|
|
40
33
|
}): Promise<Array<R>>;
|
|
41
34
|
/** Auto-selects Core API or Query API based on filter complexity. */
|
|
42
35
|
findOne<R = DataObject>(opts: {
|
|
43
36
|
filter: TFilter<DataObject>;
|
|
44
|
-
options?: ExtraOptions
|
|
37
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
45
38
|
}): Promise<TNullable<R>>;
|
|
46
39
|
/** Delegates to findOne with id in the where clause. */
|
|
47
40
|
findById<R = DataObject>(opts: {
|
|
48
41
|
id: IdType;
|
|
49
42
|
filter?: Omit<TFilter<DataObject>, 'where'>;
|
|
50
|
-
options?: ExtraOptions
|
|
43
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
51
44
|
}): Promise<TNullable<R>>;
|
|
52
45
|
count(opts: {
|
|
53
46
|
where: TWhere<DataObject>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/postgres/repositories/core/readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/postgres/repositories/core/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,11 @@ class ReadableRelationalRepository extends base_1.RelationalBaseRepository {
|
|
|
88
88
|
/** Auto-selects Core API or Query API based on filter complexity. */
|
|
89
89
|
async find(opts) {
|
|
90
90
|
const { filter, options } = opts;
|
|
91
|
+
if (options?.retry) {
|
|
92
|
+
return options.shouldQueryRange === true
|
|
93
|
+
? this.findRangeUntil({ filter, options })
|
|
94
|
+
: this.findUntil({ filter, options });
|
|
95
|
+
}
|
|
91
96
|
const shouldQueryRange = options?.shouldQueryRange === true;
|
|
92
97
|
const baseFilter = this.applyDefaultFilter({
|
|
93
98
|
userFilter: filter,
|
|
@@ -136,6 +141,9 @@ class ReadableRelationalRepository extends base_1.RelationalBaseRepository {
|
|
|
136
141
|
}
|
|
137
142
|
/** Auto-selects Core API or Query API based on filter complexity. */
|
|
138
143
|
async findOne(opts) {
|
|
144
|
+
if (opts.options?.retry) {
|
|
145
|
+
return this.findOneUntil({ filter: opts.filter, options: opts.options });
|
|
146
|
+
}
|
|
139
147
|
const filter = opts.filter;
|
|
140
148
|
const useCoreAPI = this.canUseCoreAPI(filter);
|
|
141
149
|
this.validateLockOptions({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../src/connectors/postgres/repositories/core/readable.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../src/connectors/postgres/repositories/core/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TNullable } from '@venizia/ignis-helpers';
|
|
2
|
-
import type { IExtraOptions, TCount,
|
|
2
|
+
import type { IExtraOptions, TCount, TDataWithRange, TFilter, TFindOneOptions, TFindOptions, TFindRangeOptions, TWhere } from '../../../../base/repositories/common';
|
|
3
3
|
import type { IdType } from '../../../../base/models';
|
|
4
4
|
import type { ISearchResult } from '../../../../connectors/search';
|
|
5
5
|
import type { TSearchInput } from '../../../../connectors/search/repositories/common';
|
|
@@ -17,27 +17,20 @@ export declare class ReadableSearchRepository<TDocument extends object = object,
|
|
|
17
17
|
}): Promise<boolean>;
|
|
18
18
|
find<R = TDocument>(opts: {
|
|
19
19
|
filter: TFilter;
|
|
20
|
-
options: IExtraOptions
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
}): Promise<{
|
|
24
|
-
data: Array<R>;
|
|
25
|
-
range: TDataRange;
|
|
26
|
-
}>;
|
|
20
|
+
options: TFindRangeOptions<IExtraOptions, R>;
|
|
21
|
+
}): Promise<TDataWithRange<R>>;
|
|
27
22
|
find<R = TDocument>(opts: {
|
|
28
23
|
filter: TFilter;
|
|
29
|
-
options?: IExtraOptions
|
|
30
|
-
shouldQueryRange?: false;
|
|
31
|
-
};
|
|
24
|
+
options?: TFindOptions<IExtraOptions, R>;
|
|
32
25
|
}): Promise<Array<R>>;
|
|
33
26
|
findOne<R = TDocument>(opts: {
|
|
34
27
|
filter: TFilter;
|
|
35
|
-
options?: IExtraOptions
|
|
28
|
+
options?: TFindOneOptions<IExtraOptions, R>;
|
|
36
29
|
}): Promise<TNullable<R>>;
|
|
37
30
|
/** Delegates to findOne with id in where - routes through buildQuery so hiddenFields/defaultFilter apply (a soft-deleted doc resolves to null, not fetched directly). */
|
|
38
31
|
findById<R = TDocument>(opts: {
|
|
39
32
|
id: IdType;
|
|
40
|
-
options?: IExtraOptions
|
|
33
|
+
options?: TFindOneOptions<IExtraOptions, R>;
|
|
41
34
|
}): Promise<TNullable<R>>;
|
|
42
35
|
/** Unified search entry, discriminated by `mode`: `raw` is a full passthrough (no dialect/
|
|
43
36
|
* defaultFilter/hiddenFields); keyword/semantic/hybrid translate via the dialect same as `find()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/search/repositories/core/readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/search/repositories/core/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,11 @@ class ReadableSearchRepository extends base_1.SearchBaseRepository {
|
|
|
29
29
|
* already comes back in the same call as `hits`, so unlike SQL no second count query is needed. */
|
|
30
30
|
async find(opts) {
|
|
31
31
|
const { filter, options } = opts;
|
|
32
|
+
if (options?.retry) {
|
|
33
|
+
return options.shouldQueryRange === true
|
|
34
|
+
? this.findRangeUntil({ filter, options })
|
|
35
|
+
: this.findUntil({ filter, options });
|
|
36
|
+
}
|
|
32
37
|
this.assertNoTransaction(options);
|
|
33
38
|
this.assertNoLock(options);
|
|
34
39
|
// Omitted limit falls back to @model settings.defaultLimit then DEFAULT_LIMIT, rather than leaving `per_page` unset (an unbounded query).
|
|
@@ -64,7 +69,15 @@ class ReadableSearchRepository extends base_1.SearchBaseRepository {
|
|
|
64
69
|
}
|
|
65
70
|
async findOne(opts) {
|
|
66
71
|
const { filter, options } = opts;
|
|
67
|
-
|
|
72
|
+
if (options?.retry) {
|
|
73
|
+
return this.findOneUntil({ filter, options });
|
|
74
|
+
}
|
|
75
|
+
// `retry` is already handled above, so it is absent here; TFindOneOptions's retry generic
|
|
76
|
+
// (TNullable<R>) does not unify with find's own (Array<R>), hence the options-only cast.
|
|
77
|
+
const results = await this.find({
|
|
78
|
+
filter: { ...filter, limit: 1 },
|
|
79
|
+
options: options,
|
|
80
|
+
});
|
|
68
81
|
return results[0] ?? null;
|
|
69
82
|
}
|
|
70
83
|
/** Delegates to findOne with id in where - routes through buildQuery so hiddenFields/defaultFilter apply (a soft-deleted doc resolves to null, not fetched directly). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../src/connectors/search/repositories/core/readable.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../src/connectors/search/repositories/core/readable.ts"],"names":[],"mappings":";;;AAWA,uDAA2E;AAI3E,oEAAsE;AAEtE,iCAA8C;AAE9C,6HAA6H;AAC7H,MAAa,wBAGX,SAAQ,2BAA4C;IACpD,KAAK,CAAC,KAAK,CAAC,IAAgD;QAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YAC7B,uBAAuB,EAAE,IAAI,CAAC,OAAO,EAAE,uBAAuB;SAC/D,CAAC,CAAC;QAEH,2FAA2F;QAC3F,iFAAiF;QACjF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChD,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAgD;QAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAYD;uGACmG;IACnG,KAAK,CAAC,IAAI,CAAgB,IAGzB;QACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,gBAAgB,KAAK,IAAI;gBACtC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,0IAA0I;QAC1I,MAAM,eAAe,GAAY;YAC/B,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,sBAAa;SAC3D,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,MAAM,EAAE,eAAe;YACvB,uBAAuB,EAAE,OAAO,EAAE,uBAAuB;SAC1D,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAY;YACpD,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC/B,sGAAsG;QACtG,iGAAiG;QACjG,qFAAqF;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAQ,CAAC;QAEpF,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAA,uBAAc,EAAC;gBACpB,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,MAAM,EAAE,eAAe,CAAC,MAAM;gBAC9B,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,KAAK,EAAE,KAAK;aACb,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAgB,IAG5B;QACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,YAAY,CAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,0FAA0F;QAC1F,yFAAyF;QACzF,MAAM,OAAO,GAAa,MAAM,IAAI,CAAC,IAAI,CAAI;YAC3C,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;YAC/B,OAAO,EAAE,OAAyC;SACnD,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,yKAAyK;IACzK,QAAQ,CAAgB,IAGvB;QACC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;kGAE8F;IAC9F,KAAK,CAAC,MAAM,CACV,IAAgD;QAEhD,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAW,CAAC,GAAG,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAI;gBAC9B,UAAU,EAAE,IAAI,CAAC,cAAc;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,OAAO,EAAE,uBAAuB;SAC/D,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAI;YAC5C,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,GAAG,GAAG;gBACN,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC9C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAWD,MAAM,CAAgB,KAGrB;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAWD,SAAS,CAAgB,KAGxB;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAaD,UAAU,CAAgB,KAIzB;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,KAIT;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAWD,UAAU,CAAgB,KAGzB;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,+FAA+F;IAC/F,SAAS,CAAC,KAGT;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAhPD,4DAgPC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis",
|
|
3
|
-
"version": "0.1.1-
|
|
3
|
+
"version": "0.1.1-8",
|
|
4
4
|
"description": "High-performance TypeScript server infrastructure combining LoopBack 4 enterprise architecture (decorator-based DI, repository pattern, component system) with Hono speed (~140k req/s). Features auto-generated OpenAPI docs, Drizzle ORM type-safe SQL, JWT/Basic authentication, Casbin authorization, convention-based bootstrapping, and pluggable components for health checks, Swagger UI, mail, Socket.IO, and static assets. Built for Bun and Node.js.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"access-control",
|
|
@@ -182,8 +182,8 @@
|
|
|
182
182
|
"prepublishOnly": "bun run rebuild"
|
|
183
183
|
},
|
|
184
184
|
"dependencies": {
|
|
185
|
-
"@venizia/ignis-boot": "^0.1.1-
|
|
186
|
-
"@venizia/ignis-helpers": "^0.1.1-
|
|
185
|
+
"@venizia/ignis-boot": "^0.1.1-5",
|
|
186
|
+
"@venizia/ignis-helpers": "^0.1.1-5",
|
|
187
187
|
"@venizia/ignis-inversion": "^0.1.1-3",
|
|
188
188
|
"lodash": "^4.18.1",
|
|
189
189
|
"reflect-metadata": "^0.2.2"
|