akasharender
Version:
Rendering support for generating static HTML websites or EPUB eBooks
60 lines • 6.64 kB
JavaScript
/**
*
* Copyright 2024 David Herron
*
* This file is part of AkashaCMS (http://akashacms.com/).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// import sqleanLibs from 'sqlite3-sqlean';
import * as sqlite_regex from "sqlite-regex";
import { SqlDatabase } from 'sqlite3orm';
import { SQ3DataStore } from 'sq3-kv-data-store';
/**
* Subclass the SqlDatabase so we can expose
* the underlying SQLITE3 Database object and
* some useful methods on that class.
*/
export class SqlDatabaseChild extends SqlDatabase {
get _db() { return this.db; }
loadExtension(filename, callback) {
return this.db.loadExtension(filename, callback);
}
}
const dburl = typeof process.env.AK_DB_URL === 'string'
? process.env.AK_DB_URL
: ':memory:';
// Turns on full stack traces
// SqlDatabase.verbose();
export const sqdb = new SqlDatabaseChild();
await sqdb.open(dburl);
// await sqdb.open('test.db');
// sqdb.loadExtension(sqleanLibs.reLibPath);
sqdb.loadExtension(sqlite_regex.getLoadablePath());
// This traces SQL statements
//
// sqdb.on('trace', sql => {
// console.log(sql);
// });
sqdb.on('error', err => {
console.error(err);
});
sqdb._db.on('error', err => {
console.error(err);
});
////////////////////////
export function newSQ3DataStore(name) {
// console.log(`newSQ3DataStore ${name}`);
return new SQ3DataStore(sqdb._db, name);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9zcWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQVVILDJDQUEyQztBQUMzQyxPQUFPLEtBQUssWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFDN0MsSUFBSSxHQUFHLEtBQWUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV2QyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxRQUF1QztRQUNuRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLFFBQVE7SUFDL0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUztJQUN2QixDQUFDLENBQUMsVUFBVSxDQUFDO0FBRXJCLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUFDekIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUMzQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsOEJBQThCO0FBQzlCLDRDQUE0QztBQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBRW5ELDZCQUE2QjtBQUM3QixFQUFFO0FBQ0YsNEJBQTRCO0FBQzVCLHdCQUF3QjtBQUN4QixNQUFNO0FBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUU7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtJQUN2QixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBRUgsd0JBQXdCO0FBRXhCLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBWTtJQUd4QywwQ0FBMEM7SUFDMUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBDb3B5cmlnaHQgMjAyNCBEYXZpZCBIZXJyb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBBa2FzaGFDTVMgKGh0dHA6Ly9ha2FzaGFjbXMuY29tLykuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogU1FMIERhdGFiYXNlIHN1cHBvcnQgdXNpbmcgU1FMSVRFMy5cbiAqIFxuICogV2hhdCdzIHN1cHBvcnRlZCBpcyBTUUxJVEUzT1JNIC0gYSBsaWdodHdlaWdodFxuICogT1JNIHRoYXQgcnVucyBvbiB0b3Agb2YgU1FMSVRFMy5cbiAqL1xuXG5pbXBvcnQgeyBEYXRhYmFzZSB9IGZyb20gJ3NxbGl0ZTMnO1xuLy8gaW1wb3J0IHNxbGVhbkxpYnMgZnJvbSAnc3FsaXRlMy1zcWxlYW4nO1xuaW1wb3J0ICogYXMgc3FsaXRlX3JlZ2V4IGZyb20gXCJzcWxpdGUtcmVnZXhcIjtcblxuaW1wb3J0IHsgU3FsRGF0YWJhc2UgfSBmcm9tICdzcWxpdGUzb3JtJztcbmltcG9ydCB7IFNRM0RhdGFTdG9yZSB9IGZyb20gJ3NxMy1rdi1kYXRhLXN0b3JlJztcblxuLyoqXG4gKiBTdWJjbGFzcyB0aGUgU3FsRGF0YWJhc2Ugc28gd2UgY2FuIGV4cG9zZVxuICogdGhlIHVuZGVybHlpbmcgU1FMSVRFMyBEYXRhYmFzZSBvYmplY3QgYW5kXG4gKiBzb21lIHVzZWZ1bCBtZXRob2RzIG9uIHRoYXQgY2xhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTcWxEYXRhYmFzZUNoaWxkIGV4dGVuZHMgU3FsRGF0YWJhc2Uge1xuICAgIGdldCBfZGIoKTogRGF0YWJhc2UgeyByZXR1cm4gdGhpcy5kYjsgfVxuXG4gICAgbG9hZEV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiBEYXRhYmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRiLmxvYWRFeHRlbnNpb24oZmlsZW5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG59XG5cbmNvbnN0IGRidXJsID0gdHlwZW9mIHByb2Nlc3MuZW52LkFLX0RCX1VSTCA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBwcm9jZXNzLmVudi5BS19EQl9VUkxcbiAgICAgICAgOiAnOm1lbW9yeTonO1xuXG4vLyBUdXJucyBvbiBmdWxsIHN0YWNrIHRyYWNlc1xuLy8gU3FsRGF0YWJhc2UudmVyYm9zZSgpO1xuZXhwb3J0IGNvbnN0IHNxZGIgPSBuZXcgU3FsRGF0YWJhc2VDaGlsZCgpO1xuYXdhaXQgc3FkYi5vcGVuKGRidXJsKTtcbi8vIGF3YWl0IHNxZGIub3BlbigndGVzdC5kYicpO1xuLy8gc3FkYi5sb2FkRXh0ZW5zaW9uKHNxbGVhbkxpYnMucmVMaWJQYXRoKTtcbnNxZGIubG9hZEV4dGVuc2lvbihzcWxpdGVfcmVnZXguZ2V0TG9hZGFibGVQYXRoKCkpO1xuXG4vLyBUaGlzIHRyYWNlcyBTUUwgc3RhdGVtZW50c1xuLy9cbi8vIHNxZGIub24oJ3RyYWNlJywgc3FsID0+IHtcbi8vICAgICBjb25zb2xlLmxvZyhzcWwpO1xuLy8gfSk7XG5zcWRiLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xufSk7XG5cbnNxZGIuX2RiLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xufSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gbmV3U1EzRGF0YVN0b3JlKG5hbWU6IHN0cmluZylcbiAgICA6IFNRM0RhdGFTdG9yZVxue1xuICAgIC8vIGNvbnNvbGUubG9nKGBuZXdTUTNEYXRhU3RvcmUgJHtuYW1lfWApO1xuICAgIHJldHVybiBuZXcgU1EzRGF0YVN0b3JlKHNxZGIuX2RiLCBuYW1lKTtcbn1cbiJdfQ==