badmfck-api-server 4.0.88 → 4.0.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -127,7 +127,7 @@ export declare class DBService extends BaseService {
|
|
|
127
127
|
adapter: IDBAdapter | null;
|
|
128
128
|
constructor(options: IDBSericeOptions);
|
|
129
129
|
init(): Promise<void>;
|
|
130
|
-
static escape(id: string, value:
|
|
130
|
+
static escape(id: string, value: any): string;
|
|
131
131
|
getAdapter(dbid?: string | null): IDBAdapter | IDBError;
|
|
132
132
|
reportQuery(result: IDBResult, req: IDBQuery): Promise<void>;
|
|
133
133
|
finishService(): Promise<void>;
|
|
@@ -242,8 +242,27 @@ class DBService extends BaseService_1.BaseService {
|
|
|
242
242
|
}
|
|
243
243
|
static escape(id, value) {
|
|
244
244
|
const adapter = DBService.allInstances.find(i => i.options.id === id)?.adapter;
|
|
245
|
-
if (!adapter || "errno" in adapter)
|
|
246
|
-
|
|
245
|
+
if (!adapter || "errno" in adapter) {
|
|
246
|
+
if (value === null || value === undefined)
|
|
247
|
+
return 'NULL';
|
|
248
|
+
const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
249
|
+
return "'" + stringValue.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, (char) => {
|
|
250
|
+
switch (char) {
|
|
251
|
+
case "\0": return "\\0";
|
|
252
|
+
case "\x08": return "\\b";
|
|
253
|
+
case "\x09": return "\\t";
|
|
254
|
+
case "\x1a": return "\\z";
|
|
255
|
+
case "\n": return "\\n";
|
|
256
|
+
case "\r": return "\\r";
|
|
257
|
+
case "\"":
|
|
258
|
+
case "'":
|
|
259
|
+
case "\\":
|
|
260
|
+
case "%":
|
|
261
|
+
return "\\" + char;
|
|
262
|
+
default: return char;
|
|
263
|
+
}
|
|
264
|
+
}) + "'";
|
|
265
|
+
}
|
|
247
266
|
return adapter.escape(value);
|
|
248
267
|
}
|
|
249
268
|
getAdapter(dbid) {
|