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/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
@@ -1,7 +1,7 @@
1
1
  const manifest = {
2
2
  "name": "utilitas",
3
3
  "description": "Just another common utility for JavaScript.",
4
- "version": "1995.2.13",
4
+ "version": "1995.2.15",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/Leask/utilitas",
7
7
  "main": "index.mjs",
package/lib/memory.mjs CHANGED
@@ -1,25 +1,48 @@
1
1
  import {
2
- deleteAll, deleteById, query, queryAll, queryById, upsert
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 _result = await query(
12
- `CREATE TABLE IF NOT EXISTS ?? (
13
- \`key\` VARCHAR(255) NOT NULL,
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
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "utilitas",
3
3
  "description": "Just another common utility for JavaScript.",
4
- "version": "1995.2.13",
4
+ "version": "1995.2.15",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/Leask/utilitas",
7
7
  "main": "index.mjs",