@saltcorn/sqlite
Advanced tools
Comparing version 0.7.2-beta.0 to 0.7.2-beta.1
@@ -66,16 +66,27 @@ /** | ||
/** | ||
* @param {any} v | ||
* @returns {boolean} | ||
* @function | ||
* | ||
* @returns | ||
*/ | ||
export declare const reprAsJson: (v: any) => boolean; | ||
export declare const listTables: () => Promise<any>; | ||
/** | ||
* @param {object[]} opts | ||
* @param {*} opts.k | ||
* @param {any} opts.v | ||
* @returns {string|any} | ||
* @function | ||
* | ||
* @returns | ||
*/ | ||
export declare const mkVal: ([k, v]: [string, any]) => Value; | ||
export declare const listUserDefinedTables: () => Promise<any>; | ||
/** | ||
* | ||
* @returns | ||
*/ | ||
export declare const listScTables: () => Promise<any>; | ||
/** | ||
* | ||
* @param name | ||
*/ | ||
export declare const dropTable: (name: string) => Promise<void>; | ||
/** | ||
* | ||
* @param tables | ||
*/ | ||
export declare const dropTables: (tables: string[]) => Promise<void>; | ||
/** | ||
* Drop unique constraint | ||
@@ -82,0 +93,0 @@ * @param {string} tbl - table name |
@@ -8,3 +8,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.slugify = exports.drop_unique_constraint = exports.add_unique_constraint = exports.drop_reset_schema = exports.getVersion = exports.count = exports.selectMaybeOne = exports.selectOne = exports.insert = exports.deleteWhere = exports.update = exports.mkVal = exports.reprAsJson = exports.select = exports.close = exports.changeConnection = exports.query = exports.sql_log = exports.get_sql_logging = exports.set_sql_logging = exports.get_db_filepath = exports.init = void 0; | ||
exports.slugify = exports.drop_unique_constraint = exports.add_unique_constraint = exports.drop_reset_schema = exports.getVersion = exports.count = exports.selectMaybeOne = exports.selectOne = exports.insert = exports.deleteWhere = exports.update = exports.dropTables = exports.dropTable = exports.listScTables = exports.listUserDefinedTables = exports.listTables = exports.select = exports.close = exports.changeConnection = exports.query = exports.sql_log = exports.get_sql_logging = exports.set_sql_logging = exports.get_db_filepath = exports.init = void 0; | ||
const sqlite3_1 = require("sqlite3"); | ||
@@ -14,2 +14,3 @@ (0, sqlite3_1.verbose)(); | ||
const internal_1 = require("@saltcorn/db-common/internal"); | ||
const sqlite_commons_1 = require("@saltcorn/db-common/sqlite-commons"); | ||
let sqliteDatabase = null; | ||
@@ -139,20 +140,46 @@ let connectObj = null; | ||
exports.select = select; | ||
// TODO Utility function - needs ti be moved out this module | ||
/** | ||
* @param {any} v | ||
* @returns {boolean} | ||
* @function | ||
* | ||
* @returns | ||
*/ | ||
const reprAsJson = (v) => typeof v === "object" && v !== null && !(v instanceof Date); | ||
exports.reprAsJson = reprAsJson; | ||
const listTables = async () => { | ||
return await (0, sqlite_commons_1.doListTables)(query); | ||
}; | ||
exports.listTables = listTables; | ||
/** | ||
* @param {object[]} opts | ||
* @param {*} opts.k | ||
* @param {any} opts.v | ||
* @returns {string|any} | ||
* @function | ||
* | ||
* @returns | ||
*/ | ||
const mkVal = ([k, v]) => (0, exports.reprAsJson)(v) ? JSON.stringify(v) : v; | ||
exports.mkVal = mkVal; | ||
const listUserDefinedTables = async () => { | ||
return await (0, sqlite_commons_1.doListUserDefinedTables)(query); | ||
}; | ||
exports.listUserDefinedTables = listUserDefinedTables; | ||
/** | ||
* | ||
* @returns | ||
*/ | ||
const listScTables = async () => { | ||
return await (0, sqlite_commons_1.doListScTables)(query); | ||
}; | ||
exports.listScTables = listScTables; | ||
/** | ||
* | ||
* @param name | ||
*/ | ||
const dropTable = async (name) => { | ||
await query(`DROP TABLE ${name}`); | ||
}; | ||
exports.dropTable = dropTable; | ||
/** | ||
* | ||
* @param tables | ||
*/ | ||
const dropTables = async (tables) => { | ||
for (const table of tables) { | ||
await (0, exports.dropTable)(table); | ||
} | ||
}; | ||
exports.dropTables = dropTables; | ||
// TODO Utility function - needs ti be moved out this module | ||
/** | ||
* Drop unique constraint | ||
@@ -168,3 +195,3 @@ * @param {string} tbl - table name | ||
const assigns = kvs.map(([k, v], ix) => `"${(0, internal_1.sqlsanitize)(k)}"=?`).join(); | ||
let valList = kvs.map(exports.mkVal); | ||
let valList = kvs.map(sqlite_commons_1.mkVal); | ||
valList.push(id); | ||
@@ -183,5 +210,3 @@ const q = `update "${(0, internal_1.sqlsanitize)(tbl)}" set ${assigns} where id=?`; | ||
const deleteWhere = async (tbl, whereObj) => { | ||
const { where, values } = (0, internal_1.mkWhere)(whereObj, true); | ||
const sql = `delete FROM "${(0, internal_1.sqlsanitize)(tbl)}" ${where}`; | ||
const tq = await query(sql, values); | ||
await (0, sqlite_commons_1.doDeleteWhere)(tbl, whereObj, query); | ||
}; | ||
@@ -198,16 +223,3 @@ exports.deleteWhere = deleteWhere; | ||
const insert = async (tbl, obj, opts = {}) => { | ||
const kvs = Object.entries(obj); | ||
const fnameList = kvs.map(([k, v]) => `"${(0, internal_1.sqlsanitize)(k)}"`).join(); | ||
const valPosList = kvs | ||
.map(([k, v], ix) => v && v.next_version_by_id | ||
? `coalesce((select max(_version) from "${(0, internal_1.sqlsanitize)(tbl)}" where id=${+v.next_version_by_id}), 0)+1` | ||
: (0, exports.reprAsJson)(v) | ||
? "json(?)" | ||
: "?") | ||
.join(); | ||
const valList = kvs | ||
.filter(([k, v]) => !(v && v.next_version_by_id)) | ||
.map(exports.mkVal); | ||
const ignoreExisting = opts.ignoreExisting ? "or ignore" : ""; | ||
const sql = `insert ${ignoreExisting} into "${(0, internal_1.sqlsanitize)(tbl)}"(${fnameList}) values(${valPosList})`; | ||
const { sql, valList } = (0, sqlite_commons_1.buildInsertSql)(tbl, obj, opts); | ||
await query(sql, valList); | ||
@@ -262,6 +274,3 @@ if (opts.noid) | ||
const count = async (tbl, whereObj) => { | ||
const { where, values } = (0, internal_1.mkWhere)(whereObj, true); | ||
const sql = `SELECT COUNT(*) FROM "${(0, internal_1.sqlsanitize)(tbl)}" ${where}`; | ||
const tq = await query(sql, values); | ||
return parseInt(tq.rows[0]["COUNT(*)"]); | ||
return await (0, sqlite_commons_1.doCount)(tbl, whereObj, query); | ||
}; | ||
@@ -268,0 +277,0 @@ exports.count = count; |
{ | ||
"name": "@saltcorn/sqlite", | ||
"version": "0.7.2-beta.0", | ||
"version": "0.7.2-beta.1", | ||
"description": "Sqlite structures for Saltcorn, open-source no-code platform", | ||
@@ -28,3 +28,3 @@ "homepage": "https://saltcorn.com", | ||
"dependencies": { | ||
"@saltcorn/db-common": "0.7.2-beta.0" | ||
"@saltcorn/db-common": "0.7.2-beta.1" | ||
}, | ||
@@ -31,0 +31,0 @@ "optionalDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
63679
528
- Removed@saltcorn/db-common@0.7.2-beta.0(transitive)