@haybarn/node-api 1.5.3-rc2
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/LICENSE +7 -0
- package/README.md +1224 -0
- package/lib/DuckDBAppender.d.ts +51 -0
- package/lib/DuckDBAppender.js +149 -0
- package/lib/DuckDBBindInfo.d.ts +12 -0
- package/lib/DuckDBBindInfo.js +33 -0
- package/lib/DuckDBClientContext.d.ts +6 -0
- package/lib/DuckDBClientContext.js +17 -0
- package/lib/DuckDBConnection.d.ts +49 -0
- package/lib/DuckDBConnection.js +208 -0
- package/lib/DuckDBDataChunk.d.ts +41 -0
- package/lib/DuckDBDataChunk.js +223 -0
- package/lib/DuckDBExtractedStatements.d.ts +12 -0
- package/lib/DuckDBExtractedStatements.js +31 -0
- package/lib/DuckDBFunctionInfo.d.ts +10 -0
- package/lib/DuckDBFunctionInfo.js +29 -0
- package/lib/DuckDBInstance.d.ts +10 -0
- package/lib/DuckDBInstance.js +30 -0
- package/lib/DuckDBInstanceCache.d.ts +8 -0
- package/lib/DuckDBInstanceCache.js +28 -0
- package/lib/DuckDBLogicalType.d.ts +66 -0
- package/lib/DuckDBLogicalType.js +328 -0
- package/lib/DuckDBMaterializedResult.d.ts +9 -0
- package/lib/DuckDBMaterializedResult.js +24 -0
- package/lib/DuckDBPendingResult.d.ts +18 -0
- package/lib/DuckDBPendingResult.js +60 -0
- package/lib/DuckDBPreparedStatement.d.ts +72 -0
- package/lib/DuckDBPreparedStatement.js +219 -0
- package/lib/DuckDBPreparedStatementCollection.d.ts +4 -0
- package/lib/DuckDBPreparedStatementCollection.js +2 -0
- package/lib/DuckDBPreparedStatementWeakRefCollection.d.ts +9 -0
- package/lib/DuckDBPreparedStatementWeakRefCollection.js +28 -0
- package/lib/DuckDBResult.d.ts +57 -0
- package/lib/DuckDBResult.js +229 -0
- package/lib/DuckDBResultReader.d.ts +68 -0
- package/lib/DuckDBResultReader.js +203 -0
- package/lib/DuckDBScalarFunction.d.ts +33 -0
- package/lib/DuckDBScalarFunction.js +83 -0
- package/lib/DuckDBType.d.ts +373 -0
- package/lib/DuckDBType.js +930 -0
- package/lib/DuckDBTypeId.d.ts +42 -0
- package/lib/DuckDBTypeId.js +47 -0
- package/lib/DuckDBValueConverter.d.ts +3 -0
- package/lib/DuckDBValueConverter.js +2 -0
- package/lib/DuckDBValueConverters.d.ts +47 -0
- package/lib/DuckDBValueConverters.js +214 -0
- package/lib/DuckDBVector.d.ts +596 -0
- package/lib/DuckDBVector.js +2525 -0
- package/lib/JS.d.ts +3 -0
- package/lib/JS.js +2 -0
- package/lib/JSDuckDBValueConverter.d.ts +3 -0
- package/lib/JSDuckDBValueConverter.js +49 -0
- package/lib/Json.d.ts +3 -0
- package/lib/Json.js +2 -0
- package/lib/JsonDuckDBValueConverter.d.ts +3 -0
- package/lib/JsonDuckDBValueConverter.js +49 -0
- package/lib/configurationOptionDescriptions.d.ts +1 -0
- package/lib/configurationOptionDescriptions.js +16 -0
- package/lib/conversion/bytesFromString.d.ts +1 -0
- package/lib/conversion/bytesFromString.js +7 -0
- package/lib/conversion/dateTimeStringConversion.d.ts +20 -0
- package/lib/conversion/dateTimeStringConversion.js +238 -0
- package/lib/conversion/displayStringForDuckDBValue.d.ts +2 -0
- package/lib/conversion/displayStringForDuckDBValue.js +13 -0
- package/lib/conversion/stringFromBlob.d.ts +4 -0
- package/lib/conversion/stringFromBlob.js +45 -0
- package/lib/conversion/stringFromDecimal.d.ts +18 -0
- package/lib/conversion/stringFromDecimal.js +80 -0
- package/lib/convertColumnsFromChunks.d.ts +3 -0
- package/lib/convertColumnsFromChunks.js +16 -0
- package/lib/convertColumnsObjectFromChunks.d.ts +3 -0
- package/lib/convertColumnsObjectFromChunks.js +19 -0
- package/lib/convertRowObjectsFromChunks.d.ts +3 -0
- package/lib/convertRowObjectsFromChunks.js +17 -0
- package/lib/convertRowsFromChunks.d.ts +3 -0
- package/lib/convertRowsFromChunks.js +13 -0
- package/lib/createConfig.d.ts +2 -0
- package/lib/createConfig.js +19 -0
- package/lib/createDuckDBValueConverter.d.ts +3 -0
- package/lib/createDuckDBValueConverter.js +15 -0
- package/lib/createResult.d.ts +3 -0
- package/lib/createResult.js +17 -0
- package/lib/createValue.d.ts +4 -0
- package/lib/createValue.js +222 -0
- package/lib/duckdb.d.ts +33 -0
- package/lib/duckdb.js +54 -0
- package/lib/enums.d.ts +5 -0
- package/lib/enums.js +9 -0
- package/lib/getColumnsFromChunks.d.ts +3 -0
- package/lib/getColumnsFromChunks.js +10 -0
- package/lib/getColumnsObjectFromChunks.d.ts +3 -0
- package/lib/getColumnsObjectFromChunks.js +10 -0
- package/lib/getRowObjectsFromChunks.d.ts +3 -0
- package/lib/getRowObjectsFromChunks.js +10 -0
- package/lib/getRowsFromChunks.d.ts +3 -0
- package/lib/getRowsFromChunks.js +10 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +41 -0
- package/lib/sleep.d.ts +1 -0
- package/lib/sleep.js +8 -0
- package/lib/sql.d.ts +2 -0
- package/lib/sql.js +10 -0
- package/lib/typeForValue.d.ts +3 -0
- package/lib/typeForValue.js +91 -0
- package/lib/values/DuckDBArrayValue.d.ts +7 -0
- package/lib/values/DuckDBArrayValue.js +18 -0
- package/lib/values/DuckDBBitValue.d.ts +16 -0
- package/lib/values/DuckDBBitValue.js +103 -0
- package/lib/values/DuckDBBlobValue.d.ts +8 -0
- package/lib/values/DuckDBBlobValue.js +26 -0
- package/lib/values/DuckDBDateValue.d.ts +16 -0
- package/lib/values/DuckDBDateValue.js +39 -0
- package/lib/values/DuckDBDecimalValue.d.ts +19 -0
- package/lib/values/DuckDBDecimalValue.js +44 -0
- package/lib/values/DuckDBIntervalValue.d.ts +9 -0
- package/lib/values/DuckDBIntervalValue.js +22 -0
- package/lib/values/DuckDBListValue.d.ts +7 -0
- package/lib/values/DuckDBListValue.js +18 -0
- package/lib/values/DuckDBMapValue.d.ts +11 -0
- package/lib/values/DuckDBMapValue.js +18 -0
- package/lib/values/DuckDBStructValue.d.ts +7 -0
- package/lib/values/DuckDBStructValue.js +22 -0
- package/lib/values/DuckDBTimeNSValue.d.ts +9 -0
- package/lib/values/DuckDBTimeNSValue.js +20 -0
- package/lib/values/DuckDBTimeTZValue.d.ts +35 -0
- package/lib/values/DuckDBTimeTZValue.js +65 -0
- package/lib/values/DuckDBTimeValue.d.ts +12 -0
- package/lib/values/DuckDBTimeValue.js +33 -0
- package/lib/values/DuckDBTimestampMillisecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampMillisecondsValue.js +31 -0
- package/lib/values/DuckDBTimestampNanosecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampNanosecondsValue.js +30 -0
- package/lib/values/DuckDBTimestampSecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampSecondsValue.js +30 -0
- package/lib/values/DuckDBTimestampTZValue.d.ts +16 -0
- package/lib/values/DuckDBTimestampTZValue.js +41 -0
- package/lib/values/DuckDBTimestampValue.d.ts +18 -0
- package/lib/values/DuckDBTimestampValue.js +41 -0
- package/lib/values/DuckDBUUIDValue.d.ts +19 -0
- package/lib/values/DuckDBUUIDValue.js +40 -0
- package/lib/values/DuckDBUnionValue.d.ts +8 -0
- package/lib/values/DuckDBUnionValue.js +22 -0
- package/lib/values/DuckDBValue.d.ts +20 -0
- package/lib/values/DuckDBValue.js +2 -0
- package/lib/values/index.d.ts +20 -0
- package/lib/values/index.js +36 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +10 -0
- package/package.json +15 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare enum DuckDBTypeId {
|
|
2
|
+
INVALID = 0,
|
|
3
|
+
BOOLEAN = 1,
|
|
4
|
+
TINYINT = 2,
|
|
5
|
+
SMALLINT = 3,
|
|
6
|
+
INTEGER = 4,
|
|
7
|
+
BIGINT = 5,
|
|
8
|
+
UTINYINT = 6,
|
|
9
|
+
USMALLINT = 7,
|
|
10
|
+
UINTEGER = 8,
|
|
11
|
+
UBIGINT = 9,
|
|
12
|
+
FLOAT = 10,
|
|
13
|
+
DOUBLE = 11,
|
|
14
|
+
TIMESTAMP = 12,
|
|
15
|
+
DATE = 13,
|
|
16
|
+
TIME = 14,
|
|
17
|
+
INTERVAL = 15,
|
|
18
|
+
HUGEINT = 16,
|
|
19
|
+
UHUGEINT = 32,
|
|
20
|
+
VARCHAR = 17,
|
|
21
|
+
BLOB = 18,
|
|
22
|
+
DECIMAL = 19,
|
|
23
|
+
TIMESTAMP_S = 20,
|
|
24
|
+
TIMESTAMP_MS = 21,
|
|
25
|
+
TIMESTAMP_NS = 22,
|
|
26
|
+
ENUM = 23,
|
|
27
|
+
LIST = 24,
|
|
28
|
+
STRUCT = 25,
|
|
29
|
+
MAP = 26,
|
|
30
|
+
ARRAY = 33,
|
|
31
|
+
UUID = 27,
|
|
32
|
+
UNION = 28,
|
|
33
|
+
BIT = 29,
|
|
34
|
+
TIME_TZ = 30,
|
|
35
|
+
TIMESTAMP_TZ = 31,
|
|
36
|
+
ANY = 34,
|
|
37
|
+
BIGNUM = 35,
|
|
38
|
+
SQLNULL = 36,
|
|
39
|
+
STRING_LITERAL = 37,
|
|
40
|
+
INTEGER_LITERAL = 38,
|
|
41
|
+
TIME_NS = 39
|
|
42
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DuckDBTypeId = void 0;
|
|
4
|
+
// copy of duckdb_type, with names shortened
|
|
5
|
+
var DuckDBTypeId;
|
|
6
|
+
(function (DuckDBTypeId) {
|
|
7
|
+
DuckDBTypeId[DuckDBTypeId["INVALID"] = 0] = "INVALID";
|
|
8
|
+
DuckDBTypeId[DuckDBTypeId["BOOLEAN"] = 1] = "BOOLEAN";
|
|
9
|
+
DuckDBTypeId[DuckDBTypeId["TINYINT"] = 2] = "TINYINT";
|
|
10
|
+
DuckDBTypeId[DuckDBTypeId["SMALLINT"] = 3] = "SMALLINT";
|
|
11
|
+
DuckDBTypeId[DuckDBTypeId["INTEGER"] = 4] = "INTEGER";
|
|
12
|
+
DuckDBTypeId[DuckDBTypeId["BIGINT"] = 5] = "BIGINT";
|
|
13
|
+
DuckDBTypeId[DuckDBTypeId["UTINYINT"] = 6] = "UTINYINT";
|
|
14
|
+
DuckDBTypeId[DuckDBTypeId["USMALLINT"] = 7] = "USMALLINT";
|
|
15
|
+
DuckDBTypeId[DuckDBTypeId["UINTEGER"] = 8] = "UINTEGER";
|
|
16
|
+
DuckDBTypeId[DuckDBTypeId["UBIGINT"] = 9] = "UBIGINT";
|
|
17
|
+
DuckDBTypeId[DuckDBTypeId["FLOAT"] = 10] = "FLOAT";
|
|
18
|
+
DuckDBTypeId[DuckDBTypeId["DOUBLE"] = 11] = "DOUBLE";
|
|
19
|
+
DuckDBTypeId[DuckDBTypeId["TIMESTAMP"] = 12] = "TIMESTAMP";
|
|
20
|
+
DuckDBTypeId[DuckDBTypeId["DATE"] = 13] = "DATE";
|
|
21
|
+
DuckDBTypeId[DuckDBTypeId["TIME"] = 14] = "TIME";
|
|
22
|
+
DuckDBTypeId[DuckDBTypeId["INTERVAL"] = 15] = "INTERVAL";
|
|
23
|
+
DuckDBTypeId[DuckDBTypeId["HUGEINT"] = 16] = "HUGEINT";
|
|
24
|
+
DuckDBTypeId[DuckDBTypeId["UHUGEINT"] = 32] = "UHUGEINT";
|
|
25
|
+
DuckDBTypeId[DuckDBTypeId["VARCHAR"] = 17] = "VARCHAR";
|
|
26
|
+
DuckDBTypeId[DuckDBTypeId["BLOB"] = 18] = "BLOB";
|
|
27
|
+
DuckDBTypeId[DuckDBTypeId["DECIMAL"] = 19] = "DECIMAL";
|
|
28
|
+
DuckDBTypeId[DuckDBTypeId["TIMESTAMP_S"] = 20] = "TIMESTAMP_S";
|
|
29
|
+
DuckDBTypeId[DuckDBTypeId["TIMESTAMP_MS"] = 21] = "TIMESTAMP_MS";
|
|
30
|
+
DuckDBTypeId[DuckDBTypeId["TIMESTAMP_NS"] = 22] = "TIMESTAMP_NS";
|
|
31
|
+
DuckDBTypeId[DuckDBTypeId["ENUM"] = 23] = "ENUM";
|
|
32
|
+
DuckDBTypeId[DuckDBTypeId["LIST"] = 24] = "LIST";
|
|
33
|
+
DuckDBTypeId[DuckDBTypeId["STRUCT"] = 25] = "STRUCT";
|
|
34
|
+
DuckDBTypeId[DuckDBTypeId["MAP"] = 26] = "MAP";
|
|
35
|
+
DuckDBTypeId[DuckDBTypeId["ARRAY"] = 33] = "ARRAY";
|
|
36
|
+
DuckDBTypeId[DuckDBTypeId["UUID"] = 27] = "UUID";
|
|
37
|
+
DuckDBTypeId[DuckDBTypeId["UNION"] = 28] = "UNION";
|
|
38
|
+
DuckDBTypeId[DuckDBTypeId["BIT"] = 29] = "BIT";
|
|
39
|
+
DuckDBTypeId[DuckDBTypeId["TIME_TZ"] = 30] = "TIME_TZ";
|
|
40
|
+
DuckDBTypeId[DuckDBTypeId["TIMESTAMP_TZ"] = 31] = "TIMESTAMP_TZ";
|
|
41
|
+
DuckDBTypeId[DuckDBTypeId["ANY"] = 34] = "ANY";
|
|
42
|
+
DuckDBTypeId[DuckDBTypeId["BIGNUM"] = 35] = "BIGNUM";
|
|
43
|
+
DuckDBTypeId[DuckDBTypeId["SQLNULL"] = 36] = "SQLNULL";
|
|
44
|
+
DuckDBTypeId[DuckDBTypeId["STRING_LITERAL"] = 37] = "STRING_LITERAL";
|
|
45
|
+
DuckDBTypeId[DuckDBTypeId["INTEGER_LITERAL"] = 38] = "INTEGER_LITERAL";
|
|
46
|
+
DuckDBTypeId[DuckDBTypeId["TIME_NS"] = 39] = "TIME_NS";
|
|
47
|
+
})(DuckDBTypeId || (exports.DuckDBTypeId = DuckDBTypeId = {}));
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DuckDBType } from './DuckDBType';
|
|
2
|
+
import { DuckDBValueConverter } from './DuckDBValueConverter';
|
|
3
|
+
import { DuckDBValue } from './values';
|
|
4
|
+
export declare function unsupportedConverter(_: DuckDBValue, type: DuckDBType): null;
|
|
5
|
+
export declare function nullConverter(_: DuckDBValue): null;
|
|
6
|
+
export declare function booleanFromValue(value: DuckDBValue): boolean;
|
|
7
|
+
export declare function numberFromValue(value: DuckDBValue): number;
|
|
8
|
+
export declare function jsonNumberFromValue(value: DuckDBValue): number | string;
|
|
9
|
+
export declare function bigintFromBigIntValue(value: DuckDBValue, type: DuckDBType): bigint;
|
|
10
|
+
export declare function stringFromValue(value: DuckDBValue): string;
|
|
11
|
+
export declare function bytesFromBlobValue(value: DuckDBValue): Uint8Array;
|
|
12
|
+
export declare function bytesFromBitValue(value: DuckDBValue): Uint8Array;
|
|
13
|
+
export declare function dateFromDateValue(value: DuckDBValue): Date;
|
|
14
|
+
export declare function bigintFromTimeValue(value: DuckDBValue): bigint;
|
|
15
|
+
export declare function dateFromTimestampValue(value: DuckDBValue): Date;
|
|
16
|
+
export declare function dateFromTimestampSecondsValue(value: DuckDBValue): Date;
|
|
17
|
+
export declare function dateFromTimestampMillisecondsValue(value: DuckDBValue): Date;
|
|
18
|
+
export declare function dateFromTimestampNanosecondsValue(value: DuckDBValue): Date;
|
|
19
|
+
export declare function objectFromTimeTZValue(value: DuckDBValue): {
|
|
20
|
+
micros: bigint;
|
|
21
|
+
offset: number;
|
|
22
|
+
};
|
|
23
|
+
export declare function dateFromTimestampTZValue(value: DuckDBValue): Date;
|
|
24
|
+
export declare function objectFromIntervalValue(value: DuckDBValue): {
|
|
25
|
+
months: number;
|
|
26
|
+
days: number;
|
|
27
|
+
micros: bigint;
|
|
28
|
+
};
|
|
29
|
+
export declare function jsonObjectFromIntervalValue(value: DuckDBValue): {
|
|
30
|
+
months: number;
|
|
31
|
+
days: number;
|
|
32
|
+
micros: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function doubleFromDecimalValue(value: DuckDBValue): number;
|
|
35
|
+
export declare function arrayFromListValue<T>(value: DuckDBValue, type: DuckDBType, converter: DuckDBValueConverter<T>): (T | null)[];
|
|
36
|
+
export declare function objectFromStructValue<T>(value: DuckDBValue, type: DuckDBType, converter: DuckDBValueConverter<T>): {
|
|
37
|
+
[key: string]: T | null;
|
|
38
|
+
};
|
|
39
|
+
export declare function objectArrayFromMapValue<T>(value: DuckDBValue, type: DuckDBType, converter: DuckDBValueConverter<T>): {
|
|
40
|
+
key: T | null;
|
|
41
|
+
value: T | null;
|
|
42
|
+
}[];
|
|
43
|
+
export declare function arrayFromArrayValue<T>(value: DuckDBValue, type: DuckDBType, converter: DuckDBValueConverter<T>): (T | null)[];
|
|
44
|
+
export declare function objectFromUnionValue<T>(value: DuckDBValue, type: DuckDBType, converter: DuckDBValueConverter<T>): {
|
|
45
|
+
tag: string;
|
|
46
|
+
value: T | null;
|
|
47
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unsupportedConverter = unsupportedConverter;
|
|
4
|
+
exports.nullConverter = nullConverter;
|
|
5
|
+
exports.booleanFromValue = booleanFromValue;
|
|
6
|
+
exports.numberFromValue = numberFromValue;
|
|
7
|
+
exports.jsonNumberFromValue = jsonNumberFromValue;
|
|
8
|
+
exports.bigintFromBigIntValue = bigintFromBigIntValue;
|
|
9
|
+
exports.stringFromValue = stringFromValue;
|
|
10
|
+
exports.bytesFromBlobValue = bytesFromBlobValue;
|
|
11
|
+
exports.bytesFromBitValue = bytesFromBitValue;
|
|
12
|
+
exports.dateFromDateValue = dateFromDateValue;
|
|
13
|
+
exports.bigintFromTimeValue = bigintFromTimeValue;
|
|
14
|
+
exports.dateFromTimestampValue = dateFromTimestampValue;
|
|
15
|
+
exports.dateFromTimestampSecondsValue = dateFromTimestampSecondsValue;
|
|
16
|
+
exports.dateFromTimestampMillisecondsValue = dateFromTimestampMillisecondsValue;
|
|
17
|
+
exports.dateFromTimestampNanosecondsValue = dateFromTimestampNanosecondsValue;
|
|
18
|
+
exports.objectFromTimeTZValue = objectFromTimeTZValue;
|
|
19
|
+
exports.dateFromTimestampTZValue = dateFromTimestampTZValue;
|
|
20
|
+
exports.objectFromIntervalValue = objectFromIntervalValue;
|
|
21
|
+
exports.jsonObjectFromIntervalValue = jsonObjectFromIntervalValue;
|
|
22
|
+
exports.doubleFromDecimalValue = doubleFromDecimalValue;
|
|
23
|
+
exports.arrayFromListValue = arrayFromListValue;
|
|
24
|
+
exports.objectFromStructValue = objectFromStructValue;
|
|
25
|
+
exports.objectArrayFromMapValue = objectArrayFromMapValue;
|
|
26
|
+
exports.arrayFromArrayValue = arrayFromArrayValue;
|
|
27
|
+
exports.objectFromUnionValue = objectFromUnionValue;
|
|
28
|
+
const DuckDBType_1 = require("./DuckDBType");
|
|
29
|
+
const values_1 = require("./values");
|
|
30
|
+
const MIN_DATE_DAYS = -100000000;
|
|
31
|
+
const MAX_DATE_DAYS = 100000000;
|
|
32
|
+
// -8640000000000
|
|
33
|
+
const MIN_DATE_MILLIS = -8640000000000000;
|
|
34
|
+
const MAX_DATE_MILLIS = 8640000000000000;
|
|
35
|
+
const MILLS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
36
|
+
function unsupportedConverter(_, type) {
|
|
37
|
+
throw new Error(`Unsupported type: ${type}`);
|
|
38
|
+
}
|
|
39
|
+
function nullConverter(_) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function booleanFromValue(value) {
|
|
43
|
+
return Boolean(value);
|
|
44
|
+
}
|
|
45
|
+
function numberFromValue(value) {
|
|
46
|
+
return Number(value);
|
|
47
|
+
}
|
|
48
|
+
function jsonNumberFromValue(value) {
|
|
49
|
+
if (Number.isFinite(value)) {
|
|
50
|
+
return Number(value);
|
|
51
|
+
}
|
|
52
|
+
return String(value);
|
|
53
|
+
}
|
|
54
|
+
function bigintFromBigIntValue(value, type) {
|
|
55
|
+
if (typeof value === 'bigint') {
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
throw new Error(`Expected bigint value for type ${type}`);
|
|
59
|
+
}
|
|
60
|
+
function stringFromValue(value) {
|
|
61
|
+
return String(value);
|
|
62
|
+
}
|
|
63
|
+
function bytesFromBlobValue(value) {
|
|
64
|
+
if (value instanceof values_1.DuckDBBlobValue) {
|
|
65
|
+
return value.bytes;
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`Expected DuckDBBlobValue`);
|
|
68
|
+
}
|
|
69
|
+
function bytesFromBitValue(value) {
|
|
70
|
+
if (value instanceof values_1.DuckDBBitValue) {
|
|
71
|
+
return value.data;
|
|
72
|
+
}
|
|
73
|
+
throw new Error(`Expected DuckDBBitValue`);
|
|
74
|
+
}
|
|
75
|
+
function dateFromDateValue(value) {
|
|
76
|
+
if (value instanceof values_1.DuckDBDateValue) {
|
|
77
|
+
if (MIN_DATE_DAYS <= value.days && value.days <= MAX_DATE_DAYS) {
|
|
78
|
+
return new Date(value.days * MILLS_PER_DAY);
|
|
79
|
+
}
|
|
80
|
+
throw new Error(`DATE value out of range for JS Date: ${value.days} days`);
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`Expected DuckDBDateValue`);
|
|
83
|
+
}
|
|
84
|
+
function bigintFromTimeValue(value) {
|
|
85
|
+
if (value instanceof values_1.DuckDBTimeValue) {
|
|
86
|
+
return value.micros;
|
|
87
|
+
}
|
|
88
|
+
throw new Error(`Expected DuckDBTimeValue`);
|
|
89
|
+
}
|
|
90
|
+
function dateFromTimestampValue(value) {
|
|
91
|
+
if (value instanceof values_1.DuckDBTimestampValue) {
|
|
92
|
+
const millis = value.micros / 1000n;
|
|
93
|
+
if (MIN_DATE_MILLIS <= millis && millis <= MAX_DATE_MILLIS) {
|
|
94
|
+
return new Date(Number(millis));
|
|
95
|
+
}
|
|
96
|
+
throw new Error(`TIMESTAMP value out of range for JS Date: ${value.micros} micros`);
|
|
97
|
+
}
|
|
98
|
+
throw new Error(`Expected DuckDBTimestampValue`);
|
|
99
|
+
}
|
|
100
|
+
function dateFromTimestampSecondsValue(value) {
|
|
101
|
+
if (value instanceof values_1.DuckDBTimestampSecondsValue) {
|
|
102
|
+
const millis = value.seconds * 1000n;
|
|
103
|
+
if (MIN_DATE_MILLIS <= millis && millis <= MAX_DATE_MILLIS) {
|
|
104
|
+
return new Date(Number(millis));
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`TIMESTAMP_S value out of range for JS Date: ${value.seconds} seconds`);
|
|
107
|
+
}
|
|
108
|
+
throw new Error(`Expected DuckDBTimestampSecondsValue`);
|
|
109
|
+
}
|
|
110
|
+
function dateFromTimestampMillisecondsValue(value) {
|
|
111
|
+
if (value instanceof values_1.DuckDBTimestampMillisecondsValue) {
|
|
112
|
+
const millis = value.millis;
|
|
113
|
+
if (MIN_DATE_MILLIS <= millis && millis <= MAX_DATE_MILLIS) {
|
|
114
|
+
return new Date(Number(millis));
|
|
115
|
+
}
|
|
116
|
+
throw new Error(`TIMESTAMP_MS value out of range for JS Date: ${value.millis} millis`);
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`Expected DuckDBTimestampMillisecondsValue`);
|
|
119
|
+
}
|
|
120
|
+
function dateFromTimestampNanosecondsValue(value) {
|
|
121
|
+
if (value instanceof values_1.DuckDBTimestampNanosecondsValue) {
|
|
122
|
+
const millis = value.nanos / 1000000n;
|
|
123
|
+
if (MIN_DATE_MILLIS <= millis && millis <= MAX_DATE_MILLIS) {
|
|
124
|
+
return new Date(Number(millis));
|
|
125
|
+
}
|
|
126
|
+
throw new Error(`TIMESTAMP_NS value out of range for JS Date: ${value.nanos} nanos`);
|
|
127
|
+
}
|
|
128
|
+
throw new Error(`Expected DuckDBTimestampNanosecondsValue`);
|
|
129
|
+
}
|
|
130
|
+
function objectFromTimeTZValue(value) {
|
|
131
|
+
if (value instanceof values_1.DuckDBTimeTZValue) {
|
|
132
|
+
return {
|
|
133
|
+
micros: value.micros,
|
|
134
|
+
offset: value.offset,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`Expected DuckDBTimeTZValue`);
|
|
138
|
+
}
|
|
139
|
+
function dateFromTimestampTZValue(value) {
|
|
140
|
+
if (value instanceof values_1.DuckDBTimestampTZValue) {
|
|
141
|
+
const millis = value.micros / 1000n;
|
|
142
|
+
if (MIN_DATE_MILLIS <= millis && millis <= MAX_DATE_MILLIS) {
|
|
143
|
+
return new Date(Number(millis));
|
|
144
|
+
}
|
|
145
|
+
throw new Error(`TIMESTAMPTZ value out of range for JS Date: ${value.micros} micros`);
|
|
146
|
+
}
|
|
147
|
+
throw new Error(`Expected DuckDBTimestampTZValue`);
|
|
148
|
+
}
|
|
149
|
+
function objectFromIntervalValue(value) {
|
|
150
|
+
if (value instanceof values_1.DuckDBIntervalValue) {
|
|
151
|
+
return {
|
|
152
|
+
months: value.months,
|
|
153
|
+
days: value.days,
|
|
154
|
+
micros: value.micros,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
throw new Error(`Expected DuckDBIntervalValue`);
|
|
158
|
+
}
|
|
159
|
+
function jsonObjectFromIntervalValue(value) {
|
|
160
|
+
if (value instanceof values_1.DuckDBIntervalValue) {
|
|
161
|
+
return {
|
|
162
|
+
months: value.months,
|
|
163
|
+
days: value.days,
|
|
164
|
+
micros: String(value.micros),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
throw new Error(`Expected DuckDBIntervalValue`);
|
|
168
|
+
}
|
|
169
|
+
function doubleFromDecimalValue(value) {
|
|
170
|
+
if (value instanceof values_1.DuckDBDecimalValue) {
|
|
171
|
+
return value.toDouble();
|
|
172
|
+
}
|
|
173
|
+
throw new Error(`Expected DuckDBDecimalValue`);
|
|
174
|
+
}
|
|
175
|
+
function arrayFromListValue(value, type, converter) {
|
|
176
|
+
if (value instanceof values_1.DuckDBListValue && type instanceof DuckDBType_1.DuckDBListType) {
|
|
177
|
+
return value.items.map((v) => converter(v, type.valueType, converter));
|
|
178
|
+
}
|
|
179
|
+
throw new Error(`Expected DuckDBListValue and DuckDBListType`);
|
|
180
|
+
}
|
|
181
|
+
function objectFromStructValue(value, type, converter) {
|
|
182
|
+
if (value instanceof values_1.DuckDBStructValue && type instanceof DuckDBType_1.DuckDBStructType) {
|
|
183
|
+
const result = {};
|
|
184
|
+
for (const key in value.entries) {
|
|
185
|
+
result[key] = converter(value.entries[key], type.typeForEntry(key), converter);
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
throw new Error(`Expected DuckDBStructValue and DuckDBStructType`);
|
|
190
|
+
}
|
|
191
|
+
function objectArrayFromMapValue(value, type, converter) {
|
|
192
|
+
if (value instanceof values_1.DuckDBMapValue && type instanceof DuckDBType_1.DuckDBMapType) {
|
|
193
|
+
return value.entries.map((entry) => ({
|
|
194
|
+
key: converter(entry.key, type.keyType, converter),
|
|
195
|
+
value: converter(entry.value, type.valueType, converter),
|
|
196
|
+
}));
|
|
197
|
+
}
|
|
198
|
+
throw new Error(`Expected DuckDBMapValue and DuckDBMapType`);
|
|
199
|
+
}
|
|
200
|
+
function arrayFromArrayValue(value, type, converter) {
|
|
201
|
+
if (value instanceof values_1.DuckDBArrayValue && type instanceof DuckDBType_1.DuckDBArrayType) {
|
|
202
|
+
return value.items.map((v) => converter(v, type.valueType, converter));
|
|
203
|
+
}
|
|
204
|
+
throw new Error(`Expected DuckDBArrayValue and DuckDBArrayType`);
|
|
205
|
+
}
|
|
206
|
+
function objectFromUnionValue(value, type, converter) {
|
|
207
|
+
if (value instanceof values_1.DuckDBUnionValue && type instanceof DuckDBType_1.DuckDBUnionType) {
|
|
208
|
+
return {
|
|
209
|
+
tag: value.tag,
|
|
210
|
+
value: converter(value.value, type.memberTypeForTag(value.tag), converter),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`Expected DuckDBUnionValue and DuckDBUnionType`);
|
|
214
|
+
}
|