Updates
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { ServerlessMysql } from "serverless-mysql";
|
||||
|
||||
type QueryObject = {
|
||||
query: string;
|
||||
values?: (string | number | undefined)[];
|
||||
};
|
||||
|
||||
type Return<ReturnType = any> = ReturnType | null;
|
||||
|
||||
/**
|
||||
* # Run Query From MySQL Connection
|
||||
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
||||
* setup with `serverless-mysql` npm module
|
||||
*/
|
||||
export default async function connDbHandler<ReturnType = any>(
|
||||
/**
|
||||
* ServerlessMySQL Connection Object
|
||||
*/
|
||||
conn: ServerlessMysql,
|
||||
/**
|
||||
* String Or `QueryObject` Array
|
||||
*/
|
||||
query: QueryObject["query"] | QueryObject[],
|
||||
/**
|
||||
* Array of Values to Sanitize and Inject
|
||||
*/
|
||||
values?: QueryObject["values"]
|
||||
): Promise<Return<ReturnType>> {
|
||||
try {
|
||||
if (typeof query == "string") {
|
||||
const res = await conn.query(query, values);
|
||||
return JSON.parse(JSON.stringify(res));
|
||||
} else if (typeof query == "object") {
|
||||
const resArray = [];
|
||||
for (let i = 0; i < query.length; i++) {
|
||||
const queryObj = query[i];
|
||||
const queryObjRes = await conn.query(
|
||||
queryObj.query,
|
||||
queryObj.values
|
||||
);
|
||||
resArray.push(JSON.parse(JSON.stringify(queryObjRes)));
|
||||
}
|
||||
return resArray as any;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} catch (error) {
|
||||
return null;
|
||||
} finally {
|
||||
conn.end();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user