import { ensureInit } from "./functions/init"; import DbDelete from "./lib/mariadb/db-delete"; import DbInsert from "./lib/mariadb/db-insert"; import DbSelect from "./lib/mariadb/db-select"; import DbSQL from "./lib/mariadb/db-sql"; import DbUpdate from "./lib/mariadb/db-update"; import QueueAck from "./lib/queue/queue-ack"; import QueueCancel from "./lib/queue/queue-cancel"; import QueueClaim from "./lib/queue/queue-claim"; import QueueExtend from "./lib/queue/queue-extend"; import QueueFail from "./lib/queue/queue-fail"; import QueuePush from "./lib/queue/queue-push"; import grabDbSchema from "./utils/grab-db-schema"; import grabJoinFieldsFromQueryObject from "./utils/grab-join-fields-from-query-object"; /** * Initialize lazily on first call, so importing the library never exits or * throws. Setup errors (missing config / env) reject the call instead. */ function withInit(fn) { return (async (...args) => { ensureInit(); return fn(...args); }); } const BunMariaDB = { select: withInit(DbSelect), insert: withInit(DbInsert), update: withInit(DbUpdate), delete: withInit(DbDelete), sql: withInit(DbSQL), queue: { push: withInit(QueuePush), claim: withInit(QueueClaim), ack: withInit(QueueAck), fail: withInit(QueueFail), extend: withInit(QueueExtend), cancel: withInit(QueueCancel), }, utils: { grab_db_schema: withInit(grabDbSchema), grab_join_fields_from_query_object: grabJoinFieldsFromQueryObject, }, }; export default BunMariaDB; export { UsersOmitedFields, MariaDBCollations, MariaDBCharsets, TextFieldTypesArray, BUN_MARIADB_DATATYPES, MariaDBIndexTypes, ServerQueryOperators, ServerQueryEqualities, SQlComparisons, DataCrudRequestMethods, DataCrudRequestMethodsLowerCase, DsqlCrudActions, QueryFields, DockerComposeServices, IndexTypes, DefaultFields, QueueStatuses, QueueFields, QueueProtectedFields, RequiredENVs, } from "./types";