diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index c462962..ee5db66 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -614,7 +614,7 @@ export declare const ServerQueryOperators: readonly ["AND", "OR"]; /** * Supported comparison operators for server-side query generation. */ -export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "LIKE_RAW", "LIKE_LOWER", "LIKE_LOWER_RAW", "NOT LIKE", "NOT LIKE_RAW", "NOT_LIKE_LOWER", "NOT_LIKE_LOWER_RAW", "NOT EQUAL", "REGEXP", "FULLTEXT", "IN", "NOT IN", "BETWEEN", "NOT BETWEEN", "IS NULL", "IS NOT NULL", "EXISTS", "NOT EXISTS", "GREATER THAN", "GREATER THAN OR EQUAL", "LESS THAN", "LESS THAN OR EQUAL", "MATCH", "MATCH_BOOLEAN"]; +export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "LIKE_RAW", "LIKE_LOWER", "LIKE_LOWER_RAW", "NOT LIKE", "NOT LIKE_RAW", "NOT_LIKE_LOWER", "NOT_LIKE_LOWER_RAW", "NOT EQUAL", "REGEXP", "FULLTEXT", "IN", "NOT IN", "BETWEEN", "NOT BETWEEN", "IS NULL", "IS NOT NULL", "IS NOT", "EXISTS", "NOT EXISTS", "GREATER THAN", "GREATER THAN OR EQUAL", "LESS THAN", "LESS THAN OR EQUAL", "MATCH", "MATCH_BOOLEAN"]; /** * Top-level query-builder input used to generate SELECT statements, joins, * grouping, pagination, and full-text search clauses. diff --git a/dist/types/index.js b/dist/types/index.js index 3414131..60ff51d 100644 --- a/dist/types/index.js +++ b/dist/types/index.js @@ -71,6 +71,7 @@ export const ServerQueryEqualities = [ "NOT BETWEEN", "IS NULL", "IS NOT NULL", + "IS NOT", "EXISTS", "NOT EXISTS", "GREATER THAN", diff --git a/dist/utils/sql-equality-parser.js b/dist/utils/sql-equality-parser.js index 207d670..77dc7a9 100644 --- a/dist/utils/sql-equality-parser.js +++ b/dist/utils/sql-equality-parser.js @@ -9,6 +9,8 @@ export default function sqlEqualityParser(eq) { return "NOT LIKE"; case "NOT EQUAL": return "<>"; + case "IS NOT": + return "IS NOT"; case "IN": return "IN"; case "NOT IN": diff --git a/dist/utils/sql-gen-operator-gen.js b/dist/utils/sql-gen-operator-gen.js index 5c93273..9e23fc4 100644 --- a/dist/utils/sql-gen-operator-gen.js +++ b/dist/utils/sql-gen-operator-gen.js @@ -91,6 +91,12 @@ export default function sqlGenOperatorGen({ fieldName, value, equality, queryObj param: finalParams, }; } + else if (equality == "IS NOT") { + return { + str: `${fieldName} IS NOT ${finalValue}`, + param: finalParams, + }; + } else if (equality) { return { str: `${fieldName} ${sqlEqualityParser(equality)} ${finalValue}`, diff --git a/package.json b/package.json index f5228ae..c9b32b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bun-sqlite", - "version": "1.0.35", + "version": "1.0.36", "description": "SQLite manager for Bun", "author": "Benjamin Toby", "main": "dist/index.js", diff --git a/src/types/index.ts b/src/types/index.ts index 4cd354c..2784b16 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -670,6 +670,7 @@ export const ServerQueryEqualities = [ "NOT BETWEEN", "IS NULL", "IS NOT NULL", + "IS NOT", "EXISTS", "NOT EXISTS", "GREATER THAN", diff --git a/src/utils/sql-equality-parser.ts b/src/utils/sql-equality-parser.ts index b5c4358..afb6972 100644 --- a/src/utils/sql-equality-parser.ts +++ b/src/utils/sql-equality-parser.ts @@ -1,7 +1,7 @@ import { ServerQueryEqualities } from "../types"; export default function sqlEqualityParser( - eq: (typeof ServerQueryEqualities)[number] + eq: (typeof ServerQueryEqualities)[number], ): string { switch (eq) { case "EQUAL": @@ -12,6 +12,8 @@ export default function sqlEqualityParser( return "NOT LIKE"; case "NOT EQUAL": return "<>"; + case "IS NOT": + return "IS NOT"; case "IN": return "IN"; case "NOT IN": diff --git a/src/utils/sql-gen-operator-gen.ts b/src/utils/sql-gen-operator-gen.ts index 02fcc35..b064c4a 100644 --- a/src/utils/sql-gen-operator-gen.ts +++ b/src/utils/sql-gen-operator-gen.ts @@ -107,6 +107,11 @@ export default function sqlGenOperatorGen({ str: `${fieldName} != ${finalValue}`, param: finalParams, }; + } else if (equality == "IS NOT") { + return { + str: `${fieldName} IS NOT ${finalValue}`, + param: finalParams, + }; } else if (equality) { return { str: `${fieldName} ${sqlEqualityParser(