New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@jakub.knejzlik/ts-query-server

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jakub.knejzlik/ts-query-server - npm Package Compare versions

Comparing version

to
0.1.19

5

dist/client-mysql.d.ts
import { SelectQuery } from "@jakub.knejzlik/ts-query";
import * as mysql from "mysql2/promise";
import { QueryRouterClient, QueryRouterClientOpts } from "./client";

@@ -6,2 +7,3 @@ interface QueryRouterClientMySQLOpts extends Partial<QueryRouterClientOpts> {

databaseName: string;
poolOptions?: mysql.PoolOptions;
}

@@ -16,2 +18,3 @@ export declare class QueryRouterClientMySQL extends QueryRouterClient<QueryRouterClientMySQLOpts> {

sqls: string[];
poolOptions?: mysql.PoolOptions;
}

@@ -21,3 +24,3 @@ export interface ExecuteQueryResult {

}
export declare const executeQueries: (event: ExecuteQueriesOpts) => Promise<ExecuteQueryResult>;
export declare const executeQueries: (opts: ExecuteQueriesOpts) => Promise<ExecuteQueryResult>;
export {};

24

dist/client-mysql.js

@@ -48,6 +48,8 @@ "use strict";

async executeQueries(queries) {
const { databaseUrl, databaseName, poolOptions } = this.opts;
const res = await (0, exports.executeQueries)({
databaseUrl: this.opts.databaseUrl,
databaseName: this.opts.databaseName,
databaseUrl,
databaseName,
sqls: queries.map((query) => query.toSQL(this.opts.flavor)),
poolOptions,
});

@@ -64,23 +66,21 @@ return res.results;

}
function getPool(poolKey, databaseUrl) {
function getPool(poolKey, databaseUrl, poolOptions) {
if (!poolCache[poolKey]) {
poolCache[poolKey] = mysql.createPool({
uri: databaseUrl,
multipleStatements: true,
});
poolCache[poolKey] = mysql.createPool(Object.assign(Object.assign({ uri: databaseUrl }, poolOptions), { multipleStatements: true }));
}
return poolCache[poolKey];
}
const executeQueries = async (event) => {
if (event.sqls.length === 0)
const executeQueries = async (opts) => {
const { poolOptions, databaseName, sqls } = opts;
if (sqls.length === 0)
return { results: [] };
const databaseUrl = event.databaseUrl
const databaseUrl = opts.databaseUrl
.replace("{{MYSQL_USER}}", process.env.MYSQL_USER || "")
.replace("{{MYSQL_PASSWORD}}", process.env.MYSQL_PASSWORD || "");
const poolKey = createPoolKey(databaseUrl);
const pool = getPool(poolKey, databaseUrl);
const pool = getPool(poolKey, databaseUrl, poolOptions);
let connection = null;
try {
connection = await pool.getConnection();
const sql = `USE \`${event.databaseName}\`;\n` + event.sqls.join(";\n");
const sql = `USE \`${databaseName}\`;\n` + sqls.join(";\n");
const [results] = await connection.query({ sql });

@@ -87,0 +87,0 @@ return { results: results.slice(1) };

{
"name": "@jakub.knejzlik/ts-query-server",
"version": "0.1.18",
"version": "0.1.19",
"description": "TypeScript library for executing SQL queries built with ts-query across diverse server environments.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -9,2 +9,3 @@ import { Q, SelectQuery } from "@jakub.knejzlik/ts-query";

databaseName: string;
poolOptions?: mysql.PoolOptions;
}

@@ -18,6 +19,8 @@

async executeQueries(queries: SelectQuery[]): Promise<any[]> {
const { databaseUrl, databaseName, poolOptions } = this.opts;
const res = await executeQueries({
databaseUrl: this.opts.databaseUrl,
databaseName: this.opts.databaseName,
databaseUrl,
databaseName,
sqls: queries.map((query) => query.toSQL(this.opts.flavor)),
poolOptions,
});

@@ -32,2 +35,3 @@ return res.results;

sqls: string[];
poolOptions?: mysql.PoolOptions;
}

@@ -47,6 +51,11 @@

function getPool(poolKey: string, databaseUrl: string): mysql.Pool {
function getPool(
poolKey: string,
databaseUrl: string,
poolOptions?: mysql.PoolOptions
): mysql.Pool {
if (!poolCache[poolKey]) {
poolCache[poolKey] = mysql.createPool({
uri: databaseUrl,
...poolOptions,
multipleStatements: true,

@@ -59,11 +68,12 @@ });

export const executeQueries = async (
event: ExecuteQueriesOpts
opts: ExecuteQueriesOpts
): Promise<ExecuteQueryResult> => {
if (event.sqls.length === 0) return { results: [] };
const { poolOptions, databaseName, sqls } = opts;
if (sqls.length === 0) return { results: [] };
const databaseUrl = event.databaseUrl
const databaseUrl = opts.databaseUrl
.replace("{{MYSQL_USER}}", process.env.MYSQL_USER || "")
.replace("{{MYSQL_PASSWORD}}", process.env.MYSQL_PASSWORD || "");
const poolKey = createPoolKey(databaseUrl);
const pool = getPool(poolKey, databaseUrl);
const pool = getPool(poolKey, databaseUrl, poolOptions);
let connection: mysql.PoolConnection | null = null;

@@ -74,3 +84,3 @@

const sql = `USE \`${event.databaseName}\`;\n` + event.sqls.join(";\n");
const sql = `USE \`${databaseName}\`;\n` + sqls.join(";\n");
const [results] = await connection.query({ sql });

@@ -77,0 +87,0 @@