Update Types

This commit is contained in:
Benjamin Toby
2025-01-26 07:03:38 +01:00
parent 7188fe6e2c
commit 94d15ecb30
12 changed files with 84 additions and 51 deletions
+7 -9
View File
@@ -4,19 +4,15 @@ import _ from "lodash";
import serverError from "../../backend/serverError";
import runQuery, { DbContextsArray } from "../../backend/db/runQuery";
import {
ApiGetQueryObject,
DSQL_TableSchemaType,
GetReturn,
ServerQueryParam,
} from "../../../types";
import apiGetGrabQueryAndValues from "../../../utils/grab-query-and-values";
type Param = {
query:
| string
| {
query: ServerQueryParam;
table: string;
};
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
query: string | ApiGetQueryObject<T>;
queryValues?: (string | number)[];
dbFullName: string;
tableName?: string;
@@ -28,7 +24,9 @@ type Param = {
/**
* # Get Function FOr API
*/
export default async function apiGet({
export default async function apiGet<
T extends { [key: string]: any } = { [key: string]: any }
>({
query,
dbFullName,
queryValues,
@@ -36,7 +34,7 @@ export default async function apiGet({
dbSchema,
debug,
dbContext,
}: Param): Promise<import("../../../types").GetReturn> {
}: Param<T>): Promise<import("../../../types").GetReturn> {
const queryAndValues = apiGetGrabQueryAndValues({
query,
values: queryValues,
@@ -4,8 +4,8 @@ import {
ServerQueryQueryObject,
} from "../../../types";
type Param = {
genObject?: ServerQueryParam;
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
genObject?: ServerQueryParam<T>;
tableName: string;
dbFullName?: string;
};
@@ -21,11 +21,9 @@ type Return =
* # SQL Query Generator
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
*/
export default function sqlGenerator({
tableName,
genObject,
dbFullName,
}: Param): Return {
export default function sqlGenerator<
T extends { [key: string]: any } = { [key: string]: any }
>({ tableName, genObject, dbFullName }: Param<T>): Return {
if (!genObject) return undefined;
const finalQuery = genObject.query ? genObject.query : undefined;
@@ -276,8 +274,8 @@ export default function sqlGenerator({
if (genObject.order)
queryString += ` ORDER BY ${
genObject.join
? `${finalDbName}${tableName}.${genObject.order.field}`
: genObject.order.field
? `${finalDbName}${tableName}.${String(genObject.order.field)}`
: String(genObject.order.field)
} ${genObject.order.strategy}`;
if (genObject.limit) queryString += ` LIMIT ${genObject.limit}`;
+4 -3
View File
@@ -1098,15 +1098,16 @@ export type ServerQueryParam<
selectFields?: string[];
query?: ServerQueryQueryObject<T>;
limit?: number;
page?: number;
offset?: number;
order?: {
field: string;
field: keyof T;
strategy: "ASC" | "DESC";
};
searchOperator?: (typeof ServerQueryOperators)[number];
searchEquality?: (typeof ServerQueryEqualities)[number];
addUserId?: {
fieldName: string;
fieldName: keyof T;
};
join?: ServerQueryParamsJoin[];
[key: string]: any;
@@ -1500,7 +1501,7 @@ export const DsqlCrudActions = ["insert", "update", "delete", "get"] as const;
export type DsqlCrudQueryObject<
T extends { [key: string]: any } = { [key: string]: any }
> = ServerQueryParam & {
> = ServerQueryParam<T> & {
query?: ServerQueryQueryObject<T>;
};
@@ -1,5 +1,11 @@
import { DsqlMethodCrudParam, ServerQueryParam } from "../../types";
import {
DsqlCrudQueryObject,
DsqlMethodCrudParam,
ServerQueryParam,
} from "../../types";
import deserializeQuery from "../deserialize-query";
import EJSON from "../ejson";
import numberfy from "../numberfy";
import dsqlCrud from "./crud";
export type APIDataCrudQuery = ServerQueryParam & {
@@ -35,7 +41,9 @@ export default async function dsqlMethodCrud<
try {
let finalBody = body;
let finalQuery = query;
let finalQuery = deserializeQuery(query as any) as
| DsqlCrudQueryObject<T>
| undefined;
let LIMIT = 10;
let PAGE = 1;
@@ -55,8 +63,8 @@ export default async function dsqlMethodCrud<
}
});
LIMIT = finalQuery.limit || 10;
PAGE = finalQuery.page || 1;
if (finalQuery.limit) LIMIT = numberfy(finalQuery.limit);
if (finalQuery.page) PAGE = numberfy(finalQuery.page);
OFFSET = (PAGE - 1) * LIMIT;
}
@@ -1,11 +1,13 @@
import sqlGenerator from "../functions/dsql/sql/sql-generator";
import { ApiGetQueryObject } from "../types";
type Param = {
query: string | ApiGetQueryObject;
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
query: string | ApiGetQueryObject<T>;
values?: (string | number)[];
};
export default function apiGetGrabQueryAndValues({ query, values }: Param) {
export default function apiGetGrabQueryAndValues<
T extends { [key: string]: any } = { [key: string]: any }
>({ query, values }: Param<T>) {
const queryGenObject =
typeof query == "string"
? undefined