@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.
Files changed (135) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/common-types.d.ts +1 -0
  3. package/dist/common-types.js +2 -0
  4. package/dist/common-types.js.map +1 -1
  5. package/dist/connectors/index.js +4 -0
  6. package/dist/connectors/index.js.map +1 -1
  7. package/dist/decorators/metadata.js +1 -0
  8. package/dist/decorators/metadata.js.map +1 -1
  9. package/dist/decorators/model.decorator.d.ts +1 -1
  10. package/dist/decorators/model.decorator.js +1 -0
  11. package/dist/decorators/model.decorator.js.map +1 -1
  12. package/dist/decorators/repository.decorator.js +1 -0
  13. package/dist/decorators/repository.decorator.js.map +1 -1
  14. package/dist/define-model-class.js +1 -0
  15. package/dist/define-model-class.js.map +1 -1
  16. package/dist/define-repository-class.d.ts +119 -0
  17. package/dist/define-repository-class.js +98 -0
  18. package/dist/define-repository-class.js.map +1 -0
  19. package/dist/errors/entity-not-found.error.js +1 -0
  20. package/dist/errors/entity-not-found.error.js.map +1 -1
  21. package/dist/errors/invalid-relation.error.js +1 -0
  22. package/dist/errors/invalid-relation.error.js.map +1 -1
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +4 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/keys.d.ts +34 -0
  27. package/dist/keys.js +44 -0
  28. package/dist/keys.js.map +1 -0
  29. package/dist/mixins/repository.mixin.d.ts +91 -9
  30. package/dist/mixins/repository.mixin.js +62 -20
  31. package/dist/mixins/repository.mixin.js.map +1 -1
  32. package/dist/model.d.ts +16 -1
  33. package/dist/model.js +61 -9
  34. package/dist/model.js.map +1 -1
  35. package/dist/query.js +1 -0
  36. package/dist/query.js.map +1 -1
  37. package/dist/relations/belongs-to/belongs-to-accessor.js +1 -0
  38. package/dist/relations/belongs-to/belongs-to-accessor.js.map +1 -1
  39. package/dist/relations/belongs-to/belongs-to.decorator.js +1 -0
  40. package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
  41. package/dist/relations/belongs-to/belongs-to.helpers.js +1 -0
  42. package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
  43. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +1 -0
  44. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
  45. package/dist/relations/belongs-to/belongs-to.repository.js +1 -0
  46. package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
  47. package/dist/relations/has-many/has-many-repository.factory.js +1 -0
  48. package/dist/relations/has-many/has-many-repository.factory.js.map +1 -1
  49. package/dist/relations/has-many/has-many-through.helpers.d.ts +74 -0
  50. package/dist/relations/has-many/has-many-through.helpers.js +145 -0
  51. package/dist/relations/has-many/has-many-through.helpers.js.map +1 -0
  52. package/dist/relations/has-many/has-many.decorator.js +1 -0
  53. package/dist/relations/has-many/has-many.decorator.js.map +1 -1
  54. package/dist/relations/has-many/has-many.helpers.d.ts +9 -0
  55. package/dist/relations/has-many/has-many.helpers.js +33 -21
  56. package/dist/relations/has-many/has-many.helpers.js.map +1 -1
  57. package/dist/relations/has-many/has-many.inclusion-resolver.js +1 -0
  58. package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
  59. package/dist/relations/has-many/has-many.repository.js +1 -0
  60. package/dist/relations/has-many/has-many.repository.js.map +1 -1
  61. package/dist/relations/has-one/has-one-repository.factory.js +1 -0
  62. package/dist/relations/has-one/has-one-repository.factory.js.map +1 -1
  63. package/dist/relations/has-one/has-one.decorator.js +1 -0
  64. package/dist/relations/has-one/has-one.decorator.js.map +1 -1
  65. package/dist/relations/has-one/has-one.helpers.js +1 -0
  66. package/dist/relations/has-one/has-one.helpers.js.map +1 -1
  67. package/dist/relations/has-one/has-one.inclusion-resolver.js +1 -0
  68. package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
  69. package/dist/relations/has-one/has-one.repository.js +1 -0
  70. package/dist/relations/has-one/has-one.repository.js.map +1 -1
  71. package/dist/relations/relation.decorator.js +1 -0
  72. package/dist/relations/relation.decorator.js.map +1 -1
  73. package/dist/relations/relation.helpers.js +1 -0
  74. package/dist/relations/relation.helpers.js.map +1 -1
  75. package/dist/relations/relation.types.d.ts +25 -27
  76. package/dist/relations/relation.types.js +2 -1
  77. package/dist/relations/relation.types.js.map +1 -1
  78. package/dist/repositories/constraint-utils.js +1 -0
  79. package/dist/repositories/constraint-utils.js.map +1 -1
  80. package/dist/repositories/index.js +1 -0
  81. package/dist/repositories/index.js.map +1 -1
  82. package/dist/repositories/kv.repository.bridge.js +1 -0
  83. package/dist/repositories/kv.repository.bridge.js.map +1 -1
  84. package/dist/repositories/legacy-juggler-bridge.d.ts +3 -3
  85. package/dist/repositories/legacy-juggler-bridge.js +8 -18
  86. package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
  87. package/dist/repositories/repository.js +1 -0
  88. package/dist/repositories/repository.js.map +1 -1
  89. package/dist/transaction.js +1 -0
  90. package/dist/transaction.js.map +1 -1
  91. package/dist/type-resolver.d.ts +4 -0
  92. package/dist/type-resolver.js +9 -0
  93. package/dist/type-resolver.js.map +1 -1
  94. package/dist/types/any.js +1 -0
  95. package/dist/types/any.js.map +1 -1
  96. package/dist/types/array.js +1 -0
  97. package/dist/types/array.js.map +1 -1
  98. package/dist/types/boolean.js +1 -0
  99. package/dist/types/boolean.js.map +1 -1
  100. package/dist/types/buffer.js +1 -0
  101. package/dist/types/buffer.js.map +1 -1
  102. package/dist/types/date.js +1 -0
  103. package/dist/types/date.js.map +1 -1
  104. package/dist/types/index.d.ts +11 -9
  105. package/dist/types/index.js +33 -17
  106. package/dist/types/index.js.map +1 -1
  107. package/dist/types/model.js +1 -0
  108. package/dist/types/model.js.map +1 -1
  109. package/dist/types/null.d.ts +12 -0
  110. package/dist/types/null.js +33 -0
  111. package/dist/types/null.js.map +1 -0
  112. package/dist/types/number.js +1 -0
  113. package/dist/types/number.js.map +1 -1
  114. package/dist/types/object.js +1 -0
  115. package/dist/types/object.js.map +1 -1
  116. package/dist/types/string.js +1 -0
  117. package/dist/types/string.js.map +1 -1
  118. package/dist/types/union.js +1 -0
  119. package/dist/types/union.js.map +1 -1
  120. package/package.json +13 -14
  121. package/src/common-types.ts +1 -0
  122. package/src/define-repository-class.ts +170 -0
  123. package/src/index.ts +2 -0
  124. package/src/keys.ts +40 -0
  125. package/src/mixins/repository.mixin.ts +120 -25
  126. package/src/model.ts +74 -11
  127. package/src/relations/has-many/has-many-through.helpers.ts +193 -0
  128. package/src/relations/has-many/has-many.helpers.ts +41 -27
  129. package/src/relations/relation.types.ts +24 -30
  130. package/src/repositories/legacy-juggler-bridge.ts +16 -24
  131. package/src/type-resolver.ts +8 -0
  132. package/src/types/index.ts +11 -8
  133. package/src/types/null.ts +35 -0
  134. package/index.d.ts +0 -6
  135. 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 Class<any>>(superClass: T): {
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>, name?: string | undefined): Binding<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<R_1 extends Repository<any>>(repo: Class<R_1>): Promise<R_1>;
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 name - The binding name of the datasource; defaults to dataSource.name
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>, name?: string | undefined): Binding<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(component: Class<unknown>, name?: string | undefined): void;
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, name) {
61
+ repository(repoClass, nameOrOptions) {
59
62
  const binding = context_1.createBindingFromClass(repoClass, {
60
- name,
61
- namespace: 'repositories',
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 name - The binding name of the datasource; defaults to dataSource.name
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, name) {
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 key = `datasources.${name}`;
105
- return this.bind(key).to(dataSource).tag('datasource');
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
- name,
112
- namespace: 'datasources',
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
- component(component, name) {
145
- super.component(component, name);
146
- this.mountComponentRepositories(component);
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 = `components.${component.name}`;
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('datasource');
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":"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"}
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
- let obj;
176
+ const def = this.constructor.definition;
177
+ const obj = {};
162
178
  if (options && options.ignoreUnknownProperties === false) {
163
- obj = {};
179
+ const hiddenProperties = (def === null || def === void 0 ? void 0 : def.settings.hiddenProperties) || [];
164
180
  for (const p in this) {
165
- const val = this[p];
166
- obj[p] = asObject(val, options);
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
- else {
170
- obj = this.toJSON();
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":"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"}
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":"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"}
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;;;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"}
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;;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"}
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"}