diff --git a/package.json b/package.json index f336c7f..5899369 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "safe-typeorm", - "version": "1.0.9", + "version": "1.0.11", "description": "Safe Relationship Decorators for the TypeORM", "main": "lib/index.js", "typings": "lib/index.d.ts", diff --git a/src/Model.ts b/src/Model.ts index 7b3de48..f07ab5c 100644 --- a/src/Model.ts +++ b/src/Model.ts @@ -302,7 +302,7 @@ export abstract class Model extends orm.BaseEntity ( this: Model.Creator, fieldLike: `${Literal}` | `${string}.${Literal}`, - operator: "IN", + operator: "IN" | "NOT IN", parameters: Array>, ): [string, Record>>]; diff --git a/src/functional/getWhereArguments.ts b/src/functional/getWhereArguments.ts index ca244fb..815ebff 100644 --- a/src/functional/getWhereArguments.ts +++ b/src/functional/getWhereArguments.ts @@ -112,7 +112,7 @@ export function getWhereArguments< ( creator: Creator, fieldLike: `${Literal}` | `${string}.${Literal}`, - operator: "IN", + operator: "IN" | "NOT IN", parameters: Array> ): [string, Record, Field.ValueType]>]; @@ -171,7 +171,7 @@ export function getWhereArguments< if (rest.length <= 2) { // SPECIALIZE OPERATOR AND PARAMETER - let operator: Operator | "IN"; + let operator: Operator | "IN" | "NOT IN"; let param: Field.ValueType; if (rest.length === 1) @@ -199,7 +199,7 @@ export function getWhereArguments< // RETURNS WITH BINDING const uuid: string = crypto.randomBytes(64).toString("hex"); - const binding: string = (operator === "IN") + const binding: string = (operator === "IN" || operator === "NOT IN") ? `(:...${uuid})` : `:${uuid}`; return [`${column} ${operator} ${binding}`, { [uuid]: param }]; diff --git a/src/transactions/InsertCollection.ts b/src/transactions/InsertCollection.ts index 098ae64..19a4d92 100644 --- a/src/transactions/InsertCollection.ts +++ b/src/transactions/InsertCollection.ts @@ -153,6 +153,8 @@ function getDependencies if (output === undefined) { output = new Set(); + dependencies.set(target, output); + for (const meta of connection.entityMetadatas) { const child: Creator = meta.target as Creator; @@ -168,7 +170,6 @@ function getDependencies break; } } - dependencies.set(target, output); } return output; }