UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

113 lines (111 loc) 14.1 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/engine/engine-abc.ts var engine_abc_exports = {}; __export(engine_abc_exports, { default: () => EngineAbc }); module.exports = __toCommonJS(engine_abc_exports); var import_errors = require("../errors/index.cjs"); var import_utils = require("../utils/index.cjs"); function transArgsToConnInfo(args) { const conn = Object.assign( { token: null, endpoint: null, database: null, namespace: null }, typeof args === "string" ? { state: args } : args ); if (conn.endpoint) { conn.endpoint = new URL(conn.endpoint); } return conn; } __name(transArgsToConnInfo, "transArgsToConnInfo"); var _EngineAbc = class _EngineAbc { constructor(config) { this._conn = { token: null, state: "closed", endpoint: null, database: null, namespace: null }; this.ee = config.emitter; this.fmt = config.formatter; } transition(args, fallback) { return new import_utils.StatefulPromise((resolve, reject) => { const fromState = this.state; const toState = (this._conn = transArgsToConnInfo(args)).state; const hooks = this.ee.emit(toState, { state: toState }); if (!hooks || hooks.length <= 0) { return resolve(); } import_utils.StatefulPromise.allRejected(hooks).then((errors) => { if (errors.length > 0) { const args2 = fallback(); const fbState = (this._conn = transArgsToConnInfo(args2)).state; reject(new import_errors.StateTransitionError(fromState, toState, fbState, errors)); } else { resolve(); } }); }); } get state() { return this._conn.state; } get endpoint() { return this._conn.endpoint && new URL(this._conn.endpoint); } get namespace() { return this._conn.namespace; } set namespace(ns) { this._conn.namespace = ns; } get database() { return this._conn.database; } set database(db) { this._conn.database = db; } get token() { return this._conn.token; } set token(token) { this._conn.token = token; } getConnectionInfo() { const conn = Object.assign({}, this._conn); if (conn.endpoint) { conn.endpoint = new URL(conn.endpoint); } return conn; } }; __name(_EngineAbc, "EngineAbc"); var EngineAbc = _EngineAbc; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2VuZ2luZS9lbmdpbmUtYWJjLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge1xuICB0eXBlIEh0dHBFbmdpbmVFcnJvcixcbiAgU3RhdGVUcmFuc2l0aW9uRXJyb3IsXG4gIHR5cGUgV2ViU29ja2V0RW5naW5lRXJyb3IsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEZvcm1hdHRlciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZm9ybWF0dGVyXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJpZGlyZWN0aW9uYWxScGNSZXNwb25zZSxcbiAgTGl2ZVJlc3VsdCxcbiAgUnBjUmVxdWVzdCxcbiAgUnBjUmVzcG9uc2UsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdHlwZXNcIjtcbmltcG9ydCB7IFN0YXRlZnVsUHJvbWlzZSwgdHlwZSBUYXNrRW1pdHRlciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgU2V0T3B0aW9uYWwsIFNpbXBsaWZ5IH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuXG50eXBlIE9wdGlvbmFsT25OdWxsPFQ+ID0gU2V0T3B0aW9uYWw8XG4gIFQsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBUXTogbnVsbCBleHRlbmRzIFRbUF0gPyBQIDogbmV2ZXI7XG4gIH1ba2V5b2YgVF1cbj47XG5cbnR5cGUgTm9uTnVsbEtleXNPZjxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF06IG51bGwgZXh0ZW5kcyBUW1BdID8gbmV2ZXIgOiBQO1xufVtrZXlvZiBUXTtcblxuZXhwb3J0IHR5cGUgQ29ubmVjdGlvblN0YXRlID1cbiAgfCBcImNvbm5lY3RpbmdcIlxuICB8IFwib3BlblwiXG4gIHwgXCJjbG9zaW5nXCJcbiAgfCBcImNsb3NlZFwiO1xuXG5leHBvcnQgbmFtZXNwYWNlIENvbm5lY3Rpb25JbmZvIHtcbiAgdHlwZSBJbmZvPFxuICAgIFRTdGF0ZSBleHRlbmRzIENvbm5lY3Rpb25TdGF0ZSxcbiAgICBURW5kcG9pbnQsXG4gICAgVE5hbWVzcGFjZSxcbiAgICBURGF0YWJhc2UsXG4gICAgVFRva2VuLFxuICA+ID0ge1xuICAgIHN0YXRlOiBUU3RhdGU7XG4gICAgZW5kcG9pbnQ6IFRFbmRwb2ludDtcbiAgICBuYW1lc3BhY2U6IFROYW1lc3BhY2U7XG4gICAgZGF0YWJhc2U6IFREYXRhYmFzZTtcbiAgICB0b2tlbjogVFRva2VuO1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIENvbm5lY3RpbmcgPSBJbmZvPFwiY29ubmVjdGluZ1wiLCBVUkwsIG51bGwsIG51bGwsIG51bGw+O1xuXG4gIGV4cG9ydCB0eXBlIE9wZW4gPSBJbmZvPFxuICAgIFwib3BlblwiLFxuICAgIFVSTCxcbiAgICBzdHJpbmcgfCBudWxsLFxuICAgIHN0cmluZyB8IG51bGwsXG4gICAgc3RyaW5nIHwgbnVsbFxuICA+O1xuXG4gIGV4cG9ydCB0eXBlIENsb3NpbmcgPSBJbmZvPFxuICAgIFwiY2xvc2luZ1wiLFxuICAgIFVSTCxcbiAgICBzdHJpbmcgfCBudWxsLFxuICAgIHN0cmluZyB8IG51bGwsXG4gICAgc3RyaW5nIHwgbnVsbFxuICA+O1xuXG4gIGV4cG9ydCB0eXBlIENsb3NlZCA9IEluZm88XCJjbG9zZWRcIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbD47XG59XG5cbmV4cG9ydCB0eXBlIENvbm5lY3Rpb25JbmZvID1cbiAgfCBDb25uZWN0aW9uSW5mby5Db25uZWN0aW5nXG4gIHwgQ29ubmVjdGlvbkluZm8uT3BlblxuICB8IENvbm5lY3Rpb25JbmZvLkNsb3NpbmdcbiAgfCBDb25uZWN0aW9uSW5mby5DbG9zZWQ7XG5cbi8qKlxuICoge0BsaW5rIFRyYW5zaXRpb25BcmdzfVxuICovXG50eXBlIF9UcmFuc2l0aW9uQXJnczxUU3RhdGUsIFRDb25uSW5mbz4gPVxuICB8IE9wdGlvbmFsT25OdWxsPFRDb25uSW5mbz5cbiAgLy8gc3RhdGUgXHUzMDZFXHUzMDdGXHU1RkM1XHU5ODA4XHUzMDZBXHUzMDg5XHUzMDAxXHUzMDVEXHUzMDZFXHU1MDI0XHUzMDYwXHUzMDUxXHUzMDkyXHU1M0Q3XHUzMDUxXHU1MTY1XHUzMDhDXHUzMDg5XHUzMDhDXHUzMDhCXHUzMDg4XHUzMDQ2XHUzMDZCXHUzMDU5XHUzMDhCXHUzMDAyXG4gIHwgKE5vbk51bGxLZXlzT2Y8VENvbm5JbmZvPiBleHRlbmRzIFwic3RhdGVcIiA/IFRTdGF0ZSA6IG5ldmVyKTtcblxuZXhwb3J0IHR5cGUgVHJhbnNpdGlvbkFyZ3MgPSB7XG4gIFtUU3RhdGUgaW4gQ29ubmVjdGlvblN0YXRlXTogX1RyYW5zaXRpb25BcmdzPFxuICAgIFRTdGF0ZSxcbiAgICBFeHRyYWN0PENvbm5lY3Rpb25JbmZvLCB7IHN0YXRlOiBUU3RhdGUgfT5cbiAgPjtcbn1bQ29ubmVjdGlvblN0YXRlXTtcblxuZnVuY3Rpb24gdHJhbnNBcmdzVG9Db25uSW5mbyhhcmdzOiBUcmFuc2l0aW9uQXJncyk6IENvbm5lY3Rpb25JbmZvIHtcbiAgY29uc3QgY29ubjogQ29ubmVjdGlvbkluZm8gPSBPYmplY3QuYXNzaWduKFxuICAgIHtcbiAgICAgIHRva2VuOiBudWxsLFxuICAgICAgZW5kcG9pbnQ6IG51bGwsXG4gICAgICBkYXRhYmFzZTogbnVsbCxcbiAgICAgIG5hbWVzcGFjZTogbnVsbCxcbiAgICB9LFxuICAgIHR5cGVvZiBhcmdzID09PSBcInN0cmluZ1wiXG4gICAgICA/IHsgc3RhdGU6IGFyZ3MgfVxuICAgICAgOiBhcmdzLFxuICApO1xuXG4gIGlmIChjb25uLmVuZHBvaW50KSB7XG4gICAgY29ubi5lbmRwb2ludCA9IG5ldyBVUkwoY29ubi5lbmRwb2ludCk7IC8vIFx1MzBCM1x1MzBENFx1MzBGQ1xuICB9XG5cbiAgcmV0dXJuIGNvbm47XG59XG5cbmV4cG9ydCB0eXBlIEVuZ2luZUV2ZW50TWFwID1cbiAgJiB7XG4gICAgLy8gXHU3MkI2XHU2MTRCXHU5MDc3XHU3OUZCXHUzMDZCXHU5NUEyXHUzMDU5XHUzMDhCXHUzMEE0XHUzMEQ5XHUzMEYzXHUzMEM4XHUzMDAyXG4gICAgW1RTdGF0ZSBpbiBDb25uZWN0aW9uU3RhdGVdOiBbXG4gICAgICByZXN1bHQ6XG4gICAgICAgIC8vIFx1NzJCNlx1NjE0Qlx1OTA3N1x1NzlGQlx1MzA2Qlx1NjIxMFx1NTI5Rlx1MzA1N1x1MzA1Rlx1NTgzNFx1NTQwOFx1MzAwMlxuICAgICAgICB8IHsgc3RhdGU6IFRTdGF0ZTsgZXJyb3I/OiBuZXZlciB9XG4gICAgICAgIC8vIFx1NzJCNlx1NjE0Qlx1OTA3N1x1NzlGQlx1MzA2Qlx1NTkzMVx1NjU1N1x1MzA1N1x1MzA1Rlx1NTgzNFx1NTQwOFx1MzAwMlxuICAgICAgICB8IHsgc3RhdGU6IFRTdGF0ZTsgZXJyb3I6IHVua25vd24gfSxcbiAgICBdO1xuICB9XG4gICYge1xuICAgIC8vIFx1NTNDQ1x1NjVCOVx1NTQxMVx1OTAxQVx1NEZFMVx1MzA2Qlx1MzA0QVx1MzA1MVx1MzA4QiBSUEMgXHUzMEVDXHUzMEI5XHUzMEREXHUzMEYzXHUzMEI5XHUzMDZFXHUzMEE0XHUzMEQ5XHUzMEYzXHUzMEM4XHUzMDAyXG4gICAgW186IGBycGNfJHtCaWRpcmVjdGlvbmFsUnBjUmVzcG9uc2VbXCJpZFwiXX1gXTogW1xuICAgICAgcmVzcG9uc2U6IEJpZGlyZWN0aW9uYWxScGNSZXNwb25zZSxcbiAgICBdO1xuICAgIC8vIFx1MzBFOVx1MzBBNFx1MzBENlx1MzBBRlx1MzBBOFx1MzBFQVx1MzBGQ1x1MzA2RVx1N0Q1MFx1Njc5Q1x1MzA2RVx1MzBBNFx1MzBEOVx1MzBGM1x1MzBDOFx1MzAwMlxuICAgIFtfOiBgbGl2ZV8ke3N0cmluZ31gXTogW3Jlc3BvbnNlOiBTaW1wbGlmeTxPbWl0PExpdmVSZXN1bHQsIFwiaWRcIj4+XTtcbiAgICAvLyBcdTMwQThcdTMwRjNcdTMwQjhcdTMwRjNcdTUxODVcdTMwQThcdTMwRTlcdTMwRkNcdTMwOTJcdTkwMUFcdTc3RTVcdTMwNTlcdTMwOEJcdTMwQTRcdTMwRDlcdTMwRjNcdTMwQzhcdTMwMDJcbiAgICBlcnJvcjogW2Vycm9yOiBIdHRwRW5naW5lRXJyb3IgfCBXZWJTb2NrZXRFbmdpbmVFcnJvcl07XG4gIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5naW5lQWJjQ29uZmlnIHtcbiAgcmVhZG9ubHkgZW1pdHRlcjogVGFza0VtaXR0ZXI8RW5naW5lRXZlbnRNYXA+O1xuICByZWFkb25seSBmb3JtYXR0ZXI6IEZvcm1hdHRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0QXJncyB7XG4gIHNpZ25hbDogQWJvcnRTaWduYWw7XG4gIGVuZHBvaW50OiBVUkw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvc2VBcmdzIHtcbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBScGNBcmdzIHtcbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcbiAgcmVxdWVzdDogUnBjUmVxdWVzdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWJzdHJhY3QgY2xhc3MgRW5naW5lQWJjIHtcbiAgcHJvdGVjdGVkIGVlOiBUYXNrRW1pdHRlcjxFbmdpbmVFdmVudE1hcD47XG4gIHByb3RlY3RlZCBmbXQ6IEZvcm1hdHRlcjtcblxuICBwcml2YXRlIF9jb25uOiBDb25uZWN0aW9uSW5mbyA9IHtcbiAgICB0b2tlbjogbnVsbCxcbiAgICBzdGF0ZTogXCJjbG9zZWRcIixcbiAgICBlbmRwb2ludDogbnVsbCxcbiAgICBkYXRhYmFzZTogbnVsbCxcbiAgICBuYW1lc3BhY2U6IG51bGwsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbmdpbmVBYmNDb25maWcpIHtcbiAgICB0aGlzLmVlID0gY29uZmlnLmVtaXR0ZXI7XG4gICAgdGhpcy5mbXQgPSBjb25maWcuZm9ybWF0dGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYW5zaXRpb24oXG4gICAgYXJnczogVHJhbnNpdGlvbkFyZ3MsXG4gICAgZmFsbGJhY2s6ICgpID0+IFRyYW5zaXRpb25BcmdzLFxuICApOiBTdGF0ZWZ1bFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgU3RhdGVmdWxQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGZyb21TdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICBjb25zdCB0b1N0YXRlID0gKHRoaXMuX2Nvbm4gPSB0cmFuc0FyZ3NUb0Nvbm5JbmZvKGFyZ3MpKS5zdGF0ZTtcbiAgICAgIGNvbnN0IGhvb2tzID0gdGhpcy5lZS5lbWl0KHRvU3RhdGUsIHtcbiAgICAgICAgc3RhdGU6IHRvU3RhdGUgYXMgbmV2ZXIsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFob29rcyB8fCBob29rcy5sZW5ndGggPD0gMCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgfVxuXG4gICAgICBTdGF0ZWZ1bFByb21pc2UuYWxsUmVqZWN0ZWQoaG9va3MpLnRoZW4oZXJyb3JzID0+IHtcbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYXJncyA9IGZhbGxiYWNrKCk7XG4gICAgICAgICAgY29uc3QgZmJTdGF0ZSA9ICh0aGlzLl9jb25uID0gdHJhbnNBcmdzVG9Db25uSW5mbyhhcmdzKSkuc3RhdGU7XG4gICAgICAgICAgcmVqZWN0KG5ldyBTdGF0ZVRyYW5zaXRpb25FcnJvcihmcm9tU3RhdGUsIHRvU3RhdGUsIGZiU3RhdGUsIGVycm9ycykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgc3RhdGUoKTogQ29ubmVjdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubi5zdGF0ZTtcbiAgfVxuXG4gIGdldCBlbmRwb2ludCgpOiBVUkwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubi5lbmRwb2ludCAmJiBuZXcgVVJMKHRoaXMuX2Nvbm4uZW5kcG9pbnQpOyAvLyBcdTMwQjNcdTMwRDRcdTMwRkNcbiAgfVxuXG4gIGdldCBuYW1lc3BhY2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4ubmFtZXNwYWNlO1xuICB9XG5cbiAgc2V0IG5hbWVzcGFjZShuczogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2Nvbm4ubmFtZXNwYWNlID0gbnM7XG4gIH1cblxuICBnZXQgZGF0YWJhc2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4uZGF0YWJhc2U7XG4gIH1cblxuICBzZXQgZGF0YWJhc2UoZGI6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9jb25uLmRhdGFiYXNlID0gZGI7XG4gIH1cblxuICBnZXQgdG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4udG9rZW47XG4gIH1cblxuICBzZXQgdG9rZW4odG9rZW46IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9jb25uLnRva2VuID0gdG9rZW47XG4gIH1cblxuICBnZXRDb25uZWN0aW9uSW5mbygpOiBDb25uZWN0aW9uSW5mbyB7XG4gICAgY29uc3QgY29ubiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2Nvbm4pOyAvLyBcdTMwQjNcdTMwRDRcdTMwRkNcblxuICAgIGlmIChjb25uLmVuZHBvaW50KSB7XG4gICAgICBjb25uLmVuZHBvaW50ID0gbmV3IFVSTChjb25uLmVuZHBvaW50KTsgLy8gXHUzMEIzXHUzMEQ0XHUzMEZDXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbm47XG4gIH1cblxuICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgY29ubmVjdChhcmdzOiBDb25uZWN0QXJncyk6IFByb21pc2VMaWtlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGNsb3NlKGFyZ3M6IENsb3NlQXJncyk6IFByb21pc2VMaWtlPHZvaWQ+O1xuXG4gIGFic3RyYWN0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