@sqlrooms/duckdb 0.9.3 → 0.10.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.
@@ -0,0 +1,24 @@
1
+ import { LoadFileOptions, StandardLoadOptions } from '@sqlrooms/project-config';
2
+ import * as arrow from 'apache-arrow';
3
+ import { DuckDbConnector } from './DuckDbConnector';
4
+ export declare class BaseDuckDbConnector implements DuckDbConnector {
5
+ protected dbPath: string;
6
+ protected initializationQuery: string;
7
+ protected initialized: boolean;
8
+ protected initializing: Promise<void> | null;
9
+ constructor({ initializationQuery, dbPath, }?: {
10
+ dbPath?: string;
11
+ initializationQuery?: string;
12
+ });
13
+ initialize(): Promise<void>;
14
+ protected initializeInternal(): Promise<void>;
15
+ destroy(): Promise<void>;
16
+ protected ensureInitialized(): Promise<void>;
17
+ query(query: string): Promise<arrow.Table>;
18
+ loadFile(file: string | File, tableName: string, opts?: LoadFileOptions): Promise<void>;
19
+ loadArrow(file: arrow.Table | Uint8Array, tableName: string, opts?: {
20
+ schema?: string;
21
+ }): Promise<void>;
22
+ loadObjects(file: Record<string, unknown>[], tableName: string, opts?: StandardLoadOptions): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=BaseDuckDbConnector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDuckDbConnector.d.ts","sourceRoot":"","sources":["../../src/connectors/BaseDuckDbConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;gBAExC,EACV,mBAAwB,EACxB,MAAmB,GACpB,GAAE;QACD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KACzB;IAKA,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;cAWjB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;cAId,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IAK1C,QAAQ,CACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,eAAe;IAalB,SAAS,CACb,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,EAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC;IAMpB,WAAW,CACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,mBAAmB;CAK7B"}
@@ -0,0 +1,58 @@
1
+ import { isSpatialLoadFileOptions, } from '@sqlrooms/project-config';
2
+ import { load, loadObjects, loadSpatial } from './load/load';
3
+ export class BaseDuckDbConnector {
4
+ dbPath;
5
+ initializationQuery;
6
+ initialized = false;
7
+ initializing = null;
8
+ constructor({ initializationQuery = '', dbPath = ':memory:', } = {}) {
9
+ this.dbPath = dbPath;
10
+ this.initializationQuery = initializationQuery;
11
+ }
12
+ async initialize() {
13
+ if (this.initialized) {
14
+ return;
15
+ }
16
+ if (this.initializing) {
17
+ return this.initializing;
18
+ }
19
+ this.initializing = this.initializeInternal();
20
+ return this.initializing;
21
+ }
22
+ async initializeInternal() {
23
+ // To be implemented by subclasses
24
+ }
25
+ async destroy() {
26
+ // To be implemented by subclasses
27
+ }
28
+ async ensureInitialized() {
29
+ if (!this.initialized) {
30
+ await this.initialize();
31
+ }
32
+ }
33
+ async query(query) {
34
+ // To be implemented by subclasses
35
+ throw new Error('Not implemented', { cause: query });
36
+ }
37
+ async loadFile(file, tableName, opts) {
38
+ if (file instanceof File) {
39
+ throw new Error('Not implemented', { cause: { file, tableName, opts } });
40
+ }
41
+ const fileName = file;
42
+ if (opts && isSpatialLoadFileOptions(opts)) {
43
+ await this.query(loadSpatial(tableName, fileName, opts));
44
+ }
45
+ else {
46
+ await this.query(load(opts?.method ?? 'auto', tableName, fileName, opts));
47
+ }
48
+ }
49
+ async loadArrow(file, tableName, opts) {
50
+ // To be implemented by subclasses
51
+ throw new Error('Not implemented', { cause: { file, tableName, opts } });
52
+ }
53
+ async loadObjects(file, tableName, opts) {
54
+ await this.ensureInitialized();
55
+ await this.query(loadObjects(tableName, file, opts));
56
+ }
57
+ }
58
+ //# sourceMappingURL=BaseDuckDbConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDuckDbConnector.js","sourceRoot":"","sources":["../../src/connectors/BaseDuckDbConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAGzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AAE3D,MAAM,OAAO,mBAAmB;IACpB,MAAM,CAAS;IACf,mBAAmB,CAAS;IAC5B,WAAW,GAAG,KAAK,CAAC;IACpB,YAAY,GAAyB,IAAI,CAAC;IAEpD,YAAY,EACV,mBAAmB,GAAG,EAAE,EACxB,MAAM,GAAG,UAAU,MAIjB,EAAE;QACJ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,kCAAkC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,kCAAkC;IACpC,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,kCAAkC;QAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAmB,EACnB,SAAiB,EACjB,IAAsB;QAEtB,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAA8B,EAC9B,SAAiB,EACjB,IAAwB;QAExB,kCAAkC;QAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAA+B,EAC/B,SAAiB,EACjB,IAA0B;QAE1B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF","sourcesContent":["import {\n isSpatialLoadFileOptions,\n LoadFileOptions,\n StandardLoadOptions,\n} from '@sqlrooms/project-config';\nimport * as arrow from 'apache-arrow';\nimport {DuckDbConnector} from './DuckDbConnector';\nimport {load, loadObjects, loadSpatial} from './load/load';\n\nexport class BaseDuckDbConnector implements DuckDbConnector {\n protected dbPath: string;\n protected initializationQuery: string;\n protected initialized = false;\n protected initializing: Promise<void> | null = null;\n\n constructor({\n initializationQuery = '',\n dbPath = ':memory:',\n }: {\n dbPath?: string;\n initializationQuery?: string;\n } = {}) {\n this.dbPath = dbPath;\n this.initializationQuery = initializationQuery;\n }\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n if (this.initializing) {\n return this.initializing;\n }\n this.initializing = this.initializeInternal();\n return this.initializing;\n }\n\n protected async initializeInternal(): Promise<void> {\n // To be implemented by subclasses\n }\n\n async destroy(): Promise<void> {\n // To be implemented by subclasses\n }\n\n protected async ensureInitialized(): Promise<void> {\n if (!this.initialized) {\n await this.initialize();\n }\n }\n\n async query(query: string): Promise<arrow.Table> {\n // To be implemented by subclasses\n throw new Error('Not implemented', {cause: query});\n }\n\n async loadFile(\n file: string | File,\n tableName: string,\n opts?: LoadFileOptions,\n ) {\n if (file instanceof File) {\n throw new Error('Not implemented', {cause: {file, tableName, opts}});\n }\n const fileName = file;\n if (opts && isSpatialLoadFileOptions(opts)) {\n await this.query(loadSpatial(tableName, fileName, opts));\n } else {\n await this.query(load(opts?.method ?? 'auto', tableName, fileName, opts));\n }\n }\n\n async loadArrow(\n file: arrow.Table | Uint8Array,\n tableName: string,\n opts?: {schema?: string},\n ) {\n // To be implemented by subclasses\n throw new Error('Not implemented', {cause: {file, tableName, opts}});\n }\n\n async loadObjects(\n file: Record<string, unknown>[],\n tableName: string,\n opts?: StandardLoadOptions,\n ) {\n await this.ensureInitialized();\n await this.query(loadObjects(tableName, file, opts));\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/duckdb",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -20,7 +20,8 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@duckdb/duckdb-wasm": "1.29.0",
23
- "@sqlrooms/project": "0.9.3",
23
+ "@sqlrooms/project": "0.10.0",
24
+ "@sqlrooms/utils": "0.10.0",
24
25
  "apache-arrow": "^18.1.0",
25
26
  "fast-deep-equal": "^3.1.3",
26
27
  "immer": "^10.1.1",
@@ -28,7 +29,7 @@
28
29
  "zustand": "^5.0.3"
29
30
  },
30
31
  "devDependencies": {
31
- "@sqlrooms/project-config": "0.9.3",
32
+ "@sqlrooms/project-config": "0.10.0",
32
33
  "@types/jest": "^29.5.12",
33
34
  "jest": "^29.7.0",
34
35
  "ts-jest": "^29.1.2"
@@ -42,5 +43,5 @@
42
43
  "test": "jest",
43
44
  "test:watch": "jest --watch"
44
45
  },
45
- "gitHead": "b5d4d37cfe7ee9ec36462e68d6fa3c164a861d8d"
46
+ "gitHead": "6d712cf47180d6fdcec05b4025b2eac26e9b63d5"
46
47
  }