diff --git a/dist/package-shared/actions/get.d.ts b/dist/package-shared/actions/get.d.ts index 9f0fb13..ed688e4 100644 --- a/dist/package-shared/actions/get.d.ts +++ b/dist/package-shared/actions/get.d.ts @@ -21,5 +21,5 @@ export default function get({ key, db, query, queryValues, tableName, user_id, debug, forceLocal, }: Param): Promise; +}, R extends any = any>({ key, db, query, queryValues, tableName, user_id, debug, forceLocal, }: Param): Promise>; export {}; diff --git a/dist/package-shared/functions/dsql/sql/sql-generator.js b/dist/package-shared/functions/dsql/sql/sql-generator.js index 628266a..5abda09 100644 --- a/dist/package-shared/functions/dsql/sql/sql-generator.js +++ b/dist/package-shared/functions/dsql/sql/sql-generator.js @@ -30,6 +30,12 @@ function sqlGenerator({ tableName, genObject, dbFullName }) { if (queryObj.equality == "LIKE") { str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`; } + else if (queryObj.equality == "REGEXP") { + str = `${finalFieldName} REGEXP '${valueParsed}'`; + } + else if (queryObj.equality == "FULLTEXT") { + str = `MATCH(${finalFieldName}) AGAINST('${valueParsed}' IN BOOLEAN MODE)`; + } else if (queryObj.equality == "NOT EQUAL") { str = `${finalFieldName} != ?`; sqlSearhValues.push(valueParsed); diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index 41ed914..d2340d4 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -277,9 +277,9 @@ export interface UpdateUserFunctionReturn { success: boolean; payload?: Object[] | string; } -export interface GetReturn { +export interface GetReturn { success: boolean; - payload?: any; + payload?: R; msg?: string; error?: string; schema?: DSQL_TableSchemaType; @@ -942,7 +942,7 @@ export type FetchApiReturn = { [key: string]: any; }; export declare const ServerQueryOperators: readonly ["AND", "OR"]; -export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "NOT EQUAL"]; +export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "NOT EQUAL", "REGEXP", "FULLTEXT"]; export type ServerQueryParam({ key, db, @@ -40,7 +41,7 @@ export default async function get< user_id, debug, forceLocal, -}: Param): Promise { +}: Param): Promise> { const grabedHostNames = grabHostNames(); const { host, port, scheme } = grabedHostNames; diff --git a/package-shared/functions/dsql/sql/sql-generator.ts b/package-shared/functions/dsql/sql/sql-generator.ts index 499f62d..40e0d2b 100644 --- a/package-shared/functions/dsql/sql/sql-generator.ts +++ b/package-shared/functions/dsql/sql/sql-generator.ts @@ -62,6 +62,10 @@ export default function sqlGenerator< if (queryObj.equality == "LIKE") { str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`; + } else if (queryObj.equality == "REGEXP") { + str = `${finalFieldName} REGEXP '${valueParsed}'`; + } else if (queryObj.equality == "FULLTEXT") { + str = `MATCH(${finalFieldName}) AGAINST('${valueParsed}' IN BOOLEAN MODE)`; } else if (queryObj.equality == "NOT EQUAL") { str = `${finalFieldName} != ?`; sqlSearhValues.push(valueParsed); diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index ff33c40..6acd1b9 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -291,9 +291,9 @@ export interface UpdateUserFunctionReturn { payload?: Object[] | string; } -export interface GetReturn { +export interface GetReturn { success: boolean; - payload?: any; + payload?: R; msg?: string; error?: string; schema?: DSQL_TableSchemaType; @@ -1092,7 +1092,13 @@ export type FetchApiReturn = { }; export const ServerQueryOperators = ["AND", "OR"] as const; -export const ServerQueryEqualities = ["EQUAL", "LIKE", "NOT EQUAL"] as const; +export const ServerQueryEqualities = [ + "EQUAL", + "LIKE", + "NOT EQUAL", + "REGEXP", + "FULLTEXT", +] as const; export type ServerQueryParam< T extends { [k: string]: any } = { [k: string]: any } @@ -1295,6 +1301,7 @@ export type HandleSocialDbFunctionParams = { additionalFields?: string[]; debug?: boolean; loginOnly?: boolean; + social_id?: string | number; }; export type HandleSocialDbFunctionReturn = { diff --git a/package.json b/package.json index fa9b16d..f26e8d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.6.1", + "version": "4.6.2", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {