AK-21/Graphite-Industrial-Intelligence
0
1import { entityKind } from "../entity.js";2import { NoopLogger } from "../logger.js";3import { fillPlaceholders } from "../sql/sql.js";4import { SQLiteTransaction } from "../sqlite-core/index.js";5import {6 SQLiteSession7} from "../sqlite-core/session.js";8import { SQLitePreparedQuery as PreparedQueryBase } from "../sqlite-core/session.js";9import { mapResultRow } from "../utils.js";10class SQLiteDOSession extends SQLiteSession {11 constructor(client, dialect, schema, options = {}) {12 super(dialect);13 this.client = client;14 this.schema = schema;15 this.logger = options.logger ?? new NoopLogger();16 }17 static [entityKind] = "SQLiteDOSession";18 logger;19 prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {20 return new SQLiteDOPreparedQuery(21 this.client,22 query,23 this.logger,24 fields,25 executeMethod,26 isResponseInArrayMode,27 customResultMapper28 );29 }30 transaction(transaction, _config) {31 const tx = new SQLiteDOTransaction("sync", this.dialect, this, this.schema);32 return this.client.transactionSync(() => transaction(tx));33 }34}35class SQLiteDOTransaction extends SQLiteTransaction {36 static [entityKind] = "SQLiteDOTransaction";37 transaction(transaction) {38 const tx = new SQLiteDOTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);39 return this.session.transaction(() => transaction(tx));40 }41}42class SQLiteDOPreparedQuery extends PreparedQueryBase {43 constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {44 super("sync", executeMethod, query, void 0, void 0, void 0);45 this.client = client;46 this.logger = logger;47 this.fields = fields;48 this._isResponseInArrayMode = _isResponseInArrayMode;49 this.customResultMapper = customResultMapper;50 }51 static [entityKind] = "SQLiteDOPreparedQuery";52 run(placeholderValues) {53 const params = fillPlaceholders(this.query.params, placeholderValues ?? {});54 this.logger.logQuery(this.query.sql, params);55 params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);56 }57 all(placeholderValues) {58 const { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;59 if (!fields && !customResultMapper) {60 const params = fillPlaceholders(query.params, placeholderValues ?? {});61 logger.logQuery(query.sql, params);62 return params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();63 }64 const rows = this.values(placeholderValues);65 if (customResultMapper) {66 return customResultMapper(rows);67 }68 return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));69 }70 get(placeholderValues) {71 const params = fillPlaceholders(this.query.params, placeholderValues ?? {});72 this.logger.logQuery(this.query.sql, params);73 const { fields, client, joinsNotNullableMap, customResultMapper, query } = this;74 if (!fields && !customResultMapper) {75 return (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;76 }77 const rows = this.values(placeholderValues);78 const row = rows[0];79 if (!row) {80 return void 0;81 }82 if (customResultMapper) {83 return customResultMapper(rows);84 }85 return mapResultRow(fields, row, joinsNotNullableMap);86 }87 values(placeholderValues) {88 const params = fillPlaceholders(this.query.params, placeholderValues ?? {});89 this.logger.logQuery(this.query.sql, params);90 const res = params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);91 return res.raw().toArray();92 }93 /** @internal */94 isResponseInArrayMode() {95 return this._isResponseInArrayMode;96 }97}98export {99 SQLiteDOPreparedQuery,100 SQLiteDOSession,101 SQLiteDOTransaction102};103//# sourceMappingURL=session.js.map