utilitas 1995.2.13 → 1995.2.15
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/README.md +4 -0
- package/dist/utilitas.lite.mjs +1 -1
- package/dist/utilitas.lite.mjs.map +1 -1
- package/lib/dbio.mjs +15 -2
- package/lib/manifest.mjs +1 -1
- package/lib/memory.mjs +36 -13
- package/package.json +1 -1
package/lib/dbio.mjs
CHANGED
|
@@ -25,6 +25,7 @@ const quote = name => `${bracket}${name}${bracket}`;
|
|
|
25
25
|
const join = elements => elements.join(', ');
|
|
26
26
|
const assembleDelete = table => `DELETE FROM ${quote(assertTable(table))}`;
|
|
27
27
|
const execByQuery = async (...a) => await rawQuery(...distillArguments(...a));
|
|
28
|
+
const getProvider = async () => (await init()) && provider;
|
|
28
29
|
|
|
29
30
|
let provider, pool, actExecute, bracket, sqlShowTables, placeholder,
|
|
30
31
|
sqlShowIndexes, fieldCountResult, sqlDesc, doublePlaceholder;
|
|
@@ -32,7 +33,7 @@ let provider, pool, actExecute, bracket, sqlShowTables, placeholder,
|
|
|
32
33
|
const init = async (options) => {
|
|
33
34
|
if (options) {
|
|
34
35
|
const _provider = ensureString(options?.provider, { case: 'UP' });
|
|
35
|
-
let port;
|
|
36
|
+
let port, vector = '';
|
|
36
37
|
switch (_provider) {
|
|
37
38
|
case MYSQL:
|
|
38
39
|
case 'MARIA':
|
|
@@ -70,6 +71,10 @@ const init = async (options) => {
|
|
|
70
71
|
['pg_indexes', 'tablename', ''],
|
|
71
72
|
[`${IFSC}.COLUMNS`, 'TABLE_NAME', ''],
|
|
72
73
|
].map(args => assembleQueryByKeyValue(...args));
|
|
74
|
+
if (options?.vector) {
|
|
75
|
+
await enableVector();
|
|
76
|
+
vector = '(vector)';
|
|
77
|
+
}
|
|
73
78
|
break;
|
|
74
79
|
default:
|
|
75
80
|
assert(
|
|
@@ -80,6 +85,7 @@ const init = async (options) => {
|
|
|
80
85
|
isPrimary && !options.silent && log(
|
|
81
86
|
`Initialized: ${_provider.toLowerCase()}://${options.user}@`
|
|
82
87
|
+ `${options.host}:${options.port || port}/${options.database}`
|
|
88
|
+
+ `${vector}`
|
|
83
89
|
);
|
|
84
90
|
}
|
|
85
91
|
assert(pool, 'Database has not been initialized.', 501);
|
|
@@ -120,7 +126,6 @@ const rawQuery = async (...args) => {
|
|
|
120
126
|
|
|
121
127
|
const rawExecute = async (...args) => {
|
|
122
128
|
const conn = await init();
|
|
123
|
-
console.log(args);
|
|
124
129
|
logCommand(...args);
|
|
125
130
|
return await conn[actExecute](...args);
|
|
126
131
|
};
|
|
@@ -422,9 +427,15 @@ const deleteAll = async (table, options) => {
|
|
|
422
427
|
return await execute(assembleDelete(table));
|
|
423
428
|
};
|
|
424
429
|
|
|
430
|
+
const enableVector = async (options) => await execute(
|
|
431
|
+
'CREATE EXTENSION IF NOT EXISTS vector'
|
|
432
|
+
);
|
|
433
|
+
|
|
425
434
|
export default init;
|
|
426
435
|
export {
|
|
427
436
|
_NEED,
|
|
437
|
+
MYSQL,
|
|
438
|
+
POSTGRESQL,
|
|
428
439
|
assembleInsert,
|
|
429
440
|
assembleQuery,
|
|
430
441
|
assembleSet,
|
|
@@ -437,8 +448,10 @@ export {
|
|
|
437
448
|
deleteByKeyValue,
|
|
438
449
|
desc,
|
|
439
450
|
drop,
|
|
451
|
+
enableVector,
|
|
440
452
|
end,
|
|
441
453
|
execute,
|
|
454
|
+
getProvider,
|
|
442
455
|
indexes,
|
|
443
456
|
init,
|
|
444
457
|
insert,
|
package/lib/manifest.mjs
CHANGED
package/lib/memory.mjs
CHANGED
|
@@ -1,25 +1,48 @@
|
|
|
1
1
|
import {
|
|
2
|
-
deleteAll, deleteById, query, queryAll,
|
|
2
|
+
MYSQL, POSTGRESQL, deleteAll, deleteById, getProvider, query, queryAll,
|
|
3
|
+
queryById, upsert,
|
|
3
4
|
} from './dbio.mjs';
|
|
4
5
|
|
|
5
6
|
import { ensureArray, parseJson, trim } from './utilitas.mjs';
|
|
6
7
|
|
|
7
8
|
const [table, defaultKey] = ['utilitas_memory', { key: 'key' }];
|
|
8
9
|
const [pack, unpack] = [val => JSON.stringify(val), val => parseJson(val, val)];
|
|
10
|
+
const cleanSql = sql => sql.replace(/\ {8}/g, '');
|
|
11
|
+
|
|
12
|
+
const initSql = {
|
|
13
|
+
[MYSQL]: [[
|
|
14
|
+
cleanSql(`CREATE TABLE IF NOT EXISTS ?? (
|
|
15
|
+
\`key\` VARCHAR(255) NOT NULL,
|
|
16
|
+
\`value\` TEXT,
|
|
17
|
+
\`createdAt\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
\`updatedAt\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
19
|
+
PRIMARY KEY (\`key\`),
|
|
20
|
+
INDEX (\`value\`(768)),
|
|
21
|
+
INDEX (\`createdAt\`),
|
|
22
|
+
INDEX (\`updatedAt\`)
|
|
23
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`), [table],
|
|
24
|
+
]],
|
|
25
|
+
[POSTGRESQL]: [[
|
|
26
|
+
cleanSql(`CREATE TABLE IF NOT EXISTS ${table} (
|
|
27
|
+
key VARCHAR(255) NOT NULL,
|
|
28
|
+
value TEXT,
|
|
29
|
+
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
30
|
+
updatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
PRIMARY KEY (key)
|
|
32
|
+
)`)
|
|
33
|
+
], [
|
|
34
|
+
`CREATE INDEX IF NOT EXISTS value_index ON ${table} (value)`,
|
|
35
|
+
], [
|
|
36
|
+
`CREATE INDEX IF NOT EXISTS createdAt_index ON ${table} (createdAt)`,
|
|
37
|
+
], [
|
|
38
|
+
`CREATE INDEX IF NOT EXISTS updatedAt_index ON ${table} (updatedAt)`,
|
|
39
|
+
]],
|
|
40
|
+
};
|
|
9
41
|
|
|
10
42
|
const init = async () => {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
\`value\` TEXT,
|
|
15
|
-
\`createdAt\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
-
\`updatedAt\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
-
PRIMARY KEY (\`key\`),
|
|
18
|
-
INDEX (\`value\`(768)),
|
|
19
|
-
INDEX (\`createdAt\`),
|
|
20
|
-
INDEX (\`updatedAt\`)
|
|
21
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`, [table]
|
|
22
|
-
);
|
|
43
|
+
const provider = await getProvider();
|
|
44
|
+
const _result = [];
|
|
45
|
+
for (let act of initSql[provider]) { _result.push(await query(...act)); }
|
|
23
46
|
return { del, get, set, _result };
|
|
24
47
|
};
|
|
25
48
|
|