the-forest/client/node_modules/.cache/babel-loader/af3db1292392d2301b25271fd668e909b9bbec3e9410e7e6feb185bf96488e19.json
2024-09-17 20:35:18 -04:00

1 line
20 KiB
JSON

{"ast":null,"code":"import * as hrana from \"@libsql/hrana-client\";\nimport { LibsqlError } from \"@libsql/core/api\";\nimport { expandConfig } from \"@libsql/core/config\";\nimport { HranaTransaction, executeHranaBatch, stmtToHrana, resultSetFromHrana, mapHranaError } from \"./hrana.js\";\nimport { SqlCache } from \"./sql_cache.js\";\nimport { encodeBaseUrl } from \"@libsql/core/uri\";\nimport { supportedUrlLink } from \"@libsql/core/util\";\nimport promiseLimit from \"promise-limit\";\nexport * from \"@libsql/core/api\";\nexport function createClient(config) {\n return _createClient(expandConfig(config, true));\n}\n/** @private */\nexport function _createClient(config) {\n if (config.scheme !== \"https\" && config.scheme !== \"http\") {\n throw new LibsqlError('The HTTP client supports only \"libsql:\", \"https:\" and \"http:\" URLs, ' + `got ${JSON.stringify(config.scheme + \":\")}. For more information, please read ${supportedUrlLink}`, \"URL_SCHEME_NOT_SUPPORTED\");\n }\n if (config.encryptionKey !== undefined) {\n throw new LibsqlError(\"Encryption key is not supported by the remote client.\", \"ENCRYPTION_KEY_NOT_SUPPORTED\");\n }\n if (config.scheme === \"http\" && config.tls) {\n throw new LibsqlError(`A \"http:\" URL cannot opt into TLS by using ?tls=1`, \"URL_INVALID\");\n } else if (config.scheme === \"https\" && !config.tls) {\n throw new LibsqlError(`A \"https:\" URL cannot opt out of TLS by using ?tls=0`, \"URL_INVALID\");\n }\n const url = encodeBaseUrl(config.scheme, config.authority, config.path);\n return new HttpClient(url, config.authToken, config.intMode, config.fetch, config.concurrency);\n}\nconst sqlCacheCapacity = 30;\nexport class HttpClient {\n #client;\n protocol;\n #authToken;\n #promiseLimitFunction;\n /** @private */\n constructor(url, authToken, intMode, customFetch, concurrency) {\n this.#client = hrana.openHttp(url, authToken, customFetch);\n this.#client.intMode = intMode;\n this.protocol = \"http\";\n this.#authToken = authToken;\n this.#promiseLimitFunction = promiseLimit(concurrency);\n }\n async limit(fn) {\n return this.#promiseLimitFunction(fn);\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || []\n };\n } else {\n stmt = stmtOrSql;\n }\n return this.limit(async () => {\n try {\n const hranaStmt = stmtToHrana(stmt);\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the statement and\n // close the stream in a single HTTP request.\n let rowsPromise;\n const stream = this.#client.openStream();\n try {\n rowsPromise = stream.query(hranaStmt);\n } finally {\n stream.closeGracefully();\n }\n const rowsResult = await rowsPromise;\n return resultSetFromHrana(rowsResult);\n } catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async batch(stmts, mode = \"deferred\") {\n return this.limit(async () => {\n try {\n const hranaStmts = stmts.map(stmtToHrana);\n const version = await this.#client.getVersion();\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the batch and\n // close the stream in a single HTTP request.\n let resultsPromise;\n const stream = this.#client.openStream();\n try {\n // It makes sense to use a SQL cache even for a single batch, because it may contain the same\n // statement repeated multiple times.\n const sqlCache = new SqlCache(stream, sqlCacheCapacity);\n sqlCache.apply(hranaStmts);\n // TODO: we do not use a cursor here, because it would cause three roundtrips:\n // 1. pipeline request to store SQL texts\n // 2. cursor request\n // 3. pipeline request to close the stream\n const batch = stream.batch(false);\n resultsPromise = executeHranaBatch(mode, version, batch, hranaStmts);\n } finally {\n stream.closeGracefully();\n }\n const results = await resultsPromise;\n return results;\n } catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async migrate(stmts) {\n return this.limit(async () => {\n try {\n const hranaStmts = stmts.map(stmtToHrana);\n const version = await this.#client.getVersion();\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the batch and\n // close the stream in a single HTTP request.\n let resultsPromise;\n const stream = this.#client.openStream();\n try {\n const batch = stream.batch(false);\n resultsPromise = executeHranaBatch(\"deferred\", version, batch, hranaStmts, true);\n } finally {\n stream.closeGracefully();\n }\n const results = await resultsPromise;\n return results;\n } catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async transaction(mode = \"write\") {\n return this.limit(async () => {\n try {\n const version = await this.#client.getVersion();\n return new HttpTransaction(this.#client.openStream(), mode, version);\n } catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async executeMultiple(sql) {\n return this.limit(async () => {\n try {\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the sequence and\n // close the stream in a single HTTP request.\n let promise;\n const stream = this.#client.openStream();\n try {\n promise = stream.sequence(sql);\n } finally {\n stream.closeGracefully();\n }\n await promise;\n } catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n sync() {\n throw new LibsqlError(\"sync not supported in http mode\", \"SYNC_NOT_SUPPORTED\");\n }\n close() {\n this.#client.close();\n }\n get closed() {\n return this.#client.closed;\n }\n}\nexport class HttpTransaction extends HranaTransaction {\n #stream;\n #sqlCache;\n /** @private */\n constructor(stream, mode, version) {\n super(mode, version);\n this.#stream = stream;\n this.#sqlCache = new SqlCache(stream, sqlCacheCapacity);\n }\n /** @private */\n _getStream() {\n return this.#stream;\n }\n /** @private */\n _getSqlCache() {\n return this.#sqlCache;\n }\n close() {\n this.#stream.close();\n }\n get closed() {\n return this.#stream.closed;\n }\n}","map":{"version":3,"names":["hrana","LibsqlError","expandConfig","HranaTransaction","executeHranaBatch","stmtToHrana","resultSetFromHrana","mapHranaError","SqlCache","encodeBaseUrl","supportedUrlLink","promiseLimit","createClient","config","_createClient","scheme","JSON","stringify","encryptionKey","undefined","tls","url","authority","path","HttpClient","authToken","intMode","fetch","concurrency","sqlCacheCapacity","client","protocol","promiseLimitFunction","constructor","customFetch","openHttp","limit","fn","execute","stmtOrSql","args","stmt","sql","hranaStmt","rowsPromise","stream","openStream","query","closeGracefully","rowsResult","e","batch","stmts","mode","hranaStmts","map","version","getVersion","resultsPromise","sqlCache","apply","results","migrate","transaction","HttpTransaction","executeMultiple","promise","sequence","sync","close","closed","_getStream","_getSqlCache"],"sources":["/Users/shoofle/Projects/the-forest/node_modules/@libsql/client/lib-esm/http.js"],"sourcesContent":["import * as hrana from \"@libsql/hrana-client\";\nimport { LibsqlError } from \"@libsql/core/api\";\nimport { expandConfig } from \"@libsql/core/config\";\nimport { HranaTransaction, executeHranaBatch, stmtToHrana, resultSetFromHrana, mapHranaError, } from \"./hrana.js\";\nimport { SqlCache } from \"./sql_cache.js\";\nimport { encodeBaseUrl } from \"@libsql/core/uri\";\nimport { supportedUrlLink } from \"@libsql/core/util\";\nimport promiseLimit from \"promise-limit\";\nexport * from \"@libsql/core/api\";\nexport function createClient(config) {\n return _createClient(expandConfig(config, true));\n}\n/** @private */\nexport function _createClient(config) {\n if (config.scheme !== \"https\" && config.scheme !== \"http\") {\n throw new LibsqlError('The HTTP client supports only \"libsql:\", \"https:\" and \"http:\" URLs, ' +\n `got ${JSON.stringify(config.scheme + \":\")}. For more information, please read ${supportedUrlLink}`, \"URL_SCHEME_NOT_SUPPORTED\");\n }\n if (config.encryptionKey !== undefined) {\n throw new LibsqlError(\"Encryption key is not supported by the remote client.\", \"ENCRYPTION_KEY_NOT_SUPPORTED\");\n }\n if (config.scheme === \"http\" && config.tls) {\n throw new LibsqlError(`A \"http:\" URL cannot opt into TLS by using ?tls=1`, \"URL_INVALID\");\n }\n else if (config.scheme === \"https\" && !config.tls) {\n throw new LibsqlError(`A \"https:\" URL cannot opt out of TLS by using ?tls=0`, \"URL_INVALID\");\n }\n const url = encodeBaseUrl(config.scheme, config.authority, config.path);\n return new HttpClient(url, config.authToken, config.intMode, config.fetch, config.concurrency);\n}\nconst sqlCacheCapacity = 30;\nexport class HttpClient {\n #client;\n protocol;\n #authToken;\n #promiseLimitFunction;\n /** @private */\n constructor(url, authToken, intMode, customFetch, concurrency) {\n this.#client = hrana.openHttp(url, authToken, customFetch);\n this.#client.intMode = intMode;\n this.protocol = \"http\";\n this.#authToken = authToken;\n this.#promiseLimitFunction = promiseLimit(concurrency);\n }\n async limit(fn) {\n return this.#promiseLimitFunction(fn);\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || [],\n };\n }\n else {\n stmt = stmtOrSql;\n }\n return this.limit(async () => {\n try {\n const hranaStmt = stmtToHrana(stmt);\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the statement and\n // close the stream in a single HTTP request.\n let rowsPromise;\n const stream = this.#client.openStream();\n try {\n rowsPromise = stream.query(hranaStmt);\n }\n finally {\n stream.closeGracefully();\n }\n const rowsResult = await rowsPromise;\n return resultSetFromHrana(rowsResult);\n }\n catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async batch(stmts, mode = \"deferred\") {\n return this.limit(async () => {\n try {\n const hranaStmts = stmts.map(stmtToHrana);\n const version = await this.#client.getVersion();\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the batch and\n // close the stream in a single HTTP request.\n let resultsPromise;\n const stream = this.#client.openStream();\n try {\n // It makes sense to use a SQL cache even for a single batch, because it may contain the same\n // statement repeated multiple times.\n const sqlCache = new SqlCache(stream, sqlCacheCapacity);\n sqlCache.apply(hranaStmts);\n // TODO: we do not use a cursor here, because it would cause three roundtrips:\n // 1. pipeline request to store SQL texts\n // 2. cursor request\n // 3. pipeline request to close the stream\n const batch = stream.batch(false);\n resultsPromise = executeHranaBatch(mode, version, batch, hranaStmts);\n }\n finally {\n stream.closeGracefully();\n }\n const results = await resultsPromise;\n return results;\n }\n catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async migrate(stmts) {\n return this.limit(async () => {\n try {\n const hranaStmts = stmts.map(stmtToHrana);\n const version = await this.#client.getVersion();\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the batch and\n // close the stream in a single HTTP request.\n let resultsPromise;\n const stream = this.#client.openStream();\n try {\n const batch = stream.batch(false);\n resultsPromise = executeHranaBatch(\"deferred\", version, batch, hranaStmts, true);\n }\n finally {\n stream.closeGracefully();\n }\n const results = await resultsPromise;\n return results;\n }\n catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async transaction(mode = \"write\") {\n return this.limit(async () => {\n try {\n const version = await this.#client.getVersion();\n return new HttpTransaction(this.#client.openStream(), mode, version);\n }\n catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n async executeMultiple(sql) {\n return this.limit(async () => {\n try {\n // Pipeline all operations, so `hrana.HttpClient` can open the stream, execute the sequence and\n // close the stream in a single HTTP request.\n let promise;\n const stream = this.#client.openStream();\n try {\n promise = stream.sequence(sql);\n }\n finally {\n stream.closeGracefully();\n }\n await promise;\n }\n catch (e) {\n throw mapHranaError(e);\n }\n });\n }\n sync() {\n throw new LibsqlError(\"sync not supported in http mode\", \"SYNC_NOT_SUPPORTED\");\n }\n close() {\n this.#client.close();\n }\n get closed() {\n return this.#client.closed;\n }\n}\nexport class HttpTransaction extends HranaTransaction {\n #stream;\n #sqlCache;\n /** @private */\n constructor(stream, mode, version) {\n super(mode, version);\n this.#stream = stream;\n this.#sqlCache = new SqlCache(stream, sqlCacheCapacity);\n }\n /** @private */\n _getStream() {\n return this.#stream;\n }\n /** @private */\n _getSqlCache() {\n return this.#sqlCache;\n }\n close() {\n this.#stream.close();\n }\n get closed() {\n return this.#stream.closed;\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}