rqlite-js 2.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +207 -29
- package/dist/index.cjs +904 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +329 -0
- package/dist/index.d.ts +329 -0
- package/dist/index.js +865 -0
- package/dist/index.js.map +1 -0
- package/docs/MIGRATION-v2-to-v3.md +71 -0
- package/package.json +56 -35
- package/src/api/backup/index.ts +69 -0
- package/src/api/backup-formats.ts +8 -0
- package/src/api/client/index.ts +97 -0
- package/src/api/consistency-levels.ts +10 -0
- package/src/api/data/index.ts +87 -0
- package/src/api/paths.ts +13 -0
- package/src/api/query-params.ts +15 -0
- package/src/api/results/data-result-error.ts +41 -0
- package/src/api/results/data-result.ts +91 -0
- package/src/api/results/data-results.ts +91 -0
- package/src/api/results/index.ts +7 -0
- package/src/api/results/result-fields.ts +14 -0
- package/src/api/status/index.ts +53 -0
- package/src/http-request/auth-keys.ts +14 -0
- package/src/http-request/content-types.ts +4 -0
- package/src/http-request/errors.ts +17 -0
- package/src/http-request/http-headers.ts +19 -0
- package/src/http-request/http-methods.ts +12 -0
- package/src/http-request/index.ts +676 -0
- package/src/http-request/retryable.ts +41 -0
- package/src/index.ts +38 -0
- package/lib/api/backup/index.js +0 -72
- package/lib/api/backup/index.js.map +0 -1
- package/lib/api/backup/test.unit.js +0 -45
- package/lib/api/backup/test.unit.js.map +0 -1
- package/lib/api/backup-formats.js +0 -16
- package/lib/api/backup-formats.js.map +0 -1
- package/lib/api/client/index.js +0 -105
- package/lib/api/client/index.js.map +0 -1
- package/lib/api/client/test.unit.js +0 -53
- package/lib/api/client/test.unit.js.map +0 -1
- package/lib/api/consistency-levels.js +0 -30
- package/lib/api/consistency-levels.js.map +0 -1
- package/lib/api/data/index.js +0 -108
- package/lib/api/data/index.js.map +0 -1
- package/lib/api/data/test.unit.js +0 -98
- package/lib/api/data/test.unit.js.map +0 -1
- package/lib/api/paths.js +0 -33
- package/lib/api/paths.js.map +0 -1
- package/lib/api/query-params.js +0 -43
- package/lib/api/query-params.js.map +0 -1
- package/lib/api/results/data-result-error.js +0 -62
- package/lib/api/results/data-result-error.js.map +0 -1
- package/lib/api/results/data-result.js +0 -141
- package/lib/api/results/data-result.js.map +0 -1
- package/lib/api/results/data-results.js +0 -142
- package/lib/api/results/data-results.js.map +0 -1
- package/lib/api/results/index.js +0 -8
- package/lib/api/results/index.js.map +0 -1
- package/lib/api/results/result-fields.js +0 -47
- package/lib/api/results/result-fields.js.map +0 -1
- package/lib/api/results/test.unit.js +0 -238
- package/lib/api/results/test.unit.js.map +0 -1
- package/lib/api/status/index.js +0 -67
- package/lib/api/status/index.js.map +0 -1
- package/lib/api/status/test.unit.js +0 -57
- package/lib/api/status/test.unit.js.map +0 -1
- package/lib/http-request/auth-keys.js +0 -15
- package/lib/http-request/auth-keys.js.map +0 -1
- package/lib/http-request/content-types.js +0 -5
- package/lib/http-request/content-types.js.map +0 -1
- package/lib/http-request/errors.js +0 -17
- package/lib/http-request/errors.js.map +0 -1
- package/lib/http-request/http-headers.js +0 -20
- package/lib/http-request/http-headers.js.map +0 -1
- package/lib/http-request/http-methods.js +0 -40
- package/lib/http-request/http-methods.js.map +0 -1
- package/lib/http-request/index.js +0 -764
- package/lib/http-request/index.js.map +0 -1
- package/lib/http-request/retryable.js +0 -42
- package/lib/http-request/retryable.js.map +0 -1
- package/lib/http-request/test.unit.js +0 -560
- package/lib/http-request/test.unit.js.map +0 -1
- package/lib/index.js +0 -39
- package/lib/index.js.map +0 -1
- package/lib/test/api-data-execute-nock.js +0 -142
- package/lib/test/api-data-execute-nock.js.map +0 -1
- package/lib/test/api-data-query-nock.js +0 -210
- package/lib/test/api-data-query-nock.js.map +0 -1
- package/lib/test/backups/backup-nock.js +0 -29
- package/lib/test/backups/backup-nock.js.map +0 -1
- package/lib/test/backups/restore-nock.js +0 -30
- package/lib/test/backups/restore-nock.js.map +0 -1
- package/lib/test/env.js +0 -15
- package/lib/test/env.js.map +0 -1
- package/lib/test/unit/index.unit.js +0 -27
- package/lib/test/unit/index.unit.js.map +0 -1
- package/lib/test.integration.js +0 -238
- package/lib/test.integration.js.map +0 -1
package/src/index.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RQLite JS client which export all of the api clients
|
|
3
|
+
* @module rqlite-js
|
|
4
|
+
* @see https://rqlite.io/docs/api/api/
|
|
5
|
+
*/
|
|
6
|
+
import DataApiClient from './api/data/index.js'
|
|
7
|
+
import BackupApiClient from './api/backup/index.js'
|
|
8
|
+
import StatusApiClient from './api/status/index.js'
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
DataApiClient,
|
|
12
|
+
BackupApiClient,
|
|
13
|
+
StatusApiClient,
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
PATH_QUERY,
|
|
18
|
+
PATH_EXECUTE,
|
|
19
|
+
CONSISTENCY_LEVEL_NONE,
|
|
20
|
+
CONSISTENCY_LEVEL_STRONG,
|
|
21
|
+
CONSISTENCY_LEVEL_LINEARIZABLE,
|
|
22
|
+
CONSISTENCY_LEVEL_WEAK,
|
|
23
|
+
} from './api/data/index.js'
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
PATH_BACKUP,
|
|
27
|
+
PATH_LOAD,
|
|
28
|
+
BACKUP_DATA_FORMAT_SQL,
|
|
29
|
+
BACKUP_DATA_FORMAT_DUMP,
|
|
30
|
+
} from './api/backup/index.js'
|
|
31
|
+
|
|
32
|
+
export { PATH_STATUS } from './api/status/index.js'
|
|
33
|
+
|
|
34
|
+
export default {
|
|
35
|
+
DataApiClient,
|
|
36
|
+
BackupApiClient,
|
|
37
|
+
StatusApiClient,
|
|
38
|
+
}
|
package/lib/api/backup/index.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "BACKUP_DATA_FORMAT_DUMP", { enumerable: true, get: function () {return _backupFormats.BACKUP_DATA_FORMAT_DUMP;} });Object.defineProperty(exports, "BACKUP_DATA_FORMAT_SQL", { enumerable: true, get: function () {return _backupFormats.BACKUP_DATA_FORMAT_SQL;} });Object.defineProperty(exports, "PATH_BACKUP", { enumerable: true, get: function () {return _paths.PATH_BACKUP;} });Object.defineProperty(exports, "PATH_LOAD", { enumerable: true, get: function () {return _paths.PATH_LOAD;} });exports.default = void 0;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _httpRequest = _interopRequireDefault(require("../../http-request"));
|
|
7
|
-
var _contentTypes = require("../../http-request/content-types");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _httpHeaders = require("../../http-request/http-headers");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _paths = require("../paths");
|
|
16
|
-
var _backupFormats = require("../backup-formats");
|
|
17
|
-
var _queryParams = require("../query-params"); /**
|
|
18
|
-
* Backup api client to perform RQLite back and load operations
|
|
19
|
-
* @module api/backup
|
|
20
|
-
* @see https://rqlite.io/docs/guides/backup/
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Backup api client to perform RQLite back up and load operations
|
|
24
|
-
*/
|
|
25
|
-
class BackupApiClient extends _httpRequest.default {
|
|
26
|
-
/**
|
|
27
|
-
* Perform a SQL dump backup from the RQLite server
|
|
28
|
-
* @param {String} [format=BACKUP_DATA_FORMAT_DUMP] The backup data format
|
|
29
|
-
* @returns {Promise<*>} The response stream
|
|
30
|
-
* @see https://rqlite.io/docs/guides/backup/
|
|
31
|
-
* @see module:api/backup-formats
|
|
32
|
-
*/
|
|
33
|
-
async backup(format = _backupFormats.BACKUP_DATA_FORMAT_DUMP) {
|
|
34
|
-
return super.get({
|
|
35
|
-
headers: {
|
|
36
|
-
// Always sends application/octet-stream from the server in RQLite v4.x
|
|
37
|
-
[_httpHeaders.HTTP_HEADER_ACCEPT]: _contentTypes.CONTENT_TYPE_APPLICATION_OCTET_STREAM
|
|
38
|
-
},
|
|
39
|
-
query: {
|
|
40
|
-
[_queryParams.QUERY_PARAM_FMT]: format === _backupFormats.BACKUP_DATA_FORMAT_SQL ? format : undefined
|
|
41
|
-
},
|
|
42
|
-
json: false,
|
|
43
|
-
stream: true,
|
|
44
|
-
uri: _paths.PATH_BACKUP,
|
|
45
|
-
useLeader: true
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Perform a SQL restore by sending data the RQLite server
|
|
51
|
-
* @param {Buffer|String} data The data to be loaded
|
|
52
|
-
* @param {String} [format=BACKUP_DATA_FORMAT_SQL] The backup data format
|
|
53
|
-
* @returns {Promise<*>} The response stream
|
|
54
|
-
* @see https://rqlite.io/docs/guides/backup/
|
|
55
|
-
* @see module:api/backup-formats
|
|
56
|
-
*/
|
|
57
|
-
async load(data, format = _backupFormats.BACKUP_DATA_FORMAT_SQL) {
|
|
58
|
-
return super.post({
|
|
59
|
-
body: data,
|
|
60
|
-
headers: {
|
|
61
|
-
[_httpHeaders.HTTP_HEADER_CONTENT_TYPE]: format === _backupFormats.BACKUP_DATA_FORMAT_SQL ?
|
|
62
|
-
_contentTypes.CONTENT_TYPE_TEXT_PLAIN :
|
|
63
|
-
_contentTypes.CONTENT_TYPE_APPLICATION_OCTET_STREAM
|
|
64
|
-
},
|
|
65
|
-
json: false,
|
|
66
|
-
stream: true,
|
|
67
|
-
uri: _paths.PATH_LOAD,
|
|
68
|
-
useLeader: true
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}exports.default = BackupApiClient;
|
|
72
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_httpRequest","_interopRequireDefault","require","_contentTypes","_httpHeaders","_paths","_backupFormats","_queryParams","BackupApiClient","HttpRequest","backup","format","BACKUP_DATA_FORMAT_DUMP","get","headers","HTTP_HEADER_ACCEPT","CONTENT_TYPE_APPLICATION_OCTET_STREAM","query","QUERY_PARAM_FMT","BACKUP_DATA_FORMAT_SQL","undefined","json","stream","uri","PATH_BACKUP","useLeader","load","data","post","body","HTTP_HEADER_CONTENT_TYPE","CONTENT_TYPE_TEXT_PLAIN","PATH_LOAD","exports","default"],"sources":["../../../es6/api/backup/index.js"],"sourcesContent":["/**\n * Backup api client to perform RQLite back and load operations\n * @module api/backup\n * @see https://rqlite.io/docs/guides/backup/\n */\nimport HttpRequest from '../../http-request'\nimport {\n CONTENT_TYPE_APPLICATION_OCTET_STREAM,\n CONTENT_TYPE_TEXT_PLAIN,\n} from '../../http-request/content-types'\nimport {\n HTTP_HEADER_ACCEPT,\n HTTP_HEADER_CONTENT_TYPE,\n} from '../../http-request/http-headers'\nimport { PATH_BACKUP, PATH_LOAD } from '../paths'\nimport { BACKUP_DATA_FORMAT_DUMP, BACKUP_DATA_FORMAT_SQL } from '../backup-formats'\nimport { QUERY_PARAM_FMT } from '../query-params'\n\nexport { PATH_LOAD, PATH_BACKUP } from '../paths'\nexport { BACKUP_DATA_FORMAT_SQL, BACKUP_DATA_FORMAT_DUMP } from '../backup-formats'\n\n/**\n * Backup api client to perform RQLite back up and load operations\n */\nexport default class BackupApiClient extends HttpRequest {\n /**\n * Perform a SQL dump backup from the RQLite server\n * @param {String} [format=BACKUP_DATA_FORMAT_DUMP] The backup data format\n * @returns {Promise<*>} The response stream\n * @see https://rqlite.io/docs/guides/backup/\n * @see module:api/backup-formats\n */\n async backup (format = BACKUP_DATA_FORMAT_DUMP) {\n return super.get({\n headers: {\n // Always sends application/octet-stream from the server in RQLite v4.x\n [HTTP_HEADER_ACCEPT]: CONTENT_TYPE_APPLICATION_OCTET_STREAM,\n },\n query: {\n [QUERY_PARAM_FMT]: format === BACKUP_DATA_FORMAT_SQL ? format : undefined,\n },\n json: false,\n stream: true,\n uri: PATH_BACKUP,\n useLeader: true,\n })\n }\n\n /**\n * Perform a SQL restore by sending data the RQLite server\n * @param {Buffer|String} data The data to be loaded\n * @param {String} [format=BACKUP_DATA_FORMAT_SQL] The backup data format\n * @returns {Promise<*>} The response stream\n * @see https://rqlite.io/docs/guides/backup/\n * @see module:api/backup-formats\n */\n async load (data, format = BACKUP_DATA_FORMAT_SQL) {\n return super.post({\n body: data,\n headers: {\n [HTTP_HEADER_CONTENT_TYPE]: format === BACKUP_DATA_FORMAT_SQL\n ? CONTENT_TYPE_TEXT_PLAIN\n : CONTENT_TYPE_APPLICATION_OCTET_STREAM,\n },\n json: false,\n stream: true,\n uri: PATH_LOAD,\n useLeader: true,\n })\n }\n}\n"],"mappings":";;;;;AAKA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;;AAIA,IAAAE,YAAA,GAAAF,OAAA;;;;AAIA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA,oBAAiD,CAhBjD;AACA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACe,MAAMM,eAAe,SAASC,oBAAW,CAAC;EACvD;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAAEC,MAAM,GAAGC,sCAAuB,EAAE;IAC9C,OAAO,KAAK,CAACC,GAAG,CAAC;MACfC,OAAO,EAAE;QACP;QACA,CAACC,+BAAkB,GAAGC;MACxB,CAAC;MACDC,KAAK,EAAE;QACL,CAACC,4BAAe,GAAGP,MAAM,KAAKQ,qCAAsB,GAAGR,MAAM,GAAGS;MAClE,CAAC;MACDC,IAAI,EAAE,KAAK;MACXC,MAAM,EAAE,IAAI;MACZC,GAAG,EAAEC,kBAAW;MAChBC,SAAS,EAAE;IACb,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,IAAIA,CAAEC,IAAI,EAAEhB,MAAM,GAAGQ,qCAAsB,EAAE;IACjD,OAAO,KAAK,CAACS,IAAI,CAAC;MAChBC,IAAI,EAAEF,IAAI;MACVb,OAAO,EAAE;QACP,CAACgB,qCAAwB,GAAGnB,MAAM,KAAKQ,qCAAsB;QACzDY,qCAAuB;QACvBf;MACN,CAAC;MACDK,IAAI,EAAE,KAAK;MACXC,MAAM,EAAE,IAAI;MACZC,GAAG,EAAES,gBAAS;MACdP,SAAS,EAAE;IACb,CAAC,CAAC;EACJ;AACF,CAACQ,OAAA,CAAAC,OAAA,GAAA1B,eAAA","ignoreList":[]}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";var _chai = require("chai");
|
|
2
|
-
var _backupNock = require("../../test/backups/backup-nock");
|
|
3
|
-
var _restoreNock = require("../../test/backups/restore-nock");
|
|
4
|
-
var _ = _interopRequireWildcard(require("."));var cache;function _interopRequireWildcard(e, t) {if (!t && e && e.__esModule) return e;var r,c,a = Object.defineProperty,n = { __proto__: null, default: e };if (Object(e) !== e) return n;if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) {if (cache.has(e)) return cache.get(e);cache.set(e, n);}for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]);return n;}
|
|
5
|
-
|
|
6
|
-
const HOST = 'http://www.rqlite.com:4001';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Capture the stream data and resolve a promise with the parsed JSON
|
|
10
|
-
*/
|
|
11
|
-
function handleRequestStreamAsPromise(request) {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
let result = Buffer.from('');
|
|
14
|
-
request.
|
|
15
|
-
on('data', (data) => {
|
|
16
|
-
result = Buffer.concat([result, data]);
|
|
17
|
-
}).
|
|
18
|
-
on('end', () => resolve(result)).
|
|
19
|
-
on('error', reject);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
describe('api backup', () => {
|
|
24
|
-
describe('backupApiClient.backup()', () => {
|
|
25
|
-
it(`should call ${HOST}${_.PATH_BACKUP} endpoint using HTTP GET`, async () => {
|
|
26
|
-
const backupApiClient = new _.default(HOST);
|
|
27
|
-
const scope = (0, _backupNock.backupSuccess)({ url: HOST, path: _.PATH_BACKUP });
|
|
28
|
-
const request = await backupApiClient.backup();
|
|
29
|
-
const result = await handleRequestStreamAsPromise(request);
|
|
30
|
-
_chai.assert.isTrue(scope.isDone(), 'http request captured by nock');
|
|
31
|
-
_chai.assert.equal(result, _backupNock.BACKUP_SUCCESS_RESPONSE);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe('backupApiClient.load()', () => {
|
|
35
|
-
it(`should call ${HOST}${_.PATH_LOAD} endpoint using HTTP POST`, async () => {
|
|
36
|
-
const backupApiClient = new _.default(HOST);
|
|
37
|
-
const scope = (0, _restoreNock.restoreSuccess)({ url: HOST, path: _.PATH_LOAD, body: _backupNock.BACKUP_SUCCESS_RESPONSE });
|
|
38
|
-
const request = await backupApiClient.load(_backupNock.BACKUP_SUCCESS_RESPONSE);
|
|
39
|
-
const result = await handleRequestStreamAsPromise(request);
|
|
40
|
-
_chai.assert.isTrue(scope.isDone(), 'http request captured by nock');
|
|
41
|
-
_chai.assert.deepEqual(JSON.parse(result.toString()), _restoreNock.RESTORE_SUCCESS_RESPONSE);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=test.unit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.unit.js","names":["_chai","require","_backupNock","_restoreNock","_","_interopRequireWildcard","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","HOST","handleRequestStreamAsPromise","request","Promise","resolve","reject","result","Buffer","from","on","data","concat","describe","it","PATH_BACKUP","backupApiClient","BackupApiClient","scope","backupSuccess","url","path","backup","assert","isTrue","isDone","equal","BACKUP_SUCCESS_RESPONSE","PATH_LOAD","restoreSuccess","body","load","deepEqual","JSON","parse","toString","RESTORE_SUCCESS_RESPONSE"],"sources":["../../../es6/api/backup/test.unit.js"],"sourcesContent":["import { assert } from 'chai'\nimport { backupSuccess, BACKUP_SUCCESS_RESPONSE } from '../../test/backups/backup-nock'\nimport { restoreSuccess, RESTORE_SUCCESS_RESPONSE } from '../../test/backups/restore-nock'\nimport BackupApiClient, { PATH_BACKUP, PATH_LOAD } from '.'\n\nconst HOST = 'http://www.rqlite.com:4001'\n\n/**\n * Capture the stream data and resolve a promise with the parsed JSON\n */\nfunction handleRequestStreamAsPromise (request) {\n return new Promise((resolve, reject) => {\n let result = Buffer.from('')\n request\n .on('data', (data) => {\n result = Buffer.concat([result, data])\n })\n .on('end', () => resolve(result))\n .on('error', reject)\n })\n}\n\ndescribe('api backup', () => {\n describe('backupApiClient.backup()', () => {\n it(`should call ${HOST}${PATH_BACKUP} endpoint using HTTP GET`, async () => {\n const backupApiClient = new BackupApiClient(HOST)\n const scope = backupSuccess({ url: HOST, path: PATH_BACKUP })\n const request = await backupApiClient.backup()\n const result = await handleRequestStreamAsPromise(request)\n assert.isTrue(scope.isDone(), 'http request captured by nock')\n assert.equal(result, BACKUP_SUCCESS_RESPONSE)\n })\n })\n describe('backupApiClient.load()', () => {\n it(`should call ${HOST}${PATH_LOAD} endpoint using HTTP POST`, async () => {\n const backupApiClient = new BackupApiClient(HOST)\n const scope = restoreSuccess({ url: HOST, path: PATH_LOAD, body: BACKUP_SUCCESS_RESPONSE })\n const request = await backupApiClient.load(BACKUP_SUCCESS_RESPONSE)\n const result = await handleRequestStreamAsPromise(request)\n assert.isTrue(scope.isDone(), 'http request captured by nock')\n assert.deepEqual(JSON.parse(result.toString()), RESTORE_SUCCESS_RESPONSE)\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.BACKUP_DATA_FORMAT_SQL = exports.BACKUP_DATA_FORMAT_DUMP = void 0; /**
|
|
2
|
-
* RQLite backup data format constants
|
|
3
|
-
* @module api/backup-formats
|
|
4
|
-
* @see https://rqlite.io/docs/guides/backup/
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Use plain SQL dump as the back up format
|
|
9
|
-
*/
|
|
10
|
-
const BACKUP_DATA_FORMAT_SQL = exports.BACKUP_DATA_FORMAT_SQL = 'sql';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Use sqlite3 dump as the back up format (default binary backup)
|
|
14
|
-
*/
|
|
15
|
-
const BACKUP_DATA_FORMAT_DUMP = exports.BACKUP_DATA_FORMAT_DUMP = 'dump';
|
|
16
|
-
//# sourceMappingURL=backup-formats.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backup-formats.js","names":["BACKUP_DATA_FORMAT_SQL","exports","BACKUP_DATA_FORMAT_DUMP"],"sources":["../../es6/api/backup-formats.js"],"sourcesContent":["/**\n * RQLite backup data format constants\n * @module api/backup-formats\n * @see https://rqlite.io/docs/guides/backup/\n */\n\n/**\n * Use plain SQL dump as the back up format\n */\nexport const BACKUP_DATA_FORMAT_SQL = 'sql'\n\n/**\n * Use sqlite3 dump as the back up format (default binary backup)\n */\nexport const BACKUP_DATA_FORMAT_DUMP = 'dump'\n"],"mappings":"sJAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,KAAK;;AAE3C;AACA;AACA;AACO,MAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,MAAM","ignoreList":[]}
|
package/lib/api/client/index.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.createQuery = createQuery;exports.default = void 0;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _httpRequest = _interopRequireDefault(require("../../http-request"));
|
|
7
|
-
var _httpMethods = require("../../http-request/http-methods");
|
|
8
|
-
var _queryParams = require("../query-params"); /**
|
|
9
|
-
* Base API client for RQLite which abstracts the HTTP calls
|
|
10
|
-
* @module api/client
|
|
11
|
-
* @see https://rqlite.io/docs/api/api/
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* RQLite API query-string / request options for data endpoints
|
|
19
|
-
* @typedef {Object} ApiClientRequestOptions
|
|
20
|
-
* @property {Boolean} [useLeader] Prefer the leader host
|
|
21
|
-
* @property {String} [level] Consistency level
|
|
22
|
-
* @property {Boolean} [pretty] Pretty-print JSON
|
|
23
|
-
* @property {Boolean} [timings] Include timings
|
|
24
|
-
* @property {Boolean} [atomic] Transaction (RQLite v5+)
|
|
25
|
-
* @property {Boolean} [transaction] Transaction (RQLite v4)
|
|
26
|
-
* @property {Boolean} [raw] Return raw HTTP response
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Create the base HTTP query options from RQLite API options
|
|
31
|
-
* @param {ApiClientRequestOptions} [options={}] The RQLite API options
|
|
32
|
-
* @returns {Object} The HTTP query
|
|
33
|
-
* @see https://rqlite.io/docs/api/api/
|
|
34
|
-
* @see module:api/query-params
|
|
35
|
-
*/
|
|
36
|
-
function createQuery(options = {}) {
|
|
37
|
-
const { level, pretty, timings, atomic, transaction } = options;
|
|
38
|
-
|
|
39
|
-
// Remove all undefined values
|
|
40
|
-
const query = {
|
|
41
|
-
[_queryParams.QUERY_PARAM_LEVEL]: level,
|
|
42
|
-
[_queryParams.QUERY_PARAM_PRETTY]: pretty,
|
|
43
|
-
[_queryParams.QUERY_PARAM_TIMINGS]: timings,
|
|
44
|
-
[_queryParams.QUERY_PARAM_ATOMIC]: atomic,
|
|
45
|
-
[_queryParams.QUERY_PARAM_TRANSACTION]: transaction
|
|
46
|
-
};
|
|
47
|
-
return Object.entries(query).reduce((acc, entry) => {
|
|
48
|
-
const [key, val] = entry;
|
|
49
|
-
// Only take defined values
|
|
50
|
-
if (typeof val !== 'undefined') {
|
|
51
|
-
acc[key] = val;
|
|
52
|
-
}
|
|
53
|
-
return acc;
|
|
54
|
-
}, {});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Base API client for RQLite which abstracts the HTTP calls
|
|
59
|
-
* from the user
|
|
60
|
-
*/
|
|
61
|
-
class ApiClient extends _httpRequest.default {
|
|
62
|
-
/**
|
|
63
|
-
* Perform a RQLite data API get request
|
|
64
|
-
* @param {String} path The path for the request i.e. /db/query
|
|
65
|
-
* @param {String} sql The SQL query
|
|
66
|
-
* @param {ApiClientRequestOptions} [options={}] RQLite API options
|
|
67
|
-
* @returns {Promise<{status: Number, body: *}>}
|
|
68
|
-
* @see https://rqlite.io/docs/api/api/
|
|
69
|
-
*/
|
|
70
|
-
async get(path, sql, options = {}) {
|
|
71
|
-
const { useLeader } = options;
|
|
72
|
-
if (!path) {
|
|
73
|
-
throw new Error('The path argument is required');
|
|
74
|
-
}
|
|
75
|
-
return super.get({
|
|
76
|
-
useLeader,
|
|
77
|
-
uri: path,
|
|
78
|
-
httpMethod: _httpMethods.HTTP_METHOD_GET,
|
|
79
|
-
query: { ...createQuery(options), [_queryParams.QUERY_PARAM_Q]: sql }
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Perform a RQLite data API post request
|
|
85
|
-
* @param {String} path The path for the request i.e. /db/query
|
|
86
|
-
* @param {String|String[]} sql The SQL query or queries
|
|
87
|
-
* @param {ApiClientRequestOptions} [options={}] RQLite API options
|
|
88
|
-
* @returns {Promise<{status: Number, body: *}>}
|
|
89
|
-
* @see https://rqlite.io/docs/api/api/
|
|
90
|
-
*/
|
|
91
|
-
async post(path, sql, options = {}) {
|
|
92
|
-
const { useLeader } = options;
|
|
93
|
-
if (!path) {
|
|
94
|
-
throw new Error('The path argument is required');
|
|
95
|
-
}
|
|
96
|
-
return super.post({
|
|
97
|
-
useLeader,
|
|
98
|
-
uri: path,
|
|
99
|
-
httpMethod: _httpMethods.HTTP_METHOD_POST,
|
|
100
|
-
query: createQuery(options),
|
|
101
|
-
body: Array.isArray(sql) ? sql : [sql]
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}exports.default = ApiClient;
|
|
105
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_httpRequest","_interopRequireDefault","require","_httpMethods","_queryParams","createQuery","options","level","pretty","timings","atomic","transaction","query","QUERY_PARAM_LEVEL","QUERY_PARAM_PRETTY","QUERY_PARAM_TIMINGS","QUERY_PARAM_ATOMIC","QUERY_PARAM_TRANSACTION","Object","entries","reduce","acc","entry","key","val","ApiClient","HttpRequest","get","path","sql","useLeader","Error","uri","httpMethod","HTTP_METHOD_GET","QUERY_PARAM_Q","post","HTTP_METHOD_POST","body","Array","isArray","exports","default"],"sources":["../../../es6/api/client/index.js"],"sourcesContent":["/**\n * Base API client for RQLite which abstracts the HTTP calls\n * @module api/client\n * @see https://rqlite.io/docs/api/api/\n */\nimport HttpRequest from '../../http-request'\nimport { HTTP_METHOD_GET, HTTP_METHOD_POST } from '../../http-request/http-methods'\nimport {\n QUERY_PARAM_ATOMIC,\n QUERY_PARAM_LEVEL,\n QUERY_PARAM_PRETTY,\n QUERY_PARAM_Q,\n QUERY_PARAM_TIMINGS,\n QUERY_PARAM_TRANSACTION,\n} from '../query-params'\n\n/**\n * RQLite API query-string / request options for data endpoints\n * @typedef {Object} ApiClientRequestOptions\n * @property {Boolean} [useLeader] Prefer the leader host\n * @property {String} [level] Consistency level\n * @property {Boolean} [pretty] Pretty-print JSON\n * @property {Boolean} [timings] Include timings\n * @property {Boolean} [atomic] Transaction (RQLite v5+)\n * @property {Boolean} [transaction] Transaction (RQLite v4)\n * @property {Boolean} [raw] Return raw HTTP response\n */\n\n/**\n * Create the base HTTP query options from RQLite API options\n * @param {ApiClientRequestOptions} [options={}] The RQLite API options\n * @returns {Object} The HTTP query\n * @see https://rqlite.io/docs/api/api/\n * @see module:api/query-params\n */\nexport function createQuery (options = {}) {\n const { level, pretty, timings, atomic, transaction } = options\n\n // Remove all undefined values\n const query = {\n [QUERY_PARAM_LEVEL]: level,\n [QUERY_PARAM_PRETTY]: pretty,\n [QUERY_PARAM_TIMINGS]: timings,\n [QUERY_PARAM_ATOMIC]: atomic,\n [QUERY_PARAM_TRANSACTION]: transaction,\n }\n return Object.entries(query).reduce((acc, entry) => {\n const [key, val] = entry\n // Only take defined values\n if (typeof val !== 'undefined') {\n acc[key] = val\n }\n return acc\n }, {})\n}\n\n/**\n * Base API client for RQLite which abstracts the HTTP calls\n * from the user\n */\nexport default class ApiClient extends HttpRequest {\n /**\n * Perform a RQLite data API get request\n * @param {String} path The path for the request i.e. /db/query\n * @param {String} sql The SQL query\n * @param {ApiClientRequestOptions} [options={}] RQLite API options\n * @returns {Promise<{status: Number, body: *}>}\n * @see https://rqlite.io/docs/api/api/\n */\n async get (path, sql, options = {}) {\n const { useLeader } = options\n if (!path) {\n throw new Error('The path argument is required')\n }\n return super.get({\n useLeader,\n uri: path,\n httpMethod: HTTP_METHOD_GET,\n query: { ...createQuery(options), [QUERY_PARAM_Q]: sql },\n })\n }\n\n /**\n * Perform a RQLite data API post request\n * @param {String} path The path for the request i.e. /db/query\n * @param {String|String[]} sql The SQL query or queries\n * @param {ApiClientRequestOptions} [options={}] RQLite API options\n * @returns {Promise<{status: Number, body: *}>}\n * @see https://rqlite.io/docs/api/api/\n */\n async post (path, sql, options = {}) {\n const { useLeader } = options\n if (!path) {\n throw new Error('The path argument is required')\n }\n return super.post({\n useLeader,\n uri: path,\n httpMethod: HTTP_METHOD_POST,\n query: createQuery(options),\n body: Array.isArray(sql) ? sql : [sql],\n })\n }\n}\n"],"mappings":";;;;;AAKA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA,oBAOwB,CAdxB;AACA;AACA;AACA;AACA;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EACzC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAEC,WAAW,CAAC,CAAC,GAAGL,OAAO;;EAE/D;EACA,MAAMM,KAAK,GAAG;IACZ,CAACC,8BAAiB,GAAGN,KAAK;IAC1B,CAACO,+BAAkB,GAAGN,MAAM;IAC5B,CAACO,gCAAmB,GAAGN,OAAO;IAC9B,CAACO,+BAAkB,GAAGN,MAAM;IAC5B,CAACO,oCAAuB,GAAGN;EAC7B,CAAC;EACD,OAAOO,MAAM,CAACC,OAAO,CAACP,KAAK,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAClD,MAAM,CAACC,GAAG,EAAEC,GAAG,CAAC,GAAGF,KAAK;IACxB;IACA,IAAI,OAAOE,GAAG,KAAK,WAAW,EAAE;MAC9BH,GAAG,CAACE,GAAG,CAAC,GAAGC,GAAG;IAChB;IACA,OAAOH,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACe,MAAMI,SAAS,SAASC,oBAAW,CAAC;EACjD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,GAAGA,CAAEC,IAAI,EAAEC,GAAG,EAAEvB,OAAO,GAAG,CAAC,CAAC,EAAE;IAClC,MAAM,EAAEwB,SAAS,CAAC,CAAC,GAAGxB,OAAO;IAC7B,IAAI,CAACsB,IAAI,EAAE;MACT,MAAM,IAAIG,KAAK,CAAC,+BAA+B,CAAC;IAClD;IACA,OAAO,KAAK,CAACJ,GAAG,CAAC;MACfG,SAAS;MACTE,GAAG,EAAEJ,IAAI;MACTK,UAAU,EAAEC,4BAAe;MAC3BtB,KAAK,EAAE,EAAE,GAAGP,WAAW,CAACC,OAAO,CAAC,EAAE,CAAC6B,0BAAa,GAAGN,GAAG,CAAC;IACzD,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMO,IAAIA,CAAER,IAAI,EAAEC,GAAG,EAAEvB,OAAO,GAAG,CAAC,CAAC,EAAE;IACnC,MAAM,EAAEwB,SAAS,CAAC,CAAC,GAAGxB,OAAO;IAC7B,IAAI,CAACsB,IAAI,EAAE;MACT,MAAM,IAAIG,KAAK,CAAC,+BAA+B,CAAC;IAClD;IACA,OAAO,KAAK,CAACK,IAAI,CAAC;MAChBN,SAAS;MACTE,GAAG,EAAEJ,IAAI;MACTK,UAAU,EAAEI,6BAAgB;MAC5BzB,KAAK,EAAEP,WAAW,CAACC,OAAO,CAAC;MAC3BgC,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACX,GAAG,CAAC,GAAGA,GAAG,GAAG,CAACA,GAAG;IACvC,CAAC,CAAC;EACJ;AACF,CAACY,OAAA,CAAAC,OAAA,GAAAjB,SAAA","ignoreList":[]}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";var _chai = require("chai");
|
|
2
|
-
var _data = require("../data");
|
|
3
|
-
var _apiDataQueryNock = require("../../test/api-data-query-nock");
|
|
4
|
-
var _apiDataExecuteNock = require("../../test/api-data-execute-nock");
|
|
5
|
-
var _ = _interopRequireWildcard(require("."));var cache;function _interopRequireWildcard(e, t) {if (!t && e && e.__esModule) return e;var r,c,a = Object.defineProperty,n = { __proto__: null, default: e };if (Object(e) !== e) return n;if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) {if (cache.has(e)) return cache.get(e);cache.set(e, n);}for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]);return n;}
|
|
6
|
-
|
|
7
|
-
const HOST = 'http://www.rqlite.com:4001';
|
|
8
|
-
|
|
9
|
-
describe('api client', () => {
|
|
10
|
-
describe('Function: createQuery()', () => {
|
|
11
|
-
it('it should create the httpOptions using standard request options', () => {
|
|
12
|
-
const options = {
|
|
13
|
-
atomic: true,
|
|
14
|
-
level: 'strong',
|
|
15
|
-
pretty: true,
|
|
16
|
-
timings: true,
|
|
17
|
-
transaction: true
|
|
18
|
-
};
|
|
19
|
-
const expected = {
|
|
20
|
-
atomic: true,
|
|
21
|
-
level: 'strong',
|
|
22
|
-
pretty: true,
|
|
23
|
-
timings: true,
|
|
24
|
-
transaction: true
|
|
25
|
-
};
|
|
26
|
-
const result = (0, _.createQuery)(options);
|
|
27
|
-
_chai.assert.deepEqual(result, expected);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
describe('Function: post()', () => {
|
|
31
|
-
it(`should call ${HOST}${_data.PATH_EXECUTE} endpoint with a request body using HTTP POST when using insert`, async () => {
|
|
32
|
-
const apiClient = new _.default(HOST);
|
|
33
|
-
const sql = 'INSERT INTO foo(name) VALUES("fiona")';
|
|
34
|
-
const scope = (0, _apiDataExecuteNock.executeSuccess)({ url: HOST, path: _data.PATH_EXECUTE, body: [sql] });
|
|
35
|
-
const res = await apiClient.post(_data.PATH_EXECUTE, sql);
|
|
36
|
-
_chai.assert.isTrue(scope.isDone(), 'http request captured by nock');
|
|
37
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
38
|
-
_chai.assert.deepEqual(res.body, _apiDataExecuteNock.EXECUTE_SUCCESS_RESPONSE);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
describe('Function: get()', () => {
|
|
42
|
-
it(`should call ${HOST}${_data.PATH_QUERY} endpoint with a query using HTTP GET when using select`, async () => {
|
|
43
|
-
const apiClient = new _.default(HOST);
|
|
44
|
-
const sql = 'SELECT * FROM foo';
|
|
45
|
-
const query = { q: sql };
|
|
46
|
-
const scope = (0, _apiDataQueryNock.querySuccess)({ url: HOST, path: _data.PATH_QUERY, query });
|
|
47
|
-
const res = await apiClient.get(_data.PATH_QUERY, sql);
|
|
48
|
-
_chai.assert.isTrue(scope.isDone(), 'http request captured by nock');
|
|
49
|
-
_chai.assert.deepEqual(res.body, _apiDataQueryNock.QUERY_SUCCESS_RESPONSE);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=test.unit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.unit.js","names":["_chai","require","_data","_apiDataQueryNock","_apiDataExecuteNock","_","_interopRequireWildcard","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","HOST","describe","it","options","atomic","level","pretty","timings","transaction","expected","result","createQuery","assert","deepEqual","PATH_EXECUTE","apiClient","ApiClient","sql","scope","executeSuccess","url","path","body","res","post","isTrue","isDone","EXECUTE_SUCCESS_RESPONSE","PATH_QUERY","query","q","querySuccess","QUERY_SUCCESS_RESPONSE"],"sources":["../../../es6/api/client/test.unit.js"],"sourcesContent":["import { assert } from 'chai'\nimport { PATH_QUERY, PATH_EXECUTE } from '../data'\nimport { querySuccess, QUERY_SUCCESS_RESPONSE } from '../../test/api-data-query-nock'\nimport { executeSuccess, EXECUTE_SUCCESS_RESPONSE } from '../../test/api-data-execute-nock'\nimport ApiClient, { createQuery } from '.'\n\nconst HOST = 'http://www.rqlite.com:4001'\n\ndescribe('api client', () => {\n describe('Function: createQuery()', () => {\n it('it should create the httpOptions using standard request options', () => {\n const options = {\n atomic: true,\n level: 'strong',\n pretty: true,\n timings: true,\n transaction: true,\n }\n const expected = {\n atomic: true,\n level: 'strong',\n pretty: true,\n timings: true,\n transaction: true,\n }\n const result = createQuery(options)\n assert.deepEqual(result, expected)\n })\n })\n describe('Function: post()', () => {\n it(`should call ${HOST}${PATH_EXECUTE} endpoint with a request body using HTTP POST when using insert`, async () => {\n const apiClient = new ApiClient(HOST)\n const sql = 'INSERT INTO foo(name) VALUES(\"fiona\")'\n const scope = executeSuccess({ url: HOST, path: PATH_EXECUTE, body: [sql] })\n const res = await apiClient.post(PATH_EXECUTE, sql)\n assert.isTrue(scope.isDone(), 'http request captured by nock')\n // eslint-disable-next-line no-underscore-dangle\n assert.deepEqual(res.body, EXECUTE_SUCCESS_RESPONSE)\n })\n })\n describe('Function: get()', () => {\n it(`should call ${HOST}${PATH_QUERY} endpoint with a query using HTTP GET when using select`, async () => {\n const apiClient = new ApiClient(HOST)\n const sql = 'SELECT * FROM foo'\n const query = { q: sql }\n const scope = querySuccess({ url: HOST, path: PATH_QUERY, query })\n const res = await apiClient.get(PATH_QUERY, sql)\n assert.isTrue(scope.isDone(), 'http request captured by nock')\n assert.deepEqual(res.body, QUERY_SUCCESS_RESPONSE)\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.CONSISTENCY_LEVEL_WEAK = exports.CONSISTENCY_LEVEL_STRONG = exports.CONSISTENCY_LEVEL_NONE = exports.CONSISTENCY_LEVEL_LINEARIZABLE = void 0; /**
|
|
2
|
-
* RQLite read consistency level constants
|
|
3
|
-
* @module api/consistency-levels
|
|
4
|
-
* @see https://rqlite.io/docs/api/read-consistency/
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Read query consistency level none which means
|
|
9
|
-
* any node can respond
|
|
10
|
-
*/
|
|
11
|
-
const CONSISTENCY_LEVEL_NONE = exports.CONSISTENCY_LEVEL_NONE = 'none';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Read query consistency strong which must come from
|
|
15
|
-
* the leader node
|
|
16
|
-
*/
|
|
17
|
-
const CONSISTENCY_LEVEL_STRONG = exports.CONSISTENCY_LEVEL_STRONG = 'strong';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Read query consistency linearizable which must come from
|
|
21
|
-
* the leader node
|
|
22
|
-
*/
|
|
23
|
-
const CONSISTENCY_LEVEL_LINEARIZABLE = exports.CONSISTENCY_LEVEL_LINEARIZABLE = 'linearizable';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Read query consistency weak (default) which must come from
|
|
27
|
-
* the leader node
|
|
28
|
-
*/
|
|
29
|
-
const CONSISTENCY_LEVEL_WEAK = exports.CONSISTENCY_LEVEL_WEAK = 'weak';
|
|
30
|
-
//# sourceMappingURL=consistency-levels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-levels.js","names":["CONSISTENCY_LEVEL_NONE","exports","CONSISTENCY_LEVEL_STRONG","CONSISTENCY_LEVEL_LINEARIZABLE","CONSISTENCY_LEVEL_WEAK"],"sources":["../../es6/api/consistency-levels.js"],"sourcesContent":["/**\n * RQLite read consistency level constants\n * @module api/consistency-levels\n * @see https://rqlite.io/docs/api/read-consistency/\n */\n\n/**\n * Read query consistency level none which means\n * any node can respond\n */\nexport const CONSISTENCY_LEVEL_NONE = 'none'\n\n/**\n * Read query consistency strong which must come from\n * the leader node\n */\nexport const CONSISTENCY_LEVEL_STRONG = 'strong'\n\n/**\n * Read query consistency linearizable which must come from\n * the leader node\n */\nexport const CONSISTENCY_LEVEL_LINEARIZABLE = 'linearizable'\n\n/**\n * Read query consistency weak (default) which must come from\n * the leader node\n */\nexport const CONSISTENCY_LEVEL_WEAK = 'weak'\n"],"mappings":"iOAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,MAAM;;AAE5C;AACA;AACA;AACA;AACO,MAAME,wBAAwB,GAAAD,OAAA,CAAAC,wBAAA,GAAG,QAAQ;;AAEhD;AACA;AACA;AACA;AACO,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,cAAc;;AAE5D;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAAH,OAAA,CAAAG,sBAAA,GAAG,MAAM","ignoreList":[]}
|
package/lib/api/data/index.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "CONSISTENCY_LEVEL_LINEARIZABLE", { enumerable: true, get: function () {return _consistencyLevels.CONSISTENCY_LEVEL_LINEARIZABLE;} });Object.defineProperty(exports, "CONSISTENCY_LEVEL_NONE", { enumerable: true, get: function () {return _consistencyLevels.CONSISTENCY_LEVEL_NONE;} });Object.defineProperty(exports, "CONSISTENCY_LEVEL_STRONG", { enumerable: true, get: function () {return _consistencyLevels.CONSISTENCY_LEVEL_STRONG;} });Object.defineProperty(exports, "CONSISTENCY_LEVEL_WEAK", { enumerable: true, get: function () {return _consistencyLevels.CONSISTENCY_LEVEL_WEAK;} });Object.defineProperty(exports, "PATH_EXECUTE", { enumerable: true, get: function () {return _paths.PATH_EXECUTE;} });Object.defineProperty(exports, "PATH_QUERY", { enumerable: true, get: function () {return _paths.PATH_QUERY;} });exports.default = void 0;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _client = _interopRequireDefault(require("../client"));
|
|
9
|
-
var _results = require("../results");
|
|
10
|
-
var _paths = require("../paths");
|
|
11
|
-
var _consistencyLevels = require("../consistency-levels"); /**
|
|
12
|
-
* Data api client to perform RQLite data operations such
|
|
13
|
-
* as query and execute
|
|
14
|
-
* @module api/data
|
|
15
|
-
* @see https://rqlite.io/docs/api/api/
|
|
16
|
-
* @see https://rqlite.io/docs/api/read-consistency/
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @typedef {import('../client').ApiClientRequestOptions} ApiClientRequestOptions
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Data request base options
|
|
31
|
-
* @typedef {Object} DataRequestBaseOptions
|
|
32
|
-
* @property {Boolean} [raw] If true return the raw http response from
|
|
33
|
-
* RQLite response
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Data query request options
|
|
38
|
-
* @typedef {ApiClientRequestOptions & DataRequestBaseOptions} QueryRequestOptions
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Data execute request options
|
|
43
|
-
* @typedef {ApiClientRequestOptions & DataRequestBaseOptions} ExecuteRequestOptions
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Handle an RQLite data API response
|
|
48
|
-
* @param {{status: Number, body: Object}} response The HTTP response
|
|
49
|
-
* @param {DataRequestBaseOptions} [options={}] RQLite api options
|
|
50
|
-
* @returns {DataResults|{status: Number, body: Object}}
|
|
51
|
-
*/
|
|
52
|
-
function handleResponse(response, options = {}) {
|
|
53
|
-
const { raw } = options;
|
|
54
|
-
const { body } = response;
|
|
55
|
-
if (raw) {
|
|
56
|
-
return response;
|
|
57
|
-
}
|
|
58
|
-
return new _results.DataResults(body);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Data api client to perform RQLite queries
|
|
63
|
-
*/
|
|
64
|
-
class DataApiClient extends _client.default {
|
|
65
|
-
/**
|
|
66
|
-
* Send an RQLite query API request to the RQLite server
|
|
67
|
-
* @param {String|String[]} sql The SQL string to execute on the server
|
|
68
|
-
* @param {QueryRequestOptions} [options={}] RQLite api options
|
|
69
|
-
* @returns {Promise<DataResults|{status: Number, body: Object}>}
|
|
70
|
-
* @see https://rqlite.io/docs/api/api/
|
|
71
|
-
* @see https://rqlite.io/docs/api/read-consistency/
|
|
72
|
-
* @see module:api/consistency-levels
|
|
73
|
-
*/
|
|
74
|
-
async query(sql, options = {}) {
|
|
75
|
-
const { level } = options;
|
|
76
|
-
let { useLeader } = options;
|
|
77
|
-
// Weak and strong consistency will be redirect to the master anyway
|
|
78
|
-
// so skip the redirect HTTP response and got right to the master
|
|
79
|
-
if (level !== _consistencyLevels.CONSISTENCY_LEVEL_NONE) {
|
|
80
|
-
useLeader = true;
|
|
81
|
-
}
|
|
82
|
-
let response;
|
|
83
|
-
if (Array.isArray(sql)) {
|
|
84
|
-
response = await super.post(_paths.PATH_QUERY, sql, { ...options, useLeader });
|
|
85
|
-
} else {
|
|
86
|
-
response = await super.get(_paths.PATH_QUERY, sql, { ...options, useLeader });
|
|
87
|
-
}
|
|
88
|
-
// If round robin is true try and balance selects across hosts when
|
|
89
|
-
// the master node is not queried directly
|
|
90
|
-
if (!useLeader) {
|
|
91
|
-
this.setNextActiveHostIndex();
|
|
92
|
-
}
|
|
93
|
-
return handleResponse(response, options);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Send an RQLite execute API request to the RQLite server
|
|
98
|
-
* @param {String|String[]} sql The SQL string to execute on the server
|
|
99
|
-
* @param {ExecuteRequestOptions} [options={}] RQLite execute api options
|
|
100
|
-
* @returns {Promise<DataResults|{status: Number, body: Object}>}
|
|
101
|
-
* @see https://rqlite.io/docs/api/api/
|
|
102
|
-
*/
|
|
103
|
-
async execute(sql, options = {}) {
|
|
104
|
-
const response = await super.post(_paths.PATH_EXECUTE, sql, options);
|
|
105
|
-
return handleResponse(response, options);
|
|
106
|
-
}
|
|
107
|
-
}exports.default = DataApiClient;
|
|
108
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_client","_interopRequireDefault","require","_results","_paths","_consistencyLevels","handleResponse","response","options","raw","body","DataResults","DataApiClient","ApiClient","query","sql","level","useLeader","CONSISTENCY_LEVEL_NONE","Array","isArray","post","PATH_QUERY","get","setNextActiveHostIndex","execute","PATH_EXECUTE","exports","default"],"sources":["../../../es6/api/data/index.js"],"sourcesContent":["/**\n * Data api client to perform RQLite data operations such\n * as query and execute\n * @module api/data\n * @see https://rqlite.io/docs/api/api/\n * @see https://rqlite.io/docs/api/read-consistency/\n */\nimport ApiClient from '../client'\nimport { DataResults } from '../results'\nimport { PATH_EXECUTE, PATH_QUERY } from '../paths'\nimport { CONSISTENCY_LEVEL_NONE } from '../consistency-levels'\n\nexport {\n PATH_QUERY,\n PATH_EXECUTE,\n} from '../paths'\n\nexport {\n CONSISTENCY_LEVEL_NONE,\n CONSISTENCY_LEVEL_STRONG,\n CONSISTENCY_LEVEL_LINEARIZABLE,\n CONSISTENCY_LEVEL_WEAK,\n} from '../consistency-levels'\n\n/**\n * @typedef {import('../client').ApiClientRequestOptions} ApiClientRequestOptions\n */\n\n/**\n * Data request base options\n * @typedef {Object} DataRequestBaseOptions\n * @property {Boolean} [raw] If true return the raw http response from\n * RQLite response\n */\n\n/**\n * Data query request options\n * @typedef {ApiClientRequestOptions & DataRequestBaseOptions} QueryRequestOptions\n */\n\n/**\n * Data execute request options\n * @typedef {ApiClientRequestOptions & DataRequestBaseOptions} ExecuteRequestOptions\n */\n\n/**\n * Handle an RQLite data API response\n * @param {{status: Number, body: Object}} response The HTTP response\n * @param {DataRequestBaseOptions} [options={}] RQLite api options\n * @returns {DataResults|{status: Number, body: Object}}\n */\nfunction handleResponse (response, options = {}) {\n const { raw } = options\n const { body } = response\n if (raw) {\n return response\n }\n return new DataResults(body)\n}\n\n/**\n * Data api client to perform RQLite queries\n */\nexport default class DataApiClient extends ApiClient {\n /**\n * Send an RQLite query API request to the RQLite server\n * @param {String|String[]} sql The SQL string to execute on the server\n * @param {QueryRequestOptions} [options={}] RQLite api options\n * @returns {Promise<DataResults|{status: Number, body: Object}>}\n * @see https://rqlite.io/docs/api/api/\n * @see https://rqlite.io/docs/api/read-consistency/\n * @see module:api/consistency-levels\n */\n async query (sql, options = {}) {\n const { level } = options\n let { useLeader } = options\n // Weak and strong consistency will be redirect to the master anyway\n // so skip the redirect HTTP response and got right to the master\n if (level !== CONSISTENCY_LEVEL_NONE) {\n useLeader = true\n }\n let response\n if (Array.isArray(sql)) {\n response = await super.post(PATH_QUERY, sql, { ...options, useLeader })\n } else {\n response = await super.get(PATH_QUERY, sql, { ...options, useLeader })\n }\n // If round robin is true try and balance selects across hosts when\n // the master node is not queried directly\n if (!useLeader) {\n this.setNextActiveHostIndex()\n }\n return handleResponse(response, options)\n }\n\n /**\n * Send an RQLite execute API request to the RQLite server\n * @param {String|String[]} sql The SQL string to execute on the server\n * @param {ExecuteRequestOptions} [options={}] RQLite execute api options\n * @returns {Promise<DataResults|{status: Number, body: Object}>}\n * @see https://rqlite.io/docs/api/api/\n */\n async execute (sql, options = {}) {\n const response = await super.post(PATH_EXECUTE, sql, options)\n return handleResponse(response, options)\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA,0BAA8D,CAV9D;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAkBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,cAAcA,CAAEC,QAAQ,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EAC/C,MAAM,EAAEC,GAAG,CAAC,CAAC,GAAGD,OAAO;EACvB,MAAM,EAAEE,IAAI,CAAC,CAAC,GAAGH,QAAQ;EACzB,IAAIE,GAAG,EAAE;IACP,OAAOF,QAAQ;EACjB;EACA,OAAO,IAAII,oBAAW,CAACD,IAAI,CAAC;AAC9B;;AAEA;AACA;AACA;AACe,MAAME,aAAa,SAASC,eAAS,CAAC;EACnD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,KAAKA,CAAEC,GAAG,EAAEP,OAAO,GAAG,CAAC,CAAC,EAAE;IAC9B,MAAM,EAAEQ,KAAK,CAAC,CAAC,GAAGR,OAAO;IACzB,IAAI,EAAES,SAAS,CAAC,CAAC,GAAGT,OAAO;IAC3B;IACA;IACA,IAAIQ,KAAK,KAAKE,yCAAsB,EAAE;MACpCD,SAAS,GAAG,IAAI;IAClB;IACA,IAAIV,QAAQ;IACZ,IAAIY,KAAK,CAACC,OAAO,CAACL,GAAG,CAAC,EAAE;MACtBR,QAAQ,GAAG,MAAM,KAAK,CAACc,IAAI,CAACC,iBAAU,EAAEP,GAAG,EAAE,EAAE,GAAGP,OAAO,EAAES,SAAS,CAAC,CAAC,CAAC;IACzE,CAAC,MAAM;MACLV,QAAQ,GAAG,MAAM,KAAK,CAACgB,GAAG,CAACD,iBAAU,EAAEP,GAAG,EAAE,EAAE,GAAGP,OAAO,EAAES,SAAS,CAAC,CAAC,CAAC;IACxE;IACA;IACA;IACA,IAAI,CAACA,SAAS,EAAE;MACd,IAAI,CAACO,sBAAsB,CAAC,CAAC;IAC/B;IACA,OAAOlB,cAAc,CAACC,QAAQ,EAAEC,OAAO,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMiB,OAAOA,CAAEV,GAAG,EAAEP,OAAO,GAAG,CAAC,CAAC,EAAE;IAChC,MAAMD,QAAQ,GAAG,MAAM,KAAK,CAACc,IAAI,CAACK,mBAAY,EAAEX,GAAG,EAAEP,OAAO,CAAC;IAC7D,OAAOF,cAAc,CAACC,QAAQ,EAAEC,OAAO,CAAC;EAC1C;AACF,CAACmB,OAAA,CAAAC,OAAA,GAAAhB,aAAA","ignoreList":[]}
|