Skip to content

Commit 3022a46

Browse files
closes #54 (missing infer as + type declarations fixed)
1 parent 15588bd commit 3022a46

File tree

4 files changed

+36
-13
lines changed

4 files changed

+36
-13
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {IFindOptions} from "./IFindOptions";
2+
3+
export interface IFindCreateFindOptions<TAttributes> extends IFindOptions {
4+
5+
/**
6+
* Default values to use if building a new instance
7+
*/
8+
defaults?: TAttributes;
9+
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {IFindOptions} from "./IFindOptions";
2+
3+
export interface IFindOrInitializeOptions<TAttributes> extends IFindOptions {
4+
5+
/**
6+
* Default values to use if building a new instance
7+
*/
8+
defaults?: TAttributes;
9+
}

lib/models/Model.d.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ import {Sequelize} from './Sequelize';
33
import {IFindOptions} from '../interfaces/IFindOptions';
44
import * as Promise from 'bluebird';
55
import {
6-
SyncOptions, FindCreateFindOptions, UpsertOptions,
7-
BulkCreateOptions, UpdateOptions, RestoreOptions, DestroyOptions,
8-
TruncateOptions, FindOrInitializeOptions,
9-
CreateOptions, InstanceSaveOptions, InstanceSetOptions, AggregateOptions,
10-
InstanceIncrementDecrementOptions, DropOptions, InstanceUpdateOptions,
11-
InstanceDestroyOptions, InstanceRestoreOptions,
6+
SyncOptions, UpsertOptions, BulkCreateOptions, UpdateOptions, RestoreOptions,
7+
DestroyOptions, TruncateOptions, InstanceSaveOptions, InstanceSetOptions,
8+
AggregateOptions, InstanceIncrementDecrementOptions, DropOptions,
9+
InstanceUpdateOptions, InstanceDestroyOptions, InstanceRestoreOptions,
1210
SchemaOptions, GetTableNameOptions, AddScopeOptions, ScopeOptions,
1311
WhereOptions, CountOptions, ValidationError, DefineAttributes
1412
} from 'sequelize';
1513
import {IAssociationActionOptions} from "../interfaces/IAssociationActionOptions";
1614
import {IBuildOptions} from "../interfaces/IBuildOptions";
1715
import {ICreateOptions} from "../interfaces/ICreateOptions";
16+
import {IFindOrInitializeOptions} from "../interfaces/IFindOrInitializeOptions";
17+
import {IFindCreateFindOptions} from "../interfaces/IFindCreateFindOptions";
1818

1919
/* tslint:disable:member-ordering */
2020
/* tslint:disable:array-type */
@@ -310,11 +310,11 @@ export declare class Model<T> extends Hooks {
310310
* Find a row that matches the query, or build (but don't save) the row if none is found.
311311
* The successfull result of the promise will be (instance, initialized) - Make sure to use .spread()
312312
*/
313-
static findOrInitialize<T extends Model<T>>(options: FindOrInitializeOptions<any>): Promise<[T, boolean]>;
314-
static findOrInitialize<T extends Model<T>, A>(options: FindOrInitializeOptions<A>): Promise<[T, boolean]>;
313+
static findOrInitialize<T extends Model<T>>(options: IFindOrInitializeOptions<any>): Promise<[T, boolean]>;
314+
static findOrInitialize<T extends Model<T>, A>(options: IFindOrInitializeOptions<A>): Promise<[T, boolean]>;
315315

316-
static findOrBuild<T extends Model<T>>(options: FindOrInitializeOptions<any>): Promise<[T, boolean]>;
317-
static findOrBuild<T extends Model<T>, A>(options: FindOrInitializeOptions<A>): Promise<[T, boolean]>;
316+
static findOrBuild<T extends Model<T>>(options: IFindOrInitializeOptions<any>): Promise<[T, boolean]>;
317+
static findOrBuild<T extends Model<T>, A>(options: IFindOrInitializeOptions<A>): Promise<[T, boolean]>;
318318

319319
/**
320320
* Find a row that matches the query, or build and save the row if none is found
@@ -327,13 +327,13 @@ export declare class Model<T> extends Hooks {
327327
* an instance of sequelize.TimeoutError will be thrown instead. If a transaction is created, a savepoint
328328
* will be created instead, and any unique constraint violation will be handled internally.
329329
*/
330-
static findOrCreate<T extends Model<T>>(options: FindOrInitializeOptions<T>): Promise<[T, boolean]>;
330+
static findOrCreate<T extends Model<T>>(options: IFindOrInitializeOptions<T>): Promise<[T, boolean]>;
331331

332332
/**
333333
* A more performant findOrCreate that will not work under a transaction (at least not in postgres)
334334
* Will execute a find call, if empty then attempt to create, if unique constraint then attempt to find again
335335
*/
336-
static findCreateFind<T extends Model<T>>(options: FindCreateFindOptions<T>): Promise<T>;
336+
static findCreateFind<T extends Model<T>>(options: IFindCreateFindOptions<T>): Promise<T>;
337337

338338
/**
339339
* Insert or update a single row. An update will be executed if a row which matches the supplied values on

lib/services/models.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ export const INFER_ALIAS_MAP = {
3333
create: 1,
3434
aggregate: 2,
3535
all: 0,
36+
find: 0,
3637
findAll: 0,
3738
findAndCount: 0,
3839
findAndCountAll: 0,
3940
findById: 1,
4041
findByPrimary: 1,
41-
find: 0,
42+
findCreateFind: 0,
4243
findOne: 0,
44+
findOrBuild: 0,
45+
findOrCreate: 0,
46+
findOrInitialize: 0,
4347
reload: 0,
4448
};
4549

0 commit comments

Comments
 (0)