@loopback/repository 5.1.0 → 5.1.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/dist/common-types.d.ts +9 -9
- package/dist/decorators/model.decorator.d.ts +1 -1
- package/dist/decorators/repository.decorator.d.ts +1 -1
- package/dist/define-model-class.d.ts +1 -1
- package/dist/model.d.ts +4 -4
- package/dist/model.js +3 -3
- package/dist/model.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.helpers.d.ts +1 -1
- package/dist/relations/has-many/has-many-through.helpers.d.ts +1 -1
- package/dist/relations/has-many/has-many-through.repository-factory.d.ts +1 -1
- package/dist/relations/has-many/has-many.helpers.d.ts +1 -1
- package/dist/relations/has-one/has-one.helpers.d.ts +1 -1
- package/dist/relations/references-many/references-many.helpers.d.ts +1 -1
- package/dist/relations/relation.helpers.d.ts +1 -1
- package/dist/relations/relation.types.d.ts +2 -2
- package/dist/repositories/kv.repository.d.ts +1 -1
- package/dist/repositories/repository.d.ts +1 -1
- package/dist/type-resolver.d.ts +4 -3
- package/dist/type-resolver.js.map +1 -1
- package/package.json +10 -10
- package/src/type-resolver.ts +7 -3
package/dist/common-types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface ConstructorFunction<T> {
|
|
|
25
25
|
/**
|
|
26
26
|
* Constructor type - class or function
|
|
27
27
|
*/
|
|
28
|
-
export
|
|
28
|
+
export type Constructor<T> = Class<T> | ConstructorFunction<T>;
|
|
29
29
|
/**
|
|
30
30
|
* Objects with open properties
|
|
31
31
|
*/
|
|
@@ -36,33 +36,33 @@ export interface AnyObject {
|
|
|
36
36
|
* An extension of the built-in Partial<T> type which allows partial values
|
|
37
37
|
* in deeply nested properties too.
|
|
38
38
|
*/
|
|
39
|
-
export
|
|
39
|
+
export type DeepPartial<T> = Partial<T> | {
|
|
40
40
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
41
41
|
};
|
|
42
42
|
/**
|
|
43
43
|
* Type alias for strongly or weakly typed objects of T
|
|
44
44
|
*/
|
|
45
|
-
export
|
|
45
|
+
export type DataObject<T extends object> = T | DeepPartial<T>;
|
|
46
46
|
/**
|
|
47
47
|
* Type alias for Node.js options object
|
|
48
48
|
*/
|
|
49
|
-
export
|
|
49
|
+
export type Options = AnyObject;
|
|
50
50
|
/**
|
|
51
51
|
* Type alias for Node.js callback functions
|
|
52
52
|
*/
|
|
53
|
-
export
|
|
53
|
+
export type Callback<T> = (err: Error | string | null | undefined, result?: T) => void;
|
|
54
54
|
/**
|
|
55
55
|
* Type for a command
|
|
56
56
|
*/
|
|
57
|
-
export
|
|
57
|
+
export type Command = string | AnyObject;
|
|
58
58
|
/**
|
|
59
59
|
* Named parameters, such as `{x: 1, y: 'a'}`
|
|
60
60
|
*/
|
|
61
|
-
export
|
|
61
|
+
export type NamedParameters = AnyObject;
|
|
62
62
|
/**
|
|
63
63
|
* Positional parameters, such as [1, 'a']
|
|
64
64
|
*/
|
|
65
|
-
export
|
|
65
|
+
export type PositionalParameters = any[];
|
|
66
66
|
/**
|
|
67
67
|
* Count of Model instances that were successful for methods like `updateAll`,
|
|
68
68
|
* `deleteAll`, etc.
|
|
@@ -91,6 +91,6 @@ export declare const CountSchema: {
|
|
|
91
91
|
*
|
|
92
92
|
* Example: `PrototypeOf<typeof Entity>` is resolved to `Entity`.
|
|
93
93
|
*/
|
|
94
|
-
export
|
|
94
|
+
export type PrototypeOf<Ctor extends Function> = Ctor extends {
|
|
95
95
|
prototype: infer Proto;
|
|
96
96
|
} ? Proto : never;
|
|
@@ -3,7 +3,7 @@ import { ModelDefinition, ModelDefinitionSyntax, PropertyDefinition, PropertyTyp
|
|
|
3
3
|
export declare const MODEL_KEY: MetadataAccessor<Partial<ModelDefinitionSyntax>, ClassDecorator>;
|
|
4
4
|
export declare const MODEL_PROPERTIES_KEY: MetadataAccessor<PropertyDefinition, PropertyDecorator>;
|
|
5
5
|
export declare const MODEL_WITH_PROPERTIES_KEY: MetadataAccessor<ModelDefinition, ClassDecorator>;
|
|
6
|
-
export
|
|
6
|
+
export type PropertyMap = MetadataMap<Partial<PropertyDefinition>>;
|
|
7
7
|
/**
|
|
8
8
|
* Decorator for model definitions
|
|
9
9
|
* @param definition
|
|
@@ -6,7 +6,7 @@ import { juggler } from '../repositories/legacy-juggler-bridge';
|
|
|
6
6
|
/**
|
|
7
7
|
* Type definition for decorators returned by `@repository` decorator factory
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export type RepositoryDecorator = (target: Object, key?: string, descriptorOrIndex?: TypedPropertyDescriptor<any> | number) => void;
|
|
10
10
|
/**
|
|
11
11
|
* Metadata for a repository
|
|
12
12
|
*/
|
|
@@ -49,7 +49,7 @@ export declare function defineModelClass<BaseCtor extends typeof Model, Props ex
|
|
|
49
49
|
* - all prototype fields from `BaseCtor` prototype are inherited and available
|
|
50
50
|
* as prototype fields on the dynamic class
|
|
51
51
|
*/
|
|
52
|
-
export
|
|
52
|
+
export type DynamicModelCtor<BaseCtor extends typeof Model, Props extends object> = {
|
|
53
53
|
/** Model constructor accepting partial model data. */
|
|
54
54
|
new (data?: DataObject<PrototypeOf<BaseCtor> & Props>): PrototypeOf<BaseCtor> & Props;
|
|
55
55
|
} & BaseCtor;
|
package/dist/model.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { Type } from './types';
|
|
|
10
10
|
export interface JsonSchemaWithExtensions extends JsonSchema {
|
|
11
11
|
[attributes: string]: any;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
13
|
+
export type PropertyType = string | Function | object | Type<any> | TypeResolver<Model>;
|
|
14
14
|
/**
|
|
15
15
|
* Property definition for a model
|
|
16
16
|
*/
|
|
@@ -67,7 +67,7 @@ export interface PropertyForm {
|
|
|
67
67
|
* A key-value map describing model relations.
|
|
68
68
|
* A relation name is used as the key, a relation definition is the value.
|
|
69
69
|
*/
|
|
70
|
-
export
|
|
70
|
+
export type RelationDefinitionMap = {
|
|
71
71
|
[relationName: string]: RelationMetadata;
|
|
72
72
|
};
|
|
73
73
|
/**
|
|
@@ -225,8 +225,8 @@ export declare class Event {
|
|
|
225
225
|
source: any;
|
|
226
226
|
type: string;
|
|
227
227
|
}
|
|
228
|
-
export
|
|
229
|
-
export
|
|
228
|
+
export type EntityData = DataObject<Entity>;
|
|
229
|
+
export type EntityResolver<T extends Entity> = TypeResolver<T, typeof Entity>;
|
|
230
230
|
/**
|
|
231
231
|
* Check model data for navigational properties linking to related models.
|
|
232
232
|
* Throw a descriptive error if any such property is found.
|
package/dist/model.js
CHANGED
|
@@ -185,9 +185,6 @@ function asObject(value, options) {
|
|
|
185
185
|
* Base class for models
|
|
186
186
|
*/
|
|
187
187
|
class Model {
|
|
188
|
-
constructor(data) {
|
|
189
|
-
Object.assign(this, data);
|
|
190
|
-
}
|
|
191
188
|
static get modelName() {
|
|
192
189
|
var _a;
|
|
193
190
|
return ((_a = this.definition) === null || _a === void 0 ? void 0 : _a.name) || this.name;
|
|
@@ -265,6 +262,9 @@ class Model {
|
|
|
265
262
|
}
|
|
266
263
|
return obj;
|
|
267
264
|
}
|
|
265
|
+
constructor(data) {
|
|
266
|
+
Object.assign(this, data);
|
|
267
|
+
}
|
|
268
268
|
}
|
|
269
269
|
exports.Model = Model;
|
|
270
270
|
/**
|
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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"}
|
|
@@ -3,7 +3,7 @@ import { BelongsToDefinition } from '../relation.types';
|
|
|
3
3
|
* Relation definition with optional metadata (e.g. `keyTo`) filled in.
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type BelongsToResolvedDefinition = BelongsToDefinition & {
|
|
7
7
|
keyFrom: string;
|
|
8
8
|
keyTo: string;
|
|
9
9
|
polymorphic: false | {
|
|
@@ -7,7 +7,7 @@ import { HasManyThroughRepository } from './has-many-through.repository';
|
|
|
7
7
|
* If backwards-incompatible changes are made, a new major version may not be
|
|
8
8
|
* released.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type HasManyThroughRepositoryFactory<TargetEntity extends Entity, TargetID, ThroughEntity extends Entity, SourceID> = {
|
|
11
11
|
(fkValue: SourceID): HasManyThroughRepository<TargetEntity, TargetID, ThroughEntity>;
|
|
12
12
|
/**
|
|
13
13
|
* Use `resolver` property to obtain an InclusionResolver for this relation.
|
|
@@ -3,7 +3,7 @@ import { HasManyDefinition } from '../relation.types';
|
|
|
3
3
|
* Relation definition with optional metadata (e.g. `keyTo`) filled in.
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type HasManyResolvedDefinition = HasManyDefinition & {
|
|
7
7
|
keyFrom: string;
|
|
8
8
|
keyTo: string;
|
|
9
9
|
};
|
|
@@ -3,7 +3,7 @@ import { HasOneDefinition } from '../relation.types';
|
|
|
3
3
|
* Relation definition with optional metadata (e.g. `keyTo`) filled in.
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type HasOneResolvedDefinition = HasOneDefinition & {
|
|
7
7
|
keyFrom: string;
|
|
8
8
|
keyTo: string;
|
|
9
9
|
polymorphic: false | {
|
|
@@ -3,7 +3,7 @@ import { ReferencesManyDefinition } from '../relation.types';
|
|
|
3
3
|
* Relation definition with optional metadata (e.g. `keyTo`) filled in.
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type ReferencesManyResolvedDefinition = ReferencesManyDefinition & {
|
|
7
7
|
keyFrom: string;
|
|
8
8
|
keyTo: string;
|
|
9
9
|
};
|
|
@@ -11,7 +11,7 @@ import { AnyObject, Entity, EntityCrudRepository, Filter, InclusionFilter, Optio
|
|
|
11
11
|
export declare function findByForeignKeys<Target extends Entity, TargetRelations extends object, ForeignKey extends StringKeyOf<Target>>(targetRepository: EntityCrudRepository<Target, unknown, TargetRelations>, fkName: ForeignKey, fkValues: Target[ForeignKey][] | Target[ForeignKey], scope?: Filter<Target> & {
|
|
12
12
|
totalLimit?: number;
|
|
13
13
|
}, options?: Options): Promise<(Target & TargetRelations)[]>;
|
|
14
|
-
export
|
|
14
|
+
export type StringKeyOf<T> = Extract<keyof T, string>;
|
|
15
15
|
/**
|
|
16
16
|
* Returns model instances that include related models that have a registered
|
|
17
17
|
* resolver.
|
|
@@ -169,7 +169,7 @@ export interface ReferencesManyDefinition extends RelationDefinitionBase {
|
|
|
169
169
|
/**
|
|
170
170
|
* A union type describing all possible Relation metadata objects.
|
|
171
171
|
*/
|
|
172
|
-
export
|
|
172
|
+
export type RelationMetadata = HasManyDefinition | BelongsToDefinition | HasOneDefinition | ReferencesManyDefinition | RelationDefinitionBase;
|
|
173
173
|
export { Getter } from '@loopback/core';
|
|
174
174
|
/**
|
|
175
175
|
* @returns An array of resolved values, the items must be ordered in the same
|
|
@@ -178,7 +178,7 @@ export { Getter } from '@loopback/core';
|
|
|
178
178
|
* - `Entity` for relations targeting a single model
|
|
179
179
|
* - `Entity[]` for relations targeting multiple models
|
|
180
180
|
*/
|
|
181
|
-
export
|
|
181
|
+
export type InclusionResolver<S extends Entity, T extends Entity> = (
|
|
182
182
|
/**
|
|
183
183
|
* List of source models as returned by the first database query.
|
|
184
184
|
*/
|
|
@@ -4,7 +4,7 @@ import { Repository } from './repository';
|
|
|
4
4
|
/**
|
|
5
5
|
* Filter for keys
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export type KeyValueFilter = {
|
|
8
8
|
/**
|
|
9
9
|
* Glob string to use to filter returned keys (i.e. `userid.*`). All
|
|
10
10
|
* connectors are required to support `*` and `?`. They may also support
|
|
@@ -20,7 +20,7 @@ export interface ExecutableRepository<T extends Model> extends Repository<T> {
|
|
|
20
20
|
* A type for CRUD repositories that are backed by IDs and support
|
|
21
21
|
* Transactions
|
|
22
22
|
*/
|
|
23
|
-
export
|
|
23
|
+
export type TransactionalEntityRepository<T extends Entity, ID, Relations extends object = {}> = TransactionalRepository<T> & EntityCrudRepository<T, ID>;
|
|
24
24
|
/**
|
|
25
25
|
* Repository Interface for Repositories that support Transactions
|
|
26
26
|
*
|
package/dist/type-resolver.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { Class } from './common-types';
|
|
|
18
18
|
* Please note the value returned by the resolver is described as having
|
|
19
19
|
* arbitrary additional static properties (see how Class is defined).
|
|
20
20
|
*/
|
|
21
|
-
export
|
|
21
|
+
export type TypeResolver<Type extends Object, StaticMembers = Function> = () => Class<Type> & StaticMembers;
|
|
22
22
|
/**
|
|
23
23
|
* A function that checks whether a function is a TypeResolver or not.
|
|
24
24
|
* @param fn - The value to check.
|
|
@@ -33,10 +33,11 @@ export declare function Null(): null;
|
|
|
33
33
|
* and/or Node.js. E.g. `Number`, `Array`, `Buffer`, etc.
|
|
34
34
|
*/
|
|
35
35
|
export declare function isBuiltinType(fn: Function): boolean;
|
|
36
|
+
export type NonFunction<T> = T extends Function ? never : T;
|
|
36
37
|
/**
|
|
37
38
|
* Resolve a type value that may have been provided via TypeResolver.
|
|
38
39
|
* @param fn - A type class or a type provider.
|
|
39
40
|
* @returns The resolved type.
|
|
40
41
|
*/
|
|
41
|
-
export declare function resolveType<T extends object>(fn: TypeResolver<T> | Class<T>): Class<T>;
|
|
42
|
-
export declare function resolveType<T>(fn: T): T;
|
|
42
|
+
export declare function resolveType<T extends object>(fn: TypeResolver<T, {}> | Class<T> | Function): Class<T>;
|
|
43
|
+
export declare function resolveType<T>(fn: NonFunction<T>): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-resolver.js","sourceRoot":"","sources":["../src/type-resolver.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AA4BhE;;;GAGG;AACH,SAAgB,cAAc;AAC5B,8DAA8D;AAC9D,EAAO;IAEP,wCAAwC;IACxC,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE3C,gDAAgD;IAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,6DAA6D;IAC7D,IAAI,aAAa,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpC,2EAA2E;IAE3E,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,wCAgBC;AAED;;GAEG;AACH,gEAAgE;AAChE,SAAgB,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAFD,oBAEC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO;IACL,UAAU;IACV,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,OAAO;QACd,EAAE,KAAK,MAAM;QACb,UAAU;QACV,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,KAAK;QACZ,EAAE,KAAK,IAAI;QACX,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,IAAI;QACX,qBAAqB;QACrB,EAAE,KAAK,QAAQ,CAChB,CAAC;AACJ,CAAC;AAhBD,sCAgBC;
|
|
1
|
+
{"version":3,"file":"type-resolver.js","sourceRoot":"","sources":["../src/type-resolver.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AA4BhE;;;GAGG;AACH,SAAgB,cAAc;AAC5B,8DAA8D;AAC9D,EAAO;IAEP,wCAAwC;IACxC,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE3C,gDAAgD;IAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,6DAA6D;IAC7D,IAAI,aAAa,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpC,2EAA2E;IAE3E,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,wCAgBC;AAED;;GAEG;AACH,gEAAgE;AAChE,SAAgB,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAFD,oBAEC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO;IACL,UAAU;IACV,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,OAAO;QACd,EAAE,KAAK,MAAM;QACb,UAAU;QACV,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,KAAK;QACZ,EAAE,KAAK,IAAI;QACX,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,IAAI;QACX,qBAAqB;QACrB,EAAE,KAAK,QAAQ,CAChB,CAAC;AACJ,CAAC;AAhBD,sCAgBC;AAgBD,SAAgB,WAAW,CACzB,EAAkC;IAElC,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAJD,kCAIC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/repository",
|
|
3
3
|
"description": "Define and implement a common set of interfaces for interacting with databases",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"!*/__tests__"
|
|
34
34
|
],
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@loopback/core": "^4.0.
|
|
36
|
+
"@loopback/core": "^4.0.6"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@loopback/filter": "^3.0.
|
|
39
|
+
"@loopback/filter": "^3.0.6",
|
|
40
40
|
"@types/debug": "^4.1.7",
|
|
41
41
|
"debug": "^4.3.4",
|
|
42
42
|
"lodash": "^4.17.21",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"tslib": "^2.4.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@loopback/build": "^9.0.
|
|
48
|
-
"@loopback/core": "^4.0.
|
|
49
|
-
"@loopback/eslint-config": "^13.0.
|
|
50
|
-
"@loopback/testlab": "^5.0.
|
|
47
|
+
"@loopback/build": "^9.0.6",
|
|
48
|
+
"@loopback/core": "^4.0.6",
|
|
49
|
+
"@loopback/eslint-config": "^13.0.6",
|
|
50
|
+
"@loopback/testlab": "^5.0.6",
|
|
51
51
|
"@types/bson": "^4.0.5",
|
|
52
52
|
"@types/json-schema": "^7.0.11",
|
|
53
|
-
"@types/lodash": "^4.14.
|
|
54
|
-
"@types/node": "^14.18.
|
|
53
|
+
"@types/lodash": "^4.14.191",
|
|
54
|
+
"@types/node": "^14.18.34",
|
|
55
55
|
"bson": "4.7.0"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "709a5ecd1ffddeb02262cecabf7b663c7b4d7e47"
|
|
58
58
|
}
|
package/src/type-resolver.ts
CHANGED
|
@@ -81,18 +81,22 @@ export function isBuiltinType(fn: Function): boolean {
|
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
export type NonFunction<T> = T extends Function ? never : T;
|
|
85
|
+
|
|
84
86
|
/**
|
|
85
87
|
* Resolve a type value that may have been provided via TypeResolver.
|
|
86
88
|
* @param fn - A type class or a type provider.
|
|
87
89
|
* @returns The resolved type.
|
|
88
90
|
*/
|
|
89
91
|
export function resolveType<T extends object>(
|
|
90
|
-
fn: TypeResolver<T> | Class<T
|
|
92
|
+
fn: TypeResolver<T, {}> | Class<T> | Function,
|
|
91
93
|
): Class<T>;
|
|
92
94
|
|
|
93
95
|
// An overload to handle the case when `fn` is not a class nor a resolver.
|
|
94
|
-
export function resolveType<T>(fn: T): T;
|
|
96
|
+
export function resolveType<T>(fn: NonFunction<T>): T;
|
|
95
97
|
|
|
96
|
-
export function resolveType<T extends object>(
|
|
98
|
+
export function resolveType<T extends object>(
|
|
99
|
+
fn: TypeResolver<T> | Class<T> | T,
|
|
100
|
+
) {
|
|
97
101
|
return isTypeResolver(fn) ? fn() : fn;
|
|
98
102
|
}
|