@asla/yoursql 0.6.3 → 0.6.5
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.
- package/dist/mod.js +14 -9
- package/dist/select/TableQuery.d.ts +2 -2
- package/package.json +1 -1
package/dist/mod.js
CHANGED
|
@@ -406,12 +406,14 @@ class SqlValuesCreator {
|
|
|
406
406
|
if (objectList.length <= 0)
|
|
407
407
|
throw new Error("objectList 不能是空数组");
|
|
408
408
|
let keys;
|
|
409
|
-
let asserts
|
|
409
|
+
let asserts;
|
|
410
410
|
if (!keys_types) {
|
|
411
411
|
keys = Array.from(getObjectListKeys(objectList, keepUndefinedKey));
|
|
412
|
+
asserts = [];
|
|
412
413
|
}
|
|
413
414
|
else if (keys_types instanceof Array) {
|
|
414
415
|
keys = keys_types;
|
|
416
|
+
asserts = [];
|
|
415
417
|
}
|
|
416
418
|
else {
|
|
417
419
|
keys = Object.keys(keys_types);
|
|
@@ -429,7 +431,7 @@ class SqlValuesCreator {
|
|
|
429
431
|
j = 0;
|
|
430
432
|
for (; j < keys.length; j++) {
|
|
431
433
|
value = object[keys[j]];
|
|
432
|
-
rows[j] = this.toSqlStr(value);
|
|
434
|
+
rows[j] = this.toSqlStr(value, asserts[j]?.assertJsType);
|
|
433
435
|
}
|
|
434
436
|
str += ",\n(" + rows.join(",") + ")";
|
|
435
437
|
}
|
|
@@ -441,11 +443,11 @@ class SqlValuesCreator {
|
|
|
441
443
|
return str;
|
|
442
444
|
}
|
|
443
445
|
objectToValues(object, keys_types) {
|
|
444
|
-
let type
|
|
446
|
+
let type;
|
|
445
447
|
let keys;
|
|
446
448
|
if (keys_types instanceof Array) {
|
|
447
449
|
keys = keys_types;
|
|
448
|
-
type =
|
|
450
|
+
type = [];
|
|
449
451
|
}
|
|
450
452
|
else if (keys_types) {
|
|
451
453
|
keys = Object.keys(keys_types);
|
|
@@ -453,6 +455,7 @@ class SqlValuesCreator {
|
|
|
453
455
|
}
|
|
454
456
|
else {
|
|
455
457
|
keys = Object.keys(object);
|
|
458
|
+
type = [];
|
|
456
459
|
}
|
|
457
460
|
return this._internalObjectToValues(object, keys, type);
|
|
458
461
|
}
|
|
@@ -466,7 +469,7 @@ class SqlValuesCreator {
|
|
|
466
469
|
for (; i < keys.length; i++) {
|
|
467
470
|
key = keys[i];
|
|
468
471
|
value = object[key];
|
|
469
|
-
assertType = type[
|
|
472
|
+
assertType = type[i];
|
|
470
473
|
if (assertType) {
|
|
471
474
|
values[i] = this.toSqlStr(value, assertType.assertJsType);
|
|
472
475
|
if (assertType.sqlType)
|
|
@@ -494,6 +497,7 @@ class SqlValuesCreator {
|
|
|
494
497
|
throw new Error("values 不能为空");
|
|
495
498
|
const insertKeys = Object.keys(valuesTypes);
|
|
496
499
|
const defaultValues = [];
|
|
500
|
+
const asserts = new Array(insertKeys.length);
|
|
497
501
|
const valuesStr = new Array(values.length);
|
|
498
502
|
{
|
|
499
503
|
const column0 = new Array(insertKeys.length);
|
|
@@ -512,6 +516,7 @@ class SqlValuesCreator {
|
|
|
512
516
|
else {
|
|
513
517
|
sqlType = item.sqlType;
|
|
514
518
|
assertJsType = item.assertJsType;
|
|
519
|
+
asserts[i] = assertJsType;
|
|
515
520
|
defaultValues[i] = item.sqlDefault ?? "NULL";
|
|
516
521
|
}
|
|
517
522
|
value = values[0][columnName];
|
|
@@ -530,7 +535,7 @@ class SqlValuesCreator {
|
|
|
530
535
|
if (value === undefined)
|
|
531
536
|
items[j] = defaultValues[j];
|
|
532
537
|
else
|
|
533
|
-
items[j] = this.toSqlStr(value);
|
|
538
|
+
items[j] = this.toSqlStr(value, asserts[j]);
|
|
534
539
|
}
|
|
535
540
|
valuesStr[i] = "(" + items.join(",") + ")";
|
|
536
541
|
}
|
|
@@ -558,15 +563,15 @@ _YourValuesAs_asName = new WeakMap(), _YourValuesAs_valuesStr = new WeakMap(), _
|
|
|
558
563
|
function initColumnAssert(keys, keys_types) {
|
|
559
564
|
let key;
|
|
560
565
|
let value;
|
|
561
|
-
let type =
|
|
566
|
+
let type = new Array(keys.length);
|
|
562
567
|
for (let i = 0; i < keys.length; i++) {
|
|
563
568
|
key = keys[i];
|
|
564
569
|
value = keys_types[key];
|
|
565
570
|
if (typeof value === "string") {
|
|
566
|
-
type[
|
|
571
|
+
type[i] = { sqlType: value };
|
|
567
572
|
}
|
|
568
573
|
else {
|
|
569
|
-
type[
|
|
574
|
+
type[i] = value;
|
|
570
575
|
}
|
|
571
576
|
}
|
|
572
577
|
return type;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SqlValuesCreator
|
|
1
|
+
import { SqlValuesCreator } from "../sql_value/sql_value.ts";
|
|
2
2
|
import { ColumnsSelected, SelectColumns, UpdateRowValue, TableType } from "./type.ts";
|
|
3
3
|
import { CurrentWhere, Selection } from "./select.ts";
|
|
4
4
|
import { DbTable, SqlQueryStatement } from "./selectable.ts";
|
|
@@ -56,7 +56,7 @@ export declare class DbTableQuery<T extends TableType = Record<string, any>, C e
|
|
|
56
56
|
export interface InsertOption<T extends object> {
|
|
57
57
|
conflict?: (keyof T)[] | string;
|
|
58
58
|
updateValues?: Constructable<{
|
|
59
|
-
[key in keyof T]?: undefined |
|
|
59
|
+
[key in keyof T]?: undefined | String | T[key];
|
|
60
60
|
} | string | void>;
|
|
61
61
|
where?: Constructable<ConditionParam | void>;
|
|
62
62
|
}
|