@loopback/repository 2.2.1 → 2.5.1
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/CHANGELOG.md +57 -0
- package/dist/common-types.d.ts +1 -0
- package/dist/common-types.js +2 -0
- package/dist/common-types.js.map +1 -1
- package/dist/connectors/index.js +4 -0
- package/dist/connectors/index.js.map +1 -1
- package/dist/decorators/metadata.js +1 -0
- package/dist/decorators/metadata.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +1 -1
- package/dist/decorators/model.decorator.js +1 -0
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/repository.decorator.js +1 -0
- package/dist/decorators/repository.decorator.js.map +1 -1
- package/dist/define-model-class.js +1 -0
- package/dist/define-model-class.js.map +1 -1
- package/dist/define-repository-class.d.ts +119 -0
- package/dist/define-repository-class.js +98 -0
- package/dist/define-repository-class.js.map +1 -0
- package/dist/errors/entity-not-found.error.js +1 -0
- package/dist/errors/entity-not-found.error.js.map +1 -1
- package/dist/errors/invalid-relation.error.js +1 -0
- package/dist/errors/invalid-relation.error.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +34 -0
- package/dist/keys.js +44 -0
- package/dist/keys.js.map +1 -0
- package/dist/mixins/repository.mixin.d.ts +91 -9
- package/dist/mixins/repository.mixin.js +62 -20
- package/dist/mixins/repository.mixin.js.map +1 -1
- package/dist/model.d.ts +16 -1
- package/dist/model.js +61 -9
- package/dist/model.js.map +1 -1
- package/dist/query.js +1 -0
- package/dist/query.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to-accessor.js +1 -0
- package/dist/relations/belongs-to/belongs-to-accessor.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.decorator.js +1 -0
- package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.helpers.js +1 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +1 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.js +1 -0
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
- package/dist/relations/has-many/has-many-repository.factory.js +1 -0
- package/dist/relations/has-many/has-many-repository.factory.js.map +1 -1
- package/dist/relations/has-many/has-many-through.helpers.d.ts +74 -0
- package/dist/relations/has-many/has-many-through.helpers.js +145 -0
- package/dist/relations/has-many/has-many-through.helpers.js.map +1 -0
- package/dist/relations/has-many/has-many.decorator.js +1 -0
- package/dist/relations/has-many/has-many.decorator.js.map +1 -1
- package/dist/relations/has-many/has-many.helpers.d.ts +9 -0
- package/dist/relations/has-many/has-many.helpers.js +33 -21
- package/dist/relations/has-many/has-many.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js +1 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many.repository.js +1 -0
- package/dist/relations/has-many/has-many.repository.js.map +1 -1
- package/dist/relations/has-one/has-one-repository.factory.js +1 -0
- package/dist/relations/has-one/has-one-repository.factory.js.map +1 -1
- package/dist/relations/has-one/has-one.decorator.js +1 -0
- package/dist/relations/has-one/has-one.decorator.js.map +1 -1
- package/dist/relations/has-one/has-one.helpers.js +1 -0
- package/dist/relations/has-one/has-one.helpers.js.map +1 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.js +1 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-one/has-one.repository.js +1 -0
- package/dist/relations/has-one/has-one.repository.js.map +1 -1
- package/dist/relations/relation.decorator.js +1 -0
- package/dist/relations/relation.decorator.js.map +1 -1
- package/dist/relations/relation.helpers.js +1 -0
- package/dist/relations/relation.helpers.js.map +1 -1
- package/dist/relations/relation.types.d.ts +25 -27
- package/dist/relations/relation.types.js +2 -1
- package/dist/relations/relation.types.js.map +1 -1
- package/dist/repositories/constraint-utils.js +1 -0
- package/dist/repositories/constraint-utils.js.map +1 -1
- package/dist/repositories/index.js +1 -0
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/kv.repository.bridge.js +1 -0
- package/dist/repositories/kv.repository.bridge.js.map +1 -1
- package/dist/repositories/legacy-juggler-bridge.d.ts +3 -3
- package/dist/repositories/legacy-juggler-bridge.js +8 -18
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
- package/dist/repositories/repository.js +1 -0
- package/dist/repositories/repository.js.map +1 -1
- package/dist/transaction.js +1 -0
- package/dist/transaction.js.map +1 -1
- package/dist/type-resolver.d.ts +4 -0
- package/dist/type-resolver.js +9 -0
- package/dist/type-resolver.js.map +1 -1
- package/dist/types/any.js +1 -0
- package/dist/types/any.js.map +1 -1
- package/dist/types/array.js +1 -0
- package/dist/types/array.js.map +1 -1
- package/dist/types/boolean.js +1 -0
- package/dist/types/boolean.js.map +1 -1
- package/dist/types/buffer.js +1 -0
- package/dist/types/buffer.js.map +1 -1
- package/dist/types/date.js +1 -0
- package/dist/types/date.js.map +1 -1
- package/dist/types/index.d.ts +11 -9
- package/dist/types/index.js +33 -17
- package/dist/types/index.js.map +1 -1
- package/dist/types/model.js +1 -0
- package/dist/types/model.js.map +1 -1
- package/dist/types/null.d.ts +12 -0
- package/dist/types/null.js +33 -0
- package/dist/types/null.js.map +1 -0
- package/dist/types/number.js +1 -0
- package/dist/types/number.js.map +1 -1
- package/dist/types/object.js +1 -0
- package/dist/types/object.js.map +1 -1
- package/dist/types/string.js +1 -0
- package/dist/types/string.js.map +1 -1
- package/dist/types/union.js +1 -0
- package/dist/types/union.js.map +1 -1
- package/package.json +13 -14
- package/src/common-types.ts +1 -0
- package/src/define-repository-class.ts +170 -0
- package/src/index.ts +2 -0
- package/src/keys.ts +40 -0
- package/src/mixins/repository.mixin.ts +120 -25
- package/src/model.ts +74 -11
- package/src/relations/has-many/has-many-through.helpers.ts +193 -0
- package/src/relations/has-many/has-many.helpers.ts +41 -27
- package/src/relations/relation.types.ts +24 -30
- package/src/repositories/legacy-juggler-bridge.ts +16 -24
- package/src/type-resolver.ts +8 -0
- package/src/types/index.ts +11 -8
- package/src/types/null.ts +35 -0
- package/index.d.ts +0 -6
- package/index.js +0 -6
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { Binding } from '@loopback/context';
|
|
2
|
-
import { Application } from '@loopback/core';
|
|
1
|
+
import { Binding, BindingFromClassOptions } from '@loopback/context';
|
|
2
|
+
import { Application, Component, Constructor, MixinTarget } from '@loopback/core';
|
|
3
3
|
import { Class } from '../common-types';
|
|
4
4
|
import { SchemaMigrationOptions } from '../datasource';
|
|
5
5
|
import { juggler, Repository } from '../repositories';
|
|
6
|
+
import { BindingAddress, BindingFilter, JSONObject, Provider, Context, ContextSubscriptionManager, ContextEvent, Interceptor, InterceptorBindingOptions, ResolutionOptions, BindingKey, ValueOrPromise, ContextEventObserver, ContextObserver, Subscription, BindingComparator, ContextView, ResolutionSession, BindingCreationPolicy, ContextInspectOptions } from '@loopback/context';
|
|
7
|
+
import { Server, ApplicationConfig, ApplicationMetadata, LifeCycleObserver, ServiceOptions } from '@loopback/core';
|
|
6
8
|
/**
|
|
7
9
|
* A mixin class for Application that creates a .repository()
|
|
8
10
|
* function to register a repository automatically. Also overrides
|
|
@@ -17,13 +19,13 @@ import { juggler, Repository } from '../repositories';
|
|
|
17
19
|
* called <a href="#RepositoryMixinDoc">RepositoryMixinDoc</a>
|
|
18
20
|
*
|
|
19
21
|
*/
|
|
20
|
-
export declare function RepositoryMixin<T extends
|
|
22
|
+
export declare function RepositoryMixin<T extends MixinTarget<Application>>(superClass: T): {
|
|
21
23
|
new (...args: any[]): {
|
|
22
|
-
[x: string]: any;
|
|
23
24
|
/**
|
|
24
25
|
* Add a repository to this application.
|
|
25
26
|
*
|
|
26
27
|
* @param repoClass - The repository to add.
|
|
28
|
+
* @param nameOrOptions - Name or options for the binding
|
|
27
29
|
*
|
|
28
30
|
* @example
|
|
29
31
|
* ```ts
|
|
@@ -48,18 +50,19 @@ export declare function RepositoryMixin<T extends Class<any>>(superClass: T): {
|
|
|
48
50
|
* app.repository(NoteRepo);
|
|
49
51
|
* ```
|
|
50
52
|
*/
|
|
51
|
-
repository<R extends Repository<any>>(repoClass: Class<R>,
|
|
53
|
+
repository<R extends Repository<any>>(repoClass: Class<R>, nameOrOptions?: string | BindingFromClassOptions | undefined): Binding<R>;
|
|
52
54
|
/**
|
|
53
55
|
* Retrieve the repository instance from the given Repository class
|
|
54
56
|
*
|
|
55
57
|
* @param repo - The repository class to retrieve the instance of
|
|
56
58
|
*/
|
|
57
|
-
getRepository<
|
|
59
|
+
getRepository<R_2 extends Repository<any>>(repo: Class<R_2>): Promise<R_2>;
|
|
58
60
|
/**
|
|
59
61
|
* Add the dataSource to this application.
|
|
60
62
|
*
|
|
61
63
|
* @param dataSource - The dataSource to add.
|
|
62
|
-
* @param
|
|
64
|
+
* @param nameOrOptions - The binding name or options of the datasource;
|
|
65
|
+
* defaults to dataSource.name
|
|
63
66
|
*
|
|
64
67
|
* @example
|
|
65
68
|
* ```ts
|
|
@@ -77,12 +80,18 @@ export declare function RepositoryMixin<T extends Class<any>>(superClass: T): {
|
|
|
77
80
|
* }
|
|
78
81
|
* ```
|
|
79
82
|
*/
|
|
80
|
-
dataSource<D extends juggler.DataSource>(dataSource: D | Class<D>,
|
|
83
|
+
dataSource<D extends juggler.DataSource>(dataSource: D | Class<D>, nameOrOptions?: string | BindingFromClassOptions | undefined): Binding<D>;
|
|
84
|
+
/**
|
|
85
|
+
* Register a model class as a binding in the target context
|
|
86
|
+
* @param modelClass - Model class
|
|
87
|
+
*/
|
|
88
|
+
model<M extends Class<unknown>>(modelClass: M): Binding<M>;
|
|
81
89
|
/**
|
|
82
90
|
* Add a component to this application. Also mounts
|
|
83
91
|
* all the components repositories.
|
|
84
92
|
*
|
|
85
93
|
* @param component - The component to add.
|
|
94
|
+
* @param nameOrOptions - Name or options for the binding.
|
|
86
95
|
*
|
|
87
96
|
* @example
|
|
88
97
|
* ```ts
|
|
@@ -99,7 +108,7 @@ export declare function RepositoryMixin<T extends Class<any>>(superClass: T): {
|
|
|
99
108
|
* app.component(ProductComponent);
|
|
100
109
|
* ```
|
|
101
110
|
*/
|
|
102
|
-
component(
|
|
111
|
+
component<C extends Component = Component>(componentCtor: Constructor<C>, nameOrOptions?: string | BindingFromClassOptions | undefined): Binding<C>;
|
|
103
112
|
/**
|
|
104
113
|
* Get an instance of a component and mount all it's
|
|
105
114
|
* repositories. This function is intended to be used internally
|
|
@@ -122,6 +131,73 @@ export declare function RepositoryMixin<T extends Class<any>>(superClass: T): {
|
|
|
122
131
|
* preserving data or rebuild everything from scratch.
|
|
123
132
|
*/
|
|
124
133
|
migrateSchema(options?: SchemaMigrationOptions): Promise<void>;
|
|
134
|
+
readonly options: ApplicationConfig;
|
|
135
|
+
readonly state: string;
|
|
136
|
+
controller: <T_1>(controllerCtor: Constructor<T_1>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_1>;
|
|
137
|
+
server: <T_2 extends Server>(ctor: Constructor<T_2>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_2>;
|
|
138
|
+
servers: <T_3 extends Server>(ctors: Constructor<T_3>[]) => Binding<any>[];
|
|
139
|
+
getServer: <T_4 extends Server>(target: string | Constructor<T_4>) => Promise<T_4>;
|
|
140
|
+
start: () => Promise<void>;
|
|
141
|
+
stop: () => Promise<void>;
|
|
142
|
+
setMetadata: (metadata: ApplicationMetadata) => void;
|
|
143
|
+
lifeCycleObserver: <T_5 extends LifeCycleObserver>(ctor: Constructor<T_5>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_5>;
|
|
144
|
+
service: <S>(cls: Constructor<S | Provider<S>>, nameOrOptions?: string | ServiceOptions | undefined) => Binding<S>;
|
|
145
|
+
interceptor: (interceptor: Interceptor | Constructor<Provider<Interceptor>>, nameOrOptions?: string | InterceptorBindingOptions | undefined) => Binding<Interceptor>;
|
|
146
|
+
readonly name: string;
|
|
147
|
+
readonly subscriptionManager: ContextSubscriptionManager;
|
|
148
|
+
readonly parent: Context | undefined;
|
|
149
|
+
emitEvent: <T_6 extends ContextEvent>(type: string, event: T_6) => void;
|
|
150
|
+
emitError: (err: unknown) => void;
|
|
151
|
+
bind: <ValueType = any>(key: BindingAddress<ValueType>) => Binding<ValueType>;
|
|
152
|
+
add: (binding: Binding<unknown>) => Application;
|
|
153
|
+
configure: <ConfigValueType = any>(key?: string | BindingKey<unknown> | undefined) => Binding<ConfigValueType>;
|
|
154
|
+
getConfigAsValueOrPromise: <ConfigValueType_1>(key: BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: ResolutionOptions | undefined) => ValueOrPromise<ConfigValueType_1 | undefined>;
|
|
155
|
+
getConfig: <ConfigValueType_2>(key: BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: ResolutionOptions | undefined) => Promise<ConfigValueType_2 | undefined>;
|
|
156
|
+
getConfigSync: <ConfigValueType_3>(key: BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: ResolutionOptions | undefined) => ConfigValueType_3 | undefined;
|
|
157
|
+
unbind: (key: BindingAddress<unknown>) => boolean;
|
|
158
|
+
subscribe: (observer: ContextEventObserver) => Subscription;
|
|
159
|
+
unsubscribe: (observer: ContextEventObserver) => boolean;
|
|
160
|
+
close: () => void;
|
|
161
|
+
isSubscribed: (observer: ContextObserver) => boolean;
|
|
162
|
+
createView: <T_7 = unknown>(filter: BindingFilter, comparator?: BindingComparator | undefined) => ContextView<T_7>;
|
|
163
|
+
contains: (key: BindingAddress<unknown>) => boolean;
|
|
164
|
+
isBound: (key: BindingAddress<unknown>) => boolean;
|
|
165
|
+
getOwnerContext: (key: BindingAddress<unknown>) => Context | undefined;
|
|
166
|
+
find: <ValueType_1 = any>(pattern?: string | RegExp | BindingFilter | undefined) => Readonly<Binding<ValueType_1>>[];
|
|
167
|
+
findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<Binding<ValueType_2>>[];
|
|
168
|
+
get: {
|
|
169
|
+
<ValueType_3>(keyWithPath: BindingAddress<ValueType_3>, session?: ResolutionSession | undefined): Promise<ValueType_3>;
|
|
170
|
+
<ValueType_4>(keyWithPath: BindingAddress<ValueType_4>, options: ResolutionOptions): Promise<ValueType_4 | undefined>;
|
|
171
|
+
};
|
|
172
|
+
getSync: {
|
|
173
|
+
<ValueType_5>(keyWithPath: BindingAddress<ValueType_5>, session?: ResolutionSession | undefined): ValueType_5;
|
|
174
|
+
<ValueType_6>(keyWithPath: BindingAddress<ValueType_6>, options?: ResolutionOptions | undefined): ValueType_6 | undefined;
|
|
175
|
+
};
|
|
176
|
+
getBinding: {
|
|
177
|
+
<ValueType_7 = any>(key: BindingAddress<ValueType_7>): Binding<ValueType_7>;
|
|
178
|
+
<ValueType_8>(key: BindingAddress<ValueType_8>, options?: {
|
|
179
|
+
optional?: boolean | undefined;
|
|
180
|
+
} | undefined): Binding<ValueType_8> | undefined;
|
|
181
|
+
};
|
|
182
|
+
findOrCreateBinding: <T_8>(key: BindingAddress<T_8>, policy?: BindingCreationPolicy | undefined) => Binding<T_8>;
|
|
183
|
+
getValueOrPromise: <ValueType_9>(keyWithPath: BindingAddress<ValueType_9>, optionsOrSession?: ResolutionOptions | ResolutionSession | undefined) => ValueOrPromise<ValueType_9 | undefined>;
|
|
184
|
+
toJSON: () => JSONObject;
|
|
185
|
+
inspect: (options?: ContextInspectOptions | undefined) => JSONObject;
|
|
186
|
+
addListener: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
187
|
+
on: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
188
|
+
once: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
189
|
+
prependListener: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
190
|
+
prependOnceListener: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
191
|
+
removeListener: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
192
|
+
off: (event: string | symbol, listener: (...args: any[]) => void) => Application;
|
|
193
|
+
removeAllListeners: (event?: string | symbol | undefined) => Application;
|
|
194
|
+
setMaxListeners: (n: number) => Application;
|
|
195
|
+
getMaxListeners: () => number;
|
|
196
|
+
listeners: (event: string | symbol) => Function[];
|
|
197
|
+
rawListeners: (event: string | symbol) => Function[];
|
|
198
|
+
emit: (event: string | symbol, ...args: any[]) => boolean;
|
|
199
|
+
eventNames: () => (string | symbol)[];
|
|
200
|
+
listenerCount: (type: string | symbol) => number;
|
|
125
201
|
};
|
|
126
202
|
} & T;
|
|
127
203
|
/**
|
|
@@ -131,6 +207,7 @@ export interface ApplicationWithRepositories extends Application {
|
|
|
131
207
|
repository<R extends Repository<any>>(repo: Class<R>, name?: string): Binding<R>;
|
|
132
208
|
getRepository<R extends Repository<any>>(repo: Class<R>): Promise<R>;
|
|
133
209
|
dataSource<D extends juggler.DataSource>(dataSource: Class<D> | D, name?: string): Binding<D>;
|
|
210
|
+
model<M extends Class<unknown>>(modelClass: M): Binding<M>;
|
|
134
211
|
component(component: Class<unknown>, name?: string): Binding;
|
|
135
212
|
mountComponentRepositories(component: Class<unknown>): void;
|
|
136
213
|
migrateSchema(options?: SchemaMigrationOptions): Promise<void>;
|
|
@@ -247,3 +324,8 @@ export declare class RepositoryMixinDoc {
|
|
|
247
324
|
*/
|
|
248
325
|
migrateSchema(options?: SchemaMigrationOptions): Promise<void>;
|
|
249
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* Create a binding for the given model class
|
|
329
|
+
* @param modelClass - Model class
|
|
330
|
+
*/
|
|
331
|
+
export declare function createModelClassBinding<M extends Class<unknown>>(modelClass: M): Binding<M>;
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createModelClassBinding = exports.RepositoryMixinDoc = exports.RepositoryMixin = void 0;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
8
9
|
const context_1 = require("@loopback/context");
|
|
10
|
+
const core_1 = require("@loopback/core");
|
|
9
11
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
12
|
+
const keys_1 = require("../keys");
|
|
10
13
|
const repositories_1 = require("../repositories");
|
|
11
14
|
const debug = debug_1.default('loopback:repository:mixin');
|
|
12
15
|
/**
|
|
@@ -23,13 +26,13 @@ const debug = debug_1.default('loopback:repository:mixin');
|
|
|
23
26
|
* called <a href="#RepositoryMixinDoc">RepositoryMixinDoc</a>
|
|
24
27
|
*
|
|
25
28
|
*/
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
29
|
function RepositoryMixin(superClass) {
|
|
28
30
|
return class extends superClass {
|
|
29
31
|
/**
|
|
30
32
|
* Add a repository to this application.
|
|
31
33
|
*
|
|
32
34
|
* @param repoClass - The repository to add.
|
|
35
|
+
* @param nameOrOptions - Name or options for the binding
|
|
33
36
|
*
|
|
34
37
|
* @example
|
|
35
38
|
* ```ts
|
|
@@ -55,13 +58,13 @@ function RepositoryMixin(superClass) {
|
|
|
55
58
|
* ```
|
|
56
59
|
*/
|
|
57
60
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
-
repository(repoClass,
|
|
61
|
+
repository(repoClass, nameOrOptions) {
|
|
59
62
|
const binding = context_1.createBindingFromClass(repoClass, {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
type: 'repository',
|
|
63
|
+
namespace: keys_1.RepositoryBindings.REPOSITORIES,
|
|
64
|
+
type: keys_1.RepositoryTags.REPOSITORY,
|
|
63
65
|
defaultScope: context_1.BindingScope.TRANSIENT,
|
|
64
|
-
|
|
66
|
+
...toOptions(nameOrOptions),
|
|
67
|
+
}).tag(keys_1.RepositoryTags.REPOSITORY);
|
|
65
68
|
this.add(binding);
|
|
66
69
|
return binding;
|
|
67
70
|
}
|
|
@@ -78,7 +81,8 @@ function RepositoryMixin(superClass) {
|
|
|
78
81
|
* Add the dataSource to this application.
|
|
79
82
|
*
|
|
80
83
|
* @param dataSource - The dataSource to add.
|
|
81
|
-
* @param
|
|
84
|
+
* @param nameOrOptions - The binding name or options of the datasource;
|
|
85
|
+
* defaults to dataSource.name
|
|
82
86
|
*
|
|
83
87
|
* @example
|
|
84
88
|
* ```ts
|
|
@@ -96,22 +100,25 @@ function RepositoryMixin(superClass) {
|
|
|
96
100
|
* }
|
|
97
101
|
* ```
|
|
98
102
|
*/
|
|
99
|
-
dataSource(dataSource,
|
|
103
|
+
dataSource(dataSource, nameOrOptions) {
|
|
104
|
+
var _a;
|
|
105
|
+
const options = toOptions(nameOrOptions);
|
|
100
106
|
// We have an instance of
|
|
101
107
|
if (dataSource instanceof repositories_1.juggler.DataSource) {
|
|
102
108
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
103
|
-
name = name || dataSource.name;
|
|
104
|
-
const
|
|
105
|
-
|
|
109
|
+
const name = options.name || dataSource.name;
|
|
110
|
+
const namespace = (_a = options.namespace) !== null && _a !== void 0 ? _a : keys_1.RepositoryBindings.DATASOURCES;
|
|
111
|
+
const key = `${namespace}.${name}`;
|
|
112
|
+
return this.bind(key).to(dataSource).tag(keys_1.RepositoryTags.DATASOURCE);
|
|
106
113
|
}
|
|
107
114
|
else if (typeof dataSource === 'function') {
|
|
108
115
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
109
|
-
name = name || dataSource.dataSourceName;
|
|
116
|
+
options.name = options.name || dataSource.dataSourceName;
|
|
110
117
|
const binding = context_1.createBindingFromClass(dataSource, {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
type: 'datasource',
|
|
118
|
+
namespace: keys_1.RepositoryBindings.DATASOURCES,
|
|
119
|
+
type: keys_1.RepositoryTags.DATASOURCE,
|
|
114
120
|
defaultScope: context_1.BindingScope.SINGLETON,
|
|
121
|
+
...options,
|
|
115
122
|
});
|
|
116
123
|
this.add(binding);
|
|
117
124
|
return binding;
|
|
@@ -120,11 +127,21 @@ function RepositoryMixin(superClass) {
|
|
|
120
127
|
throw new Error('not a valid DataSource.');
|
|
121
128
|
}
|
|
122
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Register a model class as a binding in the target context
|
|
132
|
+
* @param modelClass - Model class
|
|
133
|
+
*/
|
|
134
|
+
model(modelClass) {
|
|
135
|
+
const binding = createModelClassBinding(modelClass);
|
|
136
|
+
this.add(binding);
|
|
137
|
+
return binding;
|
|
138
|
+
}
|
|
123
139
|
/**
|
|
124
140
|
* Add a component to this application. Also mounts
|
|
125
141
|
* all the components repositories.
|
|
126
142
|
*
|
|
127
143
|
* @param component - The component to add.
|
|
144
|
+
* @param nameOrOptions - Name or options for the binding.
|
|
128
145
|
*
|
|
129
146
|
* @example
|
|
130
147
|
* ```ts
|
|
@@ -141,9 +158,14 @@ function RepositoryMixin(superClass) {
|
|
|
141
158
|
* app.component(ProductComponent);
|
|
142
159
|
* ```
|
|
143
160
|
*/
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
161
|
+
// Unfortunately, TypeScript does not allow overriding methods inherited
|
|
162
|
+
// from mapped types. https://github.com/microsoft/TypeScript/issues/38496
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
164
|
+
// @ts-ignore
|
|
165
|
+
component(componentCtor, nameOrOptions) {
|
|
166
|
+
const binding = super.component(componentCtor, nameOrOptions);
|
|
167
|
+
this.mountComponentRepositories(componentCtor);
|
|
168
|
+
return binding;
|
|
147
169
|
}
|
|
148
170
|
/**
|
|
149
171
|
* Get an instance of a component and mount all it's
|
|
@@ -153,7 +175,7 @@ function RepositoryMixin(superClass) {
|
|
|
153
175
|
* @param component - The component to mount repositories of
|
|
154
176
|
*/
|
|
155
177
|
mountComponentRepositories(component) {
|
|
156
|
-
const componentKey =
|
|
178
|
+
const componentKey = `${core_1.CoreBindings.COMPONENTS}.${component.name}`;
|
|
157
179
|
const compInstance = this.getSync(componentKey);
|
|
158
180
|
if (compInstance.repositories) {
|
|
159
181
|
for (const repo of compInstance.repositories) {
|
|
@@ -181,7 +203,7 @@ function RepositoryMixin(superClass) {
|
|
|
181
203
|
const repoBindings = this.findByTag('repository');
|
|
182
204
|
await Promise.all(repoBindings.map(b => this.get(b.key)));
|
|
183
205
|
// Look up all datasources and update/migrate schemas one by one
|
|
184
|
-
const dsBindings = this.findByTag(
|
|
206
|
+
const dsBindings = this.findByTag(keys_1.RepositoryTags.DATASOURCE);
|
|
185
207
|
for (const b of dsBindings) {
|
|
186
208
|
const ds = await this.get(b.key);
|
|
187
209
|
if (operation in ds && typeof ds[operation] === 'function') {
|
|
@@ -196,6 +218,16 @@ function RepositoryMixin(superClass) {
|
|
|
196
218
|
};
|
|
197
219
|
}
|
|
198
220
|
exports.RepositoryMixin = RepositoryMixin;
|
|
221
|
+
/**
|
|
222
|
+
* Normalize name or options to `BindingFromClassOptions`
|
|
223
|
+
* @param nameOrOptions - Name or options for binding from class
|
|
224
|
+
*/
|
|
225
|
+
function toOptions(nameOrOptions) {
|
|
226
|
+
if (typeof nameOrOptions === 'string') {
|
|
227
|
+
return { name: nameOrOptions };
|
|
228
|
+
}
|
|
229
|
+
return nameOrOptions !== null && nameOrOptions !== void 0 ? nameOrOptions : {};
|
|
230
|
+
}
|
|
199
231
|
/**
|
|
200
232
|
* A dummy class created to generate the tsdoc for the members in repository
|
|
201
233
|
* mixin. Please don't use it.
|
|
@@ -322,4 +354,14 @@ class RepositoryMixinDoc {
|
|
|
322
354
|
async migrateSchema(options) { }
|
|
323
355
|
}
|
|
324
356
|
exports.RepositoryMixinDoc = RepositoryMixinDoc;
|
|
357
|
+
/**
|
|
358
|
+
* Create a binding for the given model class
|
|
359
|
+
* @param modelClass - Model class
|
|
360
|
+
*/
|
|
361
|
+
function createModelClassBinding(modelClass) {
|
|
362
|
+
return context_1.Binding.bind(`${keys_1.RepositoryBindings.MODELS}.${modelClass.name}`)
|
|
363
|
+
.to(modelClass)
|
|
364
|
+
.tag(keys_1.RepositoryTags.MODEL);
|
|
365
|
+
}
|
|
366
|
+
exports.createModelClassBinding = createModelClassBinding;
|
|
325
367
|
//# sourceMappingURL=repository.mixin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../src/mixins/repository.mixin.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../src/mixins/repository.mixin.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyObject, DataObject, Options } from './common-types';
|
|
1
|
+
import { AnyObject, DataObject, Options, PrototypeOf } from './common-types';
|
|
2
2
|
import { JsonSchema } from './index';
|
|
3
3
|
import { RelationMetadata } from './relations';
|
|
4
4
|
import { TypeResolver } from './type-resolver';
|
|
@@ -118,6 +118,12 @@ export declare abstract class Model {
|
|
|
118
118
|
toJSON(): Object;
|
|
119
119
|
/**
|
|
120
120
|
* Convert to a plain object as DTO
|
|
121
|
+
*
|
|
122
|
+
* If `ignoreUnknownProperty` is set to false, convert all properties in the
|
|
123
|
+
* model instance, otherwise only convert the ones defined in the model
|
|
124
|
+
* definitions.
|
|
125
|
+
*
|
|
126
|
+
* See function `asObject` for each property's conversion rules.
|
|
121
127
|
*/
|
|
122
128
|
toObject(options?: Options): Object;
|
|
123
129
|
constructor(data?: DataObject<Model>);
|
|
@@ -170,3 +176,12 @@ export declare class Event {
|
|
|
170
176
|
}
|
|
171
177
|
export declare type EntityData = DataObject<Entity>;
|
|
172
178
|
export declare type EntityResolver<T extends Entity> = TypeResolver<T, typeof Entity>;
|
|
179
|
+
/**
|
|
180
|
+
* Check model data for navigational properties linking to related models.
|
|
181
|
+
* Throw a descriptive error if any such property is found.
|
|
182
|
+
*
|
|
183
|
+
* @param modelClass Model constructor, e.g. `Product`.
|
|
184
|
+
* @param entityData Model instance or a plain-data object,
|
|
185
|
+
* e.g. `{name: 'pen'}`.
|
|
186
|
+
*/
|
|
187
|
+
export declare function rejectNavigationalPropertiesInData<M extends typeof Entity>(modelClass: M, data: DataObject<PrototypeOf<M>>): void;
|
package/dist/model.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.rejectNavigationalPropertiesInData = exports.Event = exports.Entity = exports.ValueObject = exports.Model = exports.ModelDefinition = void 0;
|
|
7
8
|
/**
|
|
8
9
|
* Definition for a model
|
|
9
10
|
*/
|
|
@@ -101,15 +102,23 @@ function asJSON(value) {
|
|
|
101
102
|
}
|
|
102
103
|
return value;
|
|
103
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Convert a value to a plain object as DTO.
|
|
107
|
+
*
|
|
108
|
+
* - The prototype of the value in primitive types are preserved,
|
|
109
|
+
* like `Date`, `ObjectId`.
|
|
110
|
+
* - If the value is an instance of custom model, call `toObject` to convert.
|
|
111
|
+
* - If the value is an array, convert each element recursively.
|
|
112
|
+
*
|
|
113
|
+
* @param value the value to convert
|
|
114
|
+
* @param options the options
|
|
115
|
+
*/
|
|
104
116
|
function asObject(value, options) {
|
|
105
117
|
if (value == null)
|
|
106
118
|
return value;
|
|
107
119
|
if (typeof value.toObject === 'function') {
|
|
108
120
|
return value.toObject(options);
|
|
109
121
|
}
|
|
110
|
-
if (typeof value.toJSON === 'function') {
|
|
111
|
-
return value.toJSON();
|
|
112
|
-
}
|
|
113
122
|
if (Array.isArray(value)) {
|
|
114
123
|
return value.map(item => asObject(item, options));
|
|
115
124
|
}
|
|
@@ -156,18 +165,34 @@ class Model {
|
|
|
156
165
|
}
|
|
157
166
|
/**
|
|
158
167
|
* Convert to a plain object as DTO
|
|
168
|
+
*
|
|
169
|
+
* If `ignoreUnknownProperty` is set to false, convert all properties in the
|
|
170
|
+
* model instance, otherwise only convert the ones defined in the model
|
|
171
|
+
* definitions.
|
|
172
|
+
*
|
|
173
|
+
* See function `asObject` for each property's conversion rules.
|
|
159
174
|
*/
|
|
160
175
|
toObject(options) {
|
|
161
|
-
|
|
176
|
+
const def = this.constructor.definition;
|
|
177
|
+
const obj = {};
|
|
162
178
|
if (options && options.ignoreUnknownProperties === false) {
|
|
163
|
-
|
|
179
|
+
const hiddenProperties = (def === null || def === void 0 ? void 0 : def.settings.hiddenProperties) || [];
|
|
164
180
|
for (const p in this) {
|
|
165
|
-
|
|
166
|
-
|
|
181
|
+
if (!hiddenProperties.includes(p)) {
|
|
182
|
+
const val = this[p];
|
|
183
|
+
obj[p] = asObject(val, options);
|
|
184
|
+
}
|
|
167
185
|
}
|
|
186
|
+
return obj;
|
|
168
187
|
}
|
|
169
|
-
|
|
170
|
-
|
|
188
|
+
const props = def.properties;
|
|
189
|
+
const keys = Object.keys(props);
|
|
190
|
+
for (const i in keys) {
|
|
191
|
+
const propertyName = keys[i];
|
|
192
|
+
const val = this[propertyName];
|
|
193
|
+
if (val === undefined)
|
|
194
|
+
continue;
|
|
195
|
+
obj[propertyName] = asObject(val, options);
|
|
171
196
|
}
|
|
172
197
|
return obj;
|
|
173
198
|
}
|
|
@@ -257,4 +282,31 @@ exports.Entity = Entity;
|
|
|
257
282
|
class Event {
|
|
258
283
|
}
|
|
259
284
|
exports.Event = Event;
|
|
285
|
+
/**
|
|
286
|
+
* Check model data for navigational properties linking to related models.
|
|
287
|
+
* Throw a descriptive error if any such property is found.
|
|
288
|
+
*
|
|
289
|
+
* @param modelClass Model constructor, e.g. `Product`.
|
|
290
|
+
* @param entityData Model instance or a plain-data object,
|
|
291
|
+
* e.g. `{name: 'pen'}`.
|
|
292
|
+
*/
|
|
293
|
+
function rejectNavigationalPropertiesInData(modelClass, data) {
|
|
294
|
+
const def = modelClass.definition;
|
|
295
|
+
const props = def.properties;
|
|
296
|
+
for (const r in def.relations) {
|
|
297
|
+
const relName = def.relations[r].name;
|
|
298
|
+
if (!(relName in data))
|
|
299
|
+
continue;
|
|
300
|
+
let msg = 'Navigational properties are not allowed in model data ' +
|
|
301
|
+
`(model "${modelClass.modelName}" property "${relName}"), ` +
|
|
302
|
+
'please remove it.';
|
|
303
|
+
if (relName in props) {
|
|
304
|
+
msg +=
|
|
305
|
+
' The error might be invoked by belongsTo relations, please make' +
|
|
306
|
+
' sure the relation name is not the same as the property name.';
|
|
307
|
+
}
|
|
308
|
+
throw new Error(msg);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
exports.rejectNavigationalPropertiesInData = rejectNavigationalPropertiesInData;
|
|
260
312
|
//# sourceMappingURL=model.js.map
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.filterTemplate = exports.FilterBuilder = exports.WhereBuilder = exports.isFilter = void 0;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
8
9
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
9
10
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createBelongsToAccessor = void 0;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
8
9
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
9
10
|
const belongs_to_helpers_1 = require("./belongs-to.helpers");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to-accessor.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to-accessor.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"belongs-to-accessor.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to-accessor.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AASjC,6DAA8D;AAC9D,mFAAiF;AACjF,mEAAmE;AAEnE,MAAM,KAAK,GAAG,eAAY,CAAC,yCAAyC,CAAC,CAAC;AActE;;GAEG;AACH,SAAgB,uBAAuB,CAMrC,iBAAsC,EACtC,gBAAgE,EAChE,gBAAwD;IAExD,MAAM,IAAI,GAAG,6CAAwB,CAAC,iBAAiB,CAAC,CAAC;IACzD,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,MAAM,GAGR,KAAK,UAAU,4BAA4B,CAAC,QAAkB;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,UAA0B,CAAC,CAAC;QAChE,6CAA6C;QAC7C,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,CAAC,eAAe,EAAE;YACpB,OAAQ,SAA+B,CAAC;SACzC;QACD,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,kDAA0B,CACpD,gBAAgB,EAChB,UAAgC,CACjC,CAAC;QACF,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,CAAC,iBAAiB,GAAG,gEAAgC,CACzD,IAAI,EACJ,gBAAgB,CACjB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAxCD,0DAwCC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.belongsTo = void 0;
|
|
7
8
|
const context_1 = require("@loopback/context");
|
|
8
9
|
const model_decorator_1 = require("../../decorators/model.decorator");
|
|
9
10
|
const relation_decorator_1 = require("../relation.decorator");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.decorator.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"belongs-to.decorator.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAAoD;AACpD,sEAA0D;AAE1D,8DAA+C;AAC/C,sDAAoE;AAEpE;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,cAAiC,EACjC,UAAyC,EACzC,kBAAgD;IAEhD,OAAO,UAAU,eAAuB,EAAE,YAAoB;QAC5D,MAAM,QAAQ,GAAuB,MAAM,CAAC,MAAM,CAChD,EAAE;QACF,oCAAoC;QACpC,kBAAkB;QAClB,uCAAuC;QACvC;YACE,IAAI,EAAE,2BAAiB,CAAC,wBAAwB,CAC9C,eAAe,EACf,YAAY,CACb;SAIF,CACF,CAAC;QACF,0BAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAElD,iEAAiE;QACjE,4EAA4E;QAC5E,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM;QAC7C,kDAAkD;QAClD;YACE,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,YAAY;SACnB;QACD,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,SAAS;YAC5B,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,6BAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AA7CD,8BA6CC"}
|