@loaders.gl/schema 4.0.0-alpha.24 → 4.0.0-alpha.25
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/dist/dist.min.js +26 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js +1 -1
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js.map +1 -1
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js.map +1 -1
- package/dist/es5/lib/table/simple-table/table-accessors.js +52 -31
- package/dist/es5/lib/table/simple-table/table-accessors.js.map +1 -1
- package/dist/es5/types/batch.js +2 -0
- package/dist/es5/types/batch.js.map +1 -0
- package/dist/es5/types/category-table.js.map +1 -1
- package/dist/es5/types/schema.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js +1 -1
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js.map +1 -1
- package/dist/esm/lib/table/batches/row-table-batch-aggregator.js.map +1 -1
- package/dist/esm/lib/table/simple-table/table-accessors.js +32 -11
- package/dist/esm/lib/table/simple-table/table-accessors.js.map +1 -1
- package/dist/esm/types/batch.js +2 -0
- package/dist/esm/types/batch.js.map +1 -0
- package/dist/esm/types/category-table.js.map +1 -1
- package/dist/esm/types/schema.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts +3 -3
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -1
- package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -1
- package/dist/types/batch.d.ts +34 -0
- package/dist/types/batch.d.ts.map +1 -0
- package/dist/types/category-table.d.ts +21 -13
- package/dist/types/category-table.d.ts.map +1 -1
- package/dist/types/schema.d.ts +0 -15
- package/dist/types/schema.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +5 -3
- package/src/lib/table/arrow-api/arrow-like-table.ts +1 -1
- package/src/lib/table/batches/row-table-batch-aggregator.ts +2 -2
- package/src/lib/table/simple-table/table-accessors.ts +41 -13
- package/src/types/batch.ts +41 -0
- package/src/types/category-table.ts +22 -13
- package/src/types/schema.ts +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-like-table.js","names":["ArrowLikeSchema","deduceTableSchema","getTableCell","getTableLength","getTableNumCols","ArrowLikeVector","constructor","table","columnName","_defineProperty","get","rowIndex","toArray","_this$table$data$getC","shape","data","getChild","Error","ArrowLikeTable","schema","fields","metadata","numCols","length"],"sources":["../../../../../src/lib/table/arrow-api/arrow-like-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Table} from '../../../types/category-table';\n\nimport {ArrowLikeSchema} from './arrow-like-schema';\n\nimport {deduceTableSchema} from '../simple-table/table-schema';\n\nimport {\n getTableCell,\n getTableLength,\n getTableNumCols\n // getTableCell,\n // getTableRowShape,\n // getTableColumnIndex,\n // getTableColumnName,\n // getTableRowAsObject,\n // getTableRowAsArray\n} from '../simple-table/table-accessors';\n\nclass ArrowLikeVector {\n table: Table;\n columnName: string;\n\n constructor(table: Table, columnName: string) {\n this.table = table;\n this.columnName = columnName;\n }\n\n get(rowIndex: number): unknown {\n return getTableCell(this.table, rowIndex, this.columnName);\n }\n\n toArray(): ArrayLike<unknown> {\n switch (this.table.shape) {\n case 'arrow-table':\n return this.table.data.getChild(this.columnName)?.toArray();\n case 'columnar-table':\n return this.table.data[this.columnName];\n default:\n throw new Error(this.table.shape);\n }\n }\n}\n\n/**\n * Class that provides an API similar to Apache Arrow Table class\n * Forwards methods directly if the underlying table is Arrow, otherwise calls accessor functions\n */\nexport class ArrowLikeTable {\n schema: ArrowLikeSchema;\n table: Table;\n\n constructor(table: Table) {\n const schema = table.schema || deduceTableSchema(table);\n this.schema = new ArrowLikeSchema(schema.fields, schema.metadata);\n this.table = {...table, schema};\n }\n\n // get schema() {\n // return this.table.schema;\n // }\n\n get data() {\n return this.table.data;\n }\n\n get numCols(): number {\n return getTableNumCols(this.table);\n }\n\n get length(): number {\n return getTableLength(this.table);\n }\n\n getChild(columnName: string): ArrowLikeVector {\n return new ArrowLikeVector(this.table, columnName);\n }\n\n // getChildAt(columnIndex: number): ArrowLikeVector {\n // return\n // }\n}\n"],"mappings":";AAIA,SAAQA,eAAe,QAAO,qBAAqB;AAEnD,SAAQC,iBAAiB,QAAO,8BAA8B;AAE9D,SACEC,YAAY,EACZC,cAAc,EACdC,eAAe,QAOV,iCAAiC;AAExC,MAAMC,eAAe,CAAC;EAIpBC,WAAWA,CAACC,KAAY,EAAEC,UAAkB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC5C,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;EAEAE,GAAGA,CAACC,QAAgB,EAAW;IAC7B,OAAOT,YAAY,CAAC,IAAI,CAACK,KAAK,EAAEI,QAAQ,EAAE,IAAI,CAACH,UAAU,CAAC;EAC5D;EAEAI,OAAOA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC5B,QAAQ,IAAI,CAACN,KAAK,CAACO,KAAK;MACtB,KAAK,aAAa;QAChB,QAAAD,qBAAA,GAAO,IAAI,CAACN,KAAK,CAACQ,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,UAAU,CAAC,cAAAK,qBAAA,uBAAzCA,qBAAA,CAA2CD,OAAO,CAAC,CAAC;MAC7D,KAAK,gBAAgB;QACnB,OAAO,IAAI,CAACL,KAAK,CAACQ,IAAI,CAAC,IAAI,CAACP,UAAU,CAAC;MACzC;QACE,MAAM,IAAIS,KAAK,CAAC,IAAI,CAACV,KAAK,CAACO,KAAK,CAAC;IACrC;EACF;AACF;AAMA,OAAO,MAAMI,cAAc,CAAC;EAI1BZ,WAAWA,CAACC,KAAY,EAAE;IAAAE,eAAA;IAAAA,eAAA;IACxB,MAAMU,MAAM,GAAGZ,KAAK,CAACY,MAAM,IAAIlB,iBAAiB,CAACM,KAAK,CAAC;IACvD,IAAI,CAACY,MAAM,GAAG,IAAInB,eAAe,CAACmB,MAAM,CAACC,MAAM,EAAED,MAAM,CAACE,QAAQ,CAAC;IACjE,IAAI,CAACd,KAAK,GAAG;MAAC,GAAGA,KAAK;MAAEY;IAAM,CAAC;EACjC;EAMA,IAAIJ,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACR,KAAK,CAACQ,IAAI;
|
|
1
|
+
{"version":3,"file":"arrow-like-table.js","names":["ArrowLikeSchema","deduceTableSchema","getTableCell","getTableLength","getTableNumCols","ArrowLikeVector","constructor","table","columnName","_defineProperty","get","rowIndex","toArray","_this$table$data$getC","shape","data","getChild","Error","ArrowLikeTable","schema","fields","metadata","features","numCols","length"],"sources":["../../../../../src/lib/table/arrow-api/arrow-like-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Table} from '../../../types/category-table';\n\nimport {ArrowLikeSchema} from './arrow-like-schema';\n\nimport {deduceTableSchema} from '../simple-table/table-schema';\n\nimport {\n getTableCell,\n getTableLength,\n getTableNumCols\n // getTableCell,\n // getTableRowShape,\n // getTableColumnIndex,\n // getTableColumnName,\n // getTableRowAsObject,\n // getTableRowAsArray\n} from '../simple-table/table-accessors';\n\nclass ArrowLikeVector {\n table: Table;\n columnName: string;\n\n constructor(table: Table, columnName: string) {\n this.table = table;\n this.columnName = columnName;\n }\n\n get(rowIndex: number): unknown {\n return getTableCell(this.table, rowIndex, this.columnName);\n }\n\n toArray(): ArrayLike<unknown> {\n switch (this.table.shape) {\n case 'arrow-table':\n return this.table.data.getChild(this.columnName)?.toArray();\n case 'columnar-table':\n return this.table.data[this.columnName];\n default:\n throw new Error(this.table.shape);\n }\n }\n}\n\n/**\n * Class that provides an API similar to Apache Arrow Table class\n * Forwards methods directly if the underlying table is Arrow, otherwise calls accessor functions\n */\nexport class ArrowLikeTable {\n schema: ArrowLikeSchema;\n table: Table;\n\n constructor(table: Table) {\n const schema = table.schema || deduceTableSchema(table);\n this.schema = new ArrowLikeSchema(schema.fields, schema.metadata);\n this.table = {...table, schema};\n }\n\n // get schema() {\n // return this.table.schema;\n // }\n\n get data() {\n return this.table.shape === 'geojson-table' ? this.table.features : this.table.data;\n }\n\n get numCols(): number {\n return getTableNumCols(this.table);\n }\n\n get length(): number {\n return getTableLength(this.table);\n }\n\n getChild(columnName: string): ArrowLikeVector {\n return new ArrowLikeVector(this.table, columnName);\n }\n\n // getChildAt(columnIndex: number): ArrowLikeVector {\n // return\n // }\n}\n"],"mappings":";AAIA,SAAQA,eAAe,QAAO,qBAAqB;AAEnD,SAAQC,iBAAiB,QAAO,8BAA8B;AAE9D,SACEC,YAAY,EACZC,cAAc,EACdC,eAAe,QAOV,iCAAiC;AAExC,MAAMC,eAAe,CAAC;EAIpBC,WAAWA,CAACC,KAAY,EAAEC,UAAkB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC5C,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;EAEAE,GAAGA,CAACC,QAAgB,EAAW;IAC7B,OAAOT,YAAY,CAAC,IAAI,CAACK,KAAK,EAAEI,QAAQ,EAAE,IAAI,CAACH,UAAU,CAAC;EAC5D;EAEAI,OAAOA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC5B,QAAQ,IAAI,CAACN,KAAK,CAACO,KAAK;MACtB,KAAK,aAAa;QAChB,QAAAD,qBAAA,GAAO,IAAI,CAACN,KAAK,CAACQ,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,UAAU,CAAC,cAAAK,qBAAA,uBAAzCA,qBAAA,CAA2CD,OAAO,CAAC,CAAC;MAC7D,KAAK,gBAAgB;QACnB,OAAO,IAAI,CAACL,KAAK,CAACQ,IAAI,CAAC,IAAI,CAACP,UAAU,CAAC;MACzC;QACE,MAAM,IAAIS,KAAK,CAAC,IAAI,CAACV,KAAK,CAACO,KAAK,CAAC;IACrC;EACF;AACF;AAMA,OAAO,MAAMI,cAAc,CAAC;EAI1BZ,WAAWA,CAACC,KAAY,EAAE;IAAAE,eAAA;IAAAA,eAAA;IACxB,MAAMU,MAAM,GAAGZ,KAAK,CAACY,MAAM,IAAIlB,iBAAiB,CAACM,KAAK,CAAC;IACvD,IAAI,CAACY,MAAM,GAAG,IAAInB,eAAe,CAACmB,MAAM,CAACC,MAAM,EAAED,MAAM,CAACE,QAAQ,CAAC;IACjE,IAAI,CAACd,KAAK,GAAG;MAAC,GAAGA,KAAK;MAAEY;IAAM,CAAC;EACjC;EAMA,IAAIJ,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACR,KAAK,CAACO,KAAK,KAAK,eAAe,GAAG,IAAI,CAACP,KAAK,CAACe,QAAQ,GAAG,IAAI,CAACf,KAAK,CAACQ,IAAI;EACrF;EAEA,IAAIQ,OAAOA,CAAA,EAAW;IACpB,OAAOnB,eAAe,CAAC,IAAI,CAACG,KAAK,CAAC;EACpC;EAEA,IAAIiB,MAAMA,CAAA,EAAW;IACnB,OAAOrB,cAAc,CAAC,IAAI,CAACI,KAAK,CAAC;EACnC;EAEAS,QAAQA,CAACR,UAAkB,EAAmB;IAC5C,OAAO,IAAIH,eAAe,CAAC,IAAI,CAACE,KAAK,EAAEC,UAAU,CAAC;EACpD;AAKF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-table-batch-aggregator.js","names":["convertToArrayRow","convertToObjectRow","DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","_defineProperty","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","objectRows","getBatch","rows","slice","batchType","data"],"sources":["../../../../../src/lib/table/batches/row-table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../simple-table/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]:
|
|
1
|
+
{"version":3,"file":"row-table-batch-aggregator.js","names":["convertToArrayRow","convertToObjectRow","DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","_defineProperty","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","objectRows","getBatch","rows","slice","batchType","data"],"sources":["../../../../../src/lib/table/batches/row-table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../simple-table/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: unknown}[] | null = null;\n arrayRows: unknown[][] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ export function getTableLength(table) {
|
|
|
2
2
|
switch (table.shape) {
|
|
3
3
|
case 'array-row-table':
|
|
4
4
|
case 'object-row-table':
|
|
5
|
-
case 'geojson-row-table':
|
|
6
5
|
return table.data.length;
|
|
6
|
+
case 'geojson-table':
|
|
7
|
+
return table.features.length;
|
|
7
8
|
case 'arrow-table':
|
|
8
9
|
return table.data.numRows;
|
|
9
10
|
case 'columnar-table':
|
|
@@ -26,8 +27,9 @@ export function getTableNumCols(table) {
|
|
|
26
27
|
case 'array-row-table':
|
|
27
28
|
return table.data[0].length;
|
|
28
29
|
case 'object-row-table':
|
|
29
|
-
case 'geojson-row-table':
|
|
30
30
|
return Object.keys(table.data[0]).length;
|
|
31
|
+
case 'geojson-table':
|
|
32
|
+
return Object.keys(table.features[0]).length;
|
|
31
33
|
case 'columnar-table':
|
|
32
34
|
return Object.keys(table.data).length;
|
|
33
35
|
case 'arrow-table':
|
|
@@ -43,8 +45,9 @@ export function getTableCell(table, rowIndex, columnName) {
|
|
|
43
45
|
const columnIndex = getTableColumnIndex(table, columnName);
|
|
44
46
|
return table.data[rowIndex][columnIndex];
|
|
45
47
|
case 'object-row-table':
|
|
46
|
-
case 'geojson-row-table':
|
|
47
48
|
return table.data[rowIndex][columnName];
|
|
49
|
+
case 'geojson-table':
|
|
50
|
+
return table.features[rowIndex][columnName];
|
|
48
51
|
case 'columnar-table':
|
|
49
52
|
const column = table.data[columnName];
|
|
50
53
|
return column[rowIndex];
|
|
@@ -61,12 +64,14 @@ export function getTableCellAt(table, rowIndex, columnIndex) {
|
|
|
61
64
|
case 'array-row-table':
|
|
62
65
|
return table.data[rowIndex][columnIndex];
|
|
63
66
|
case 'object-row-table':
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
const columnName1 = getTableColumnName(table, columnIndex);
|
|
68
|
+
return table.data[rowIndex][columnName1];
|
|
69
|
+
case 'geojson-table':
|
|
70
|
+
const columnName2 = getTableColumnName(table, columnIndex);
|
|
71
|
+
return table.features[rowIndex][columnName2];
|
|
67
72
|
case 'columnar-table':
|
|
68
|
-
|
|
69
|
-
const column = table.data[
|
|
73
|
+
const columnName3 = getTableColumnName(table, columnIndex);
|
|
74
|
+
const column = table.data[columnName3];
|
|
70
75
|
return column[rowIndex];
|
|
71
76
|
case 'arrow-table':
|
|
72
77
|
return (_table$data$getChildA2 = table.data.getChildAt(columnIndex)) === null || _table$data$getChildA2 === void 0 ? void 0 : _table$data$getChildA2.get(rowIndex);
|
|
@@ -79,7 +84,7 @@ export function getTableRowShape(table) {
|
|
|
79
84
|
case 'array-row-table':
|
|
80
85
|
case 'object-row-table':
|
|
81
86
|
return table.shape;
|
|
82
|
-
case 'geojson-
|
|
87
|
+
case 'geojson-table':
|
|
83
88
|
return 'object-row-table';
|
|
84
89
|
case 'columnar-table':
|
|
85
90
|
default:
|
|
@@ -107,7 +112,6 @@ export function getTableRowAsObject(table, rowIndex, target, copy) {
|
|
|
107
112
|
case 'object-row-table':
|
|
108
113
|
return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
|
|
109
114
|
case 'array-row-table':
|
|
110
|
-
case 'geojson-row-table':
|
|
111
115
|
if (table.schema) {
|
|
112
116
|
const objectRow = target || {};
|
|
113
117
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -116,6 +120,15 @@ export function getTableRowAsObject(table, rowIndex, target, copy) {
|
|
|
116
120
|
return objectRow;
|
|
117
121
|
}
|
|
118
122
|
throw new Error('no schema');
|
|
123
|
+
case 'geojson-table':
|
|
124
|
+
if (table.schema) {
|
|
125
|
+
const objectRow = target || {};
|
|
126
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
127
|
+
objectRow[table.schema.fields[i].name] = table.features[rowIndex][i];
|
|
128
|
+
}
|
|
129
|
+
return objectRow;
|
|
130
|
+
}
|
|
131
|
+
throw new Error('no schema');
|
|
119
132
|
case 'columnar-table':
|
|
120
133
|
if (table.schema) {
|
|
121
134
|
const objectRow = target || {};
|
|
@@ -147,7 +160,6 @@ export function getTableRowAsArray(table, rowIndex, target, copy) {
|
|
|
147
160
|
case 'array-row-table':
|
|
148
161
|
return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
|
|
149
162
|
case 'object-row-table':
|
|
150
|
-
case 'geojson-row-table':
|
|
151
163
|
if (table.schema) {
|
|
152
164
|
const arrayRow = target || [];
|
|
153
165
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -156,6 +168,15 @@ export function getTableRowAsArray(table, rowIndex, target, copy) {
|
|
|
156
168
|
return arrayRow;
|
|
157
169
|
}
|
|
158
170
|
return Object.values(table.data[rowIndex]);
|
|
171
|
+
case 'geojson-table':
|
|
172
|
+
if (table.schema) {
|
|
173
|
+
const arrayRow = target || [];
|
|
174
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
175
|
+
arrayRow[i] = table.features[rowIndex][table.schema.fields[i].name];
|
|
176
|
+
}
|
|
177
|
+
return arrayRow;
|
|
178
|
+
}
|
|
179
|
+
return Object.values(table.features[rowIndex]);
|
|
159
180
|
case 'columnar-table':
|
|
160
181
|
if (table.schema) {
|
|
161
182
|
const arrayRow = target || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-accessors.js","names":["getTableLength","table","shape","data","length","numRows","column","Object","values","Error","getTableNumCols","schema","fields","keys","numCols","getTableCell","rowIndex","columnName","_table$data$getChildA","columnIndex","getTableColumnIndex","arrowColumnIndex","findIndex","field","name","getChildAt","get","getTableCellAt","_table$data$getChildA2","getTableColumnName","getTableRowShape","_table$schema","undefined","_table$schema2","_table$schema2$fields","concat","getTableRowAsObject","target","copy","fromEntries","entries","objectRow","i","row","getTableRowAsArray","Array","from","arrayRow","makeArrayRowTable","makeObjectRowTable","makeColumnarTable","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","arguments"],"sources":["../../../../../src/lib/table/simple-table/table-accessors.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable no-else-return */\n\nimport {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';\n\n/**\n * Returns the length of the table (i.e. the number of rows)\n */\nexport function getTableLength(table: Table): number {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n case 'geojson-row-table':\n return table.data.length;\n\n case 'arrow-table':\n return table.data.numRows;\n\n case 'columnar-table':\n for (const column of Object.values(table.data)) {\n return column.length || 0;\n }\n return 0;\n default:\n throw new Error('table');\n }\n}\n\n/**\n * Returns the number of columns in the table\n * @throws Fails to deduce number of columns if the table has no schema and is empty\n */\nexport function getTableNumCols(table: Table): number {\n if (table.schema) {\n return table.schema.fields.length;\n }\n if (getTableLength(table) === 0) {\n throw new Error('empty table');\n }\n switch (table.shape) {\n case 'array-row-table':\n return table.data[0].length;\n case 'object-row-table':\n case 'geojson-row-table':\n return Object.keys(table.data[0]).length;\n\n case 'columnar-table':\n return Object.keys(table.data).length;\n\n case 'arrow-table':\n return table.data.numCols;\n default:\n throw new Error('table');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCell(table: Table, rowIndex: number, columnName: string): unknown {\n switch (table.shape) {\n case 'array-row-table':\n const columnIndex = getTableColumnIndex(table, columnName);\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n return table.data[rowIndex][columnName];\n\n case 'columnar-table':\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowColumnIndex = table.data.schema.fields.findIndex(\n (field) => field.name === columnName\n );\n return table.data.getChildAt(arrowColumnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCellAt(table: Table, rowIndex: number, columnIndex: number): unknown {\n switch (table.shape) {\n case 'array-row-table':\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n let columnName = getTableColumnName(table, columnIndex);\n return table.data[rowIndex][columnName];\n\n case 'columnar-table':\n columnName = getTableColumnName(table, columnIndex);\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n return table.data.getChildAt(columnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Deduce the table row shape */\nexport function getTableRowShape(table: Table): 'array-row-table' | 'object-row-table' {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.shape;\n\n case 'geojson-row-table':\n return 'object-row-table';\n\n case 'columnar-table':\n default:\n throw new Error('Not a row table');\n }\n}\n\n/** Get the index of a named table column. Requires the table to have a schema */\nexport function getTableColumnIndex(table: Table, columnName: string): number {\n const columnIndex = table.schema?.fields.findIndex((field) => field.name === columnName);\n if (columnIndex === undefined) {\n throw new Error(columnName);\n }\n return columnIndex;\n}\n\n/** Get the name of a table column by index. Requires the table to have a schema */\nexport function getTableColumnName(table: Table, columnIndex: number): string {\n const columnName = table.schema?.fields[columnIndex]?.name;\n if (!columnName) {\n throw new Error(`${columnIndex}`);\n }\n return columnName;\n}\n\n/**\n * Returns one row of the table in object format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsObject(\n table: Table,\n rowIndex: number,\n target?: {[columnName: string]: unknown},\n copy?: 'copy'\n): {[columnName: string]: unknown} {\n switch (table.shape) {\n case 'object-row-table':\n return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];\n\n case 'array-row-table':\n case 'geojson-row-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'columnar-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] =\n table.data[table.schema.fields[i].name][rowIndex];\n }\n return objectRow;\n } else {\n // eslint-disable-line no-else-return\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (const [name, column] of Object.entries(table.data)) {\n objectRow[name] = column[rowIndex];\n }\n return objectRow;\n }\n\n case 'arrow-table':\n const objectRow: {[columnName: string]: unknown} = target || {};\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];\n }\n return objectRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/**\n * Returns one row of the table in array format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance.\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsArray(\n table: Table,\n rowIndex: number,\n target?: unknown[],\n copy?: 'copy'\n): unknown[] {\n switch (table.shape) {\n case 'array-row-table':\n return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.data[rowIndex]);\n\n case 'columnar-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];\n }\n return arrayRow;\n } else {\n // eslint-disable-line no-else-return\n const arrayRow: unknown[] = target || [];\n let i = 0;\n for (const column of Object.values(table.data)) {\n arrayRow[i] = column[rowIndex];\n i++;\n }\n return arrayRow;\n }\n\n case 'arrow-table':\n const arrayRow: unknown[] = target || [];\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n arrayRow[i] = row?.[schema.fields[i].name];\n }\n return arrayRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeColumnarTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n// Row Iterators\n\n/**\n * Iterate over table rows\n * @param table\n * @param shape\n */\nexport function* makeRowIterator(\n table: Table,\n shape: 'object-row-table' | 'array-row-table'\n): Iterable<unknown[] | {[key: string]: unknown}> {\n switch (shape) {\n case 'array-row-table':\n yield* makeArrayRowIterator(table);\n break;\n case 'object-row-table':\n yield* makeObjectRowIterator(table);\n break;\n\n default:\n throw new Error(`Unknown row type ${shape}`);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding array rows\n * @param table\n * @param shape\n */\nexport function* makeArrayRowIterator(table: Table, target: unknown[] = []): Iterable<unknown[]> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsArray(table, rowIndex, target);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding object rows\n * @param table\n * @param shape\n */\nexport function* makeObjectRowIterator(\n table: Table,\n target: {[key: string]: unknown} = {}\n): Iterable<{[key: string]: unknown}> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsObject(table, rowIndex, target);\n }\n}\n"],"mappings":"AASA,OAAO,SAASA,cAAcA,CAACC,KAAY,EAAU;EACnD,QAAQA,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;IACtB,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;MACtB,OAAOD,KAAK,CAACE,IAAI,CAACC,MAAM;IAE1B,KAAK,aAAa;MAChB,OAAOH,KAAK,CAACE,IAAI,CAACE,OAAO;IAE3B,KAAK,gBAAgB;MACnB,KAAK,MAAMC,MAAM,IAAIC,MAAM,CAACC,MAAM,CAACP,KAAK,CAACE,IAAI,CAAC,EAAE;QAC9C,OAAOG,MAAM,CAACF,MAAM,IAAI,CAAC;MAC3B;MACA,OAAO,CAAC;IACV;MACE,MAAM,IAAIK,KAAK,CAAC,OAAO,CAAC;EAC5B;AACF;AAMA,OAAO,SAASC,eAAeA,CAACT,KAAY,EAAU;EACpD,IAAIA,KAAK,CAACU,MAAM,EAAE;IAChB,OAAOV,KAAK,CAACU,MAAM,CAACC,MAAM,CAACR,MAAM;EACnC;EACA,IAAIJ,cAAc,CAACC,KAAK,CAAC,KAAK,CAAC,EAAE;IAC/B,MAAM,IAAIQ,KAAK,CAAC,aAAa,CAAC;EAChC;EACA,QAAQR,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;MACpB,OAAOD,KAAK,CAACE,IAAI,CAAC,CAAC,CAAC,CAACC,MAAM;IAC7B,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;MACtB,OAAOG,MAAM,CAACM,IAAI,CAACZ,KAAK,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM;IAE1C,KAAK,gBAAgB;MACnB,OAAOG,MAAM,CAACM,IAAI,CAACZ,KAAK,CAACE,IAAI,CAAC,CAACC,MAAM;IAEvC,KAAK,aAAa;MAChB,OAAOH,KAAK,CAACE,IAAI,CAACW,OAAO;IAC3B;MACE,MAAM,IAAIL,KAAK,CAAC,OAAO,CAAC;EAC5B;AACF;AAGA,OAAO,SAASM,YAAYA,CAACd,KAAY,EAAEe,QAAgB,EAAEC,UAAkB,EAAW;EAAA,IAAAC,qBAAA;EACxF,QAAQjB,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;MACpB,MAAMiB,WAAW,GAAGC,mBAAmB,CAACnB,KAAK,EAAEgB,UAAU,CAAC;MAC1D,OAAOhB,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAACG,WAAW,CAAC;IAE1C,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;MACtB,OAAOlB,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAACC,UAAU,CAAC;IAEzC,KAAK,gBAAgB;MACnB,MAAMX,MAAM,GAAGL,KAAK,CAACE,IAAI,CAACc,UAAU,CAAC;MACrC,OAAOX,MAAM,CAACU,QAAQ,CAAC;IAEzB,KAAK,aAAa;MAChB,MAAMK,gBAAgB,GAAGpB,KAAK,CAACE,IAAI,CAACQ,MAAM,CAACC,MAAM,CAACU,SAAS,CACxDC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAKP,UAC5B,CAAC;MACD,QAAAC,qBAAA,GAAOjB,KAAK,CAACE,IAAI,CAACsB,UAAU,CAACJ,gBAAgB,CAAC,cAAAH,qBAAA,uBAAvCA,qBAAA,CAAyCQ,GAAG,CAACV,QAAQ,CAAC;IAE/D;MACE,MAAM,IAAIP,KAAK,CAAC,MAAM,CAAC;EAC3B;AACF;AAGA,OAAO,SAASkB,cAAcA,CAAC1B,KAAY,EAAEe,QAAgB,EAAEG,WAAmB,EAAW;EAAA,IAAAS,sBAAA;EAC3F,QAAQ3B,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;MACpB,OAAOD,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAACG,WAAW,CAAC;IAE1C,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;MACtB,IAAIF,UAAU,GAAGY,kBAAkB,CAAC5B,KAAK,EAAEkB,WAAW,CAAC;MACvD,OAAOlB,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAACC,UAAU,CAAC;IAEzC,KAAK,gBAAgB;MACnBA,UAAU,GAAGY,kBAAkB,CAAC5B,KAAK,EAAEkB,WAAW,CAAC;MACnD,MAAMb,MAAM,GAAGL,KAAK,CAACE,IAAI,CAACc,UAAU,CAAC;MACrC,OAAOX,MAAM,CAACU,QAAQ,CAAC;IAEzB,KAAK,aAAa;MAChB,QAAAY,sBAAA,GAAO3B,KAAK,CAACE,IAAI,CAACsB,UAAU,CAACN,WAAW,CAAC,cAAAS,sBAAA,uBAAlCA,sBAAA,CAAoCF,GAAG,CAACV,QAAQ,CAAC;IAE1D;MACE,MAAM,IAAIP,KAAK,CAAC,MAAM,CAAC;EAC3B;AACF;AAGA,OAAO,SAASqB,gBAAgBA,CAAC7B,KAAY,EAA0C;EACrF,QAAQA,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;IACtB,KAAK,kBAAkB;MACrB,OAAOD,KAAK,CAACC,KAAK;IAEpB,KAAK,mBAAmB;MACtB,OAAO,kBAAkB;IAE3B,KAAK,gBAAgB;IACrB;MACE,MAAM,IAAIO,KAAK,CAAC,iBAAiB,CAAC;EACtC;AACF;AAGA,OAAO,SAASW,mBAAmBA,CAACnB,KAAY,EAAEgB,UAAkB,EAAU;EAAA,IAAAc,aAAA;EAC5E,MAAMZ,WAAW,IAAAY,aAAA,GAAG9B,KAAK,CAACU,MAAM,cAAAoB,aAAA,uBAAZA,aAAA,CAAcnB,MAAM,CAACU,SAAS,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAKP,UAAU,CAAC;EACxF,IAAIE,WAAW,KAAKa,SAAS,EAAE;IAC7B,MAAM,IAAIvB,KAAK,CAACQ,UAAU,CAAC;EAC7B;EACA,OAAOE,WAAW;AACpB;AAGA,OAAO,SAASU,kBAAkBA,CAAC5B,KAAY,EAAEkB,WAAmB,EAAU;EAAA,IAAAc,cAAA,EAAAC,qBAAA;EAC5E,MAAMjB,UAAU,IAAAgB,cAAA,GAAGhC,KAAK,CAACU,MAAM,cAAAsB,cAAA,wBAAAC,qBAAA,GAAZD,cAAA,CAAcrB,MAAM,CAACO,WAAW,CAAC,cAAAe,qBAAA,uBAAjCA,qBAAA,CAAmCV,IAAI;EAC1D,IAAI,CAACP,UAAU,EAAE;IACf,MAAM,IAAIR,KAAK,IAAA0B,MAAA,CAAIhB,WAAW,CAAE,CAAC;EACnC;EACA,OAAOF,UAAU;AACnB;AAQA,OAAO,SAASmB,mBAAmBA,CACjCnC,KAAY,EACZe,QAAgB,EAChBqB,MAAwC,EACxCC,IAAa,EACoB;EACjC,QAAQrC,KAAK,CAACC,KAAK;IACjB,KAAK,kBAAkB;MACrB,OAAOoC,IAAI,GAAG/B,MAAM,CAACgC,WAAW,CAAChC,MAAM,CAACiC,OAAO,CAACvC,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAAC,CAAC,GAAGf,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC;IAE/F,KAAK,iBAAiB;IACtB,KAAK,mBAAmB;MACtB,IAAIf,KAAK,CAACU,MAAM,EAAE;QAChB,MAAM8B,SAA0C,GAAGJ,MAAM,IAAI,CAAC,CAAC;QAC/D,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzC,KAAK,CAACU,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;UACnDD,SAAS,CAACxC,KAAK,CAACU,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC,GAAGvB,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAAC0B,CAAC,CAAC;QAClE;QACA,OAAOD,SAAS;MAClB;MACA,MAAM,IAAIhC,KAAK,CAAC,WAAW,CAAC;IAE9B,KAAK,gBAAgB;MACnB,IAAIR,KAAK,CAACU,MAAM,EAAE;QAChB,MAAM8B,SAA0C,GAAGJ,MAAM,IAAI,CAAC,CAAC;QAC/D,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzC,KAAK,CAACU,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;UACnDD,SAAS,CAACxC,KAAK,CAACU,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC,GACpCvB,KAAK,CAACE,IAAI,CAACF,KAAK,CAACU,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC,CAACR,QAAQ,CAAC;QACrD;QACA,OAAOyB,SAAS;MAClB,CAAC,MAAM;QAEL,MAAMA,SAA0C,GAAGJ,MAAM,IAAI,CAAC,CAAC;QAC/D,KAAK,MAAM,CAACb,IAAI,EAAElB,MAAM,CAAC,IAAIC,MAAM,CAACiC,OAAO,CAACvC,KAAK,CAACE,IAAI,CAAC,EAAE;UACvDsC,SAAS,CAACjB,IAAI,CAAC,GAAGlB,MAAM,CAACU,QAAQ,CAAC;QACpC;QACA,OAAOyB,SAAS;MAClB;IAEF,KAAK,aAAa;MAChB,MAAMA,SAA0C,GAAGJ,MAAM,IAAI,CAAC,CAAC;MAC/D,MAAMM,GAAG,GAAG1C,KAAK,CAACE,IAAI,CAACuB,GAAG,CAACV,QAAQ,CAAC;MACpC,MAAML,MAAM,GAAGV,KAAK,CAACE,IAAI,CAACQ,MAAM;MAChC,KAAK,IAAI+B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/B,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;QAC7CD,SAAS,CAAC9B,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC,GAAGmB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGhC,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC;MACjE;MACA,OAAOiB,SAAS;IAElB;MACE,MAAM,IAAIhC,KAAK,CAAC,OAAO,CAAC;EAC5B;AACF;AAQA,OAAO,SAASmC,kBAAkBA,CAChC3C,KAAY,EACZe,QAAgB,EAChBqB,MAAkB,EAClBC,IAAa,EACF;EACX,QAAQrC,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;MACpB,OAAOoC,IAAI,GAAGO,KAAK,CAACC,IAAI,CAAC7C,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAAC,GAAGf,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC;IAEvE,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;MACtB,IAAIf,KAAK,CAACU,MAAM,EAAE;QAChB,MAAMoC,QAAmB,GAAGV,MAAM,IAAI,EAAE;QACxC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzC,KAAK,CAACU,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;UACnDK,QAAQ,CAACL,CAAC,CAAC,GAAGzC,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAACf,KAAK,CAACU,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC;QACjE;QACA,OAAOuB,QAAQ;MACjB;MAEA,OAAOxC,MAAM,CAACC,MAAM,CAACP,KAAK,CAACE,IAAI,CAACa,QAAQ,CAAC,CAAC;IAE5C,KAAK,gBAAgB;MACnB,IAAIf,KAAK,CAACU,MAAM,EAAE;QAChB,MAAMoC,QAAmB,GAAGV,MAAM,IAAI,EAAE;QACxC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzC,KAAK,CAACU,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;UACnDK,QAAQ,CAACL,CAAC,CAAC,GAAGzC,KAAK,CAACE,IAAI,CAACF,KAAK,CAACU,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC,CAACR,QAAQ,CAAC;QACjE;QACA,OAAO+B,QAAQ;MACjB,CAAC,MAAM;QAEL,MAAMA,QAAmB,GAAGV,MAAM,IAAI,EAAE;QACxC,IAAIK,CAAC,GAAG,CAAC;QACT,KAAK,MAAMpC,MAAM,IAAIC,MAAM,CAACC,MAAM,CAACP,KAAK,CAACE,IAAI,CAAC,EAAE;UAC9C4C,QAAQ,CAACL,CAAC,CAAC,GAAGpC,MAAM,CAACU,QAAQ,CAAC;UAC9B0B,CAAC,EAAE;QACL;QACA,OAAOK,QAAQ;MACjB;IAEF,KAAK,aAAa;MAChB,MAAMA,QAAmB,GAAGV,MAAM,IAAI,EAAE;MACxC,MAAMM,GAAG,GAAG1C,KAAK,CAACE,IAAI,CAACuB,GAAG,CAACV,QAAQ,CAAC;MACpC,MAAML,MAAM,GAAGV,KAAK,CAACE,IAAI,CAACQ,MAAM;MAChC,KAAK,IAAI+B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/B,MAAM,CAACC,MAAM,CAACR,MAAM,EAAEsC,CAAC,EAAE,EAAE;QAC7CK,QAAQ,CAACL,CAAC,CAAC,GAAGC,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGhC,MAAM,CAACC,MAAM,CAAC8B,CAAC,CAAC,CAAClB,IAAI,CAAC;MAC5C;MACA,OAAOuB,QAAQ;IAEjB;MACE,MAAM,IAAItC,KAAK,CAAC,OAAO,CAAC;EAC5B;AACF;AAGA,OAAO,SAASuC,iBAAiBA,CAAC/C,KAAY,EAAiB;EAC7D,IAAIA,KAAK,CAACC,KAAK,KAAK,iBAAiB,EAAE;IACrC,OAAOD,KAAK;EACd;EACA,MAAMG,MAAM,GAAGJ,cAAc,CAACC,KAAK,CAAC;EACpC,MAAME,IAAI,GAAG,IAAI0C,KAAK,CAAYzC,MAAM,CAAC;EACzC,KAAK,IAAIY,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGZ,MAAM,EAAEY,QAAQ,EAAE,EAAE;IACpDb,IAAI,CAACa,QAAQ,CAAC,GAAG4B,kBAAkB,CAAC3C,KAAK,EAAEe,QAAQ,CAAC;EACtD;EACA,OAAO;IACLd,KAAK,EAAE,iBAAiB;IACxBS,MAAM,EAAEV,KAAK,CAACU,MAAM;IACpBR;EACF,CAAC;AACH;AAGA,OAAO,SAAS8C,kBAAkBA,CAAChD,KAAY,EAAkB;EAC/D,IAAIA,KAAK,CAACC,KAAK,KAAK,kBAAkB,EAAE;IACtC,OAAOD,KAAK;EACd;EACA,MAAMG,MAAM,GAAGJ,cAAc,CAACC,KAAK,CAAC;EACpC,MAAME,IAAI,GAAG,IAAI0C,KAAK,CAA2BzC,MAAM,CAAC;EACxD,KAAK,IAAIY,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGZ,MAAM,EAAEY,QAAQ,EAAE,EAAE;IACpDb,IAAI,CAACa,QAAQ,CAAC,GAAGoB,mBAAmB,CAACnC,KAAK,EAAEe,QAAQ,CAAC;EACvD;EACA,OAAO;IACLd,KAAK,EAAE,kBAAkB;IACzBS,MAAM,EAAEV,KAAK,CAACU,MAAM;IACpBR;EACF,CAAC;AACH;AAGA,OAAO,SAAS+C,iBAAiBA,CAACjD,KAAY,EAAkB;EAC9D,IAAIA,KAAK,CAACC,KAAK,KAAK,kBAAkB,EAAE;IACtC,OAAOD,KAAK;EACd;EACA,MAAMG,MAAM,GAAGJ,cAAc,CAACC,KAAK,CAAC;EACpC,MAAME,IAAI,GAAG,IAAI0C,KAAK,CAA2BzC,MAAM,CAAC;EACxD,KAAK,IAAIY,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGZ,MAAM,EAAEY,QAAQ,EAAE,EAAE;IACpDb,IAAI,CAACa,QAAQ,CAAC,GAAGoB,mBAAmB,CAACnC,KAAK,EAAEe,QAAQ,CAAC;EACvD;EACA,OAAO;IACLd,KAAK,EAAE,kBAAkB;IACzBS,MAAM,EAAEV,KAAK,CAACU,MAAM;IACpBR;EACF,CAAC;AACH;AASA,OAAO,UAAUgD,eAAeA,CAC9BlD,KAAY,EACZC,KAA6C,EACG;EAChD,QAAQA,KAAK;IACX,KAAK,iBAAiB;MACpB,OAAOkD,oBAAoB,CAACnD,KAAK,CAAC;MAClC;IACF,KAAK,kBAAkB;MACrB,OAAOoD,qBAAqB,CAACpD,KAAK,CAAC;MACnC;IAEF;MACE,MAAM,IAAIQ,KAAK,qBAAA0B,MAAA,CAAqBjC,KAAK,CAAE,CAAC;EAChD;AACF;AAOA,OAAO,SAAUkD,oBAAoBA,CAACnD,KAAY;EAAA,IAAEoC,MAAiB,GAAAiB,SAAA,CAAAlD,MAAA,QAAAkD,SAAA,QAAAtB,SAAA,GAAAsB,SAAA,MAAG,EAAE;EAAA,oBAAuB;IAC/F,MAAMlD,MAAM,GAAGJ,cAAc,CAACC,KAAK,CAAC;IACpC,KAAK,IAAIe,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGZ,MAAM,EAAEY,QAAQ,EAAE,EAAE;MACpD,MAAM4B,kBAAkB,CAAC3C,KAAK,EAAEe,QAAQ,EAAEqB,MAAM,CAAC;IACnD;EACF,CAAC;AAAA;AAOD,OAAO,SAAUgB,qBAAqBA,CACpCpD,KAAY;EAAA,IACZoC,MAAgC,GAAAiB,SAAA,CAAAlD,MAAA,QAAAkD,SAAA,QAAAtB,SAAA,GAAAsB,SAAA,MAAG,CAAC,CAAC;EAAA,oBACD;IACpC,MAAMlD,MAAM,GAAGJ,cAAc,CAACC,KAAK,CAAC;IACpC,KAAK,IAAIe,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGZ,MAAM,EAAEY,QAAQ,EAAE,EAAE;MACpD,MAAMoB,mBAAmB,CAACnC,KAAK,EAAEe,QAAQ,EAAEqB,MAAM,CAAC;IACpD;EACF,CAAC;AAAA"}
|
|
1
|
+
{"version":3,"file":"table-accessors.js","names":["getTableLength","table","shape","data","length","features","numRows","column","Object","values","Error","getTableNumCols","schema","fields","keys","numCols","getTableCell","rowIndex","columnName","_table$data$getChildA","columnIndex","getTableColumnIndex","arrowColumnIndex","findIndex","field","name","getChildAt","get","getTableCellAt","_table$data$getChildA2","columnName1","getTableColumnName","columnName2","columnName3","getTableRowShape","_table$schema","undefined","_table$schema2","_table$schema2$fields","concat","getTableRowAsObject","target","copy","fromEntries","entries","objectRow","i","row","getTableRowAsArray","Array","from","arrayRow","makeArrayRowTable","makeObjectRowTable","makeColumnarTable","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","arguments"],"sources":["../../../../../src/lib/table/simple-table/table-accessors.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable no-else-return */\n\nimport {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';\n\n/**\n * Returns the length of the table (i.e. the number of rows)\n */\nexport function getTableLength(table: Table): number {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.data.length;\n\n case 'geojson-table':\n return table.features.length;\n\n case 'arrow-table':\n return table.data.numRows;\n\n case 'columnar-table':\n for (const column of Object.values(table.data)) {\n return column.length || 0;\n }\n return 0;\n default:\n throw new Error('table');\n }\n}\n\n/**\n * Returns the number of columns in the table\n * @throws Fails to deduce number of columns if the table has no schema and is empty\n */\nexport function getTableNumCols(table: Table): number {\n if (table.schema) {\n return table.schema.fields.length;\n }\n if (getTableLength(table) === 0) {\n throw new Error('empty table');\n }\n switch (table.shape) {\n case 'array-row-table':\n return table.data[0].length;\n case 'object-row-table':\n return Object.keys(table.data[0]).length;\n case 'geojson-table':\n return Object.keys(table.features[0]).length;\n case 'columnar-table':\n return Object.keys(table.data).length;\n case 'arrow-table':\n return table.data.numCols;\n default:\n throw new Error('table');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCell(table: Table, rowIndex: number, columnName: string): unknown {\n switch (table.shape) {\n case 'array-row-table':\n const columnIndex = getTableColumnIndex(table, columnName);\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n return table.data[rowIndex][columnName];\n\n case 'geojson-table':\n return table.features[rowIndex][columnName];\n\n case 'columnar-table':\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowColumnIndex = table.data.schema.fields.findIndex(\n (field) => field.name === columnName\n );\n return table.data.getChildAt(arrowColumnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCellAt(table: Table, rowIndex: number, columnIndex: number): unknown {\n switch (table.shape) {\n case 'array-row-table':\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n const columnName1 = getTableColumnName(table, columnIndex);\n return table.data[rowIndex][columnName1];\n\n case 'geojson-table':\n const columnName2 = getTableColumnName(table, columnIndex);\n return table.features[rowIndex][columnName2];\n\n case 'columnar-table':\n const columnName3 = getTableColumnName(table, columnIndex);\n const column = table.data[columnName3];\n return column[rowIndex];\n\n case 'arrow-table':\n return table.data.getChildAt(columnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Deduce the table row shape */\nexport function getTableRowShape(table: Table): 'array-row-table' | 'object-row-table' {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.shape;\n\n case 'geojson-table':\n // TODO - this is not correct, geojson-table is not a row table\n return 'object-row-table';\n\n case 'columnar-table':\n default:\n throw new Error('Not a row table');\n }\n}\n\n/** Get the index of a named table column. Requires the table to have a schema */\nexport function getTableColumnIndex(table: Table, columnName: string): number {\n const columnIndex = table.schema?.fields.findIndex((field) => field.name === columnName);\n if (columnIndex === undefined) {\n throw new Error(columnName);\n }\n return columnIndex;\n}\n\n/** Get the name of a table column by index. Requires the table to have a schema */\nexport function getTableColumnName(table: Table, columnIndex: number): string {\n const columnName = table.schema?.fields[columnIndex]?.name;\n if (!columnName) {\n throw new Error(`${columnIndex}`);\n }\n return columnName;\n}\n\n/**\n * Returns one row of the table in object format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsObject(\n table: Table,\n rowIndex: number,\n target?: {[columnName: string]: unknown},\n copy?: 'copy'\n): {[columnName: string]: unknown} {\n switch (table.shape) {\n case 'object-row-table':\n return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];\n\n case 'array-row-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'geojson-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.features[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'columnar-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] =\n table.data[table.schema.fields[i].name][rowIndex];\n }\n return objectRow;\n } else {\n // eslint-disable-line no-else-return\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (const [name, column] of Object.entries(table.data)) {\n objectRow[name] = column[rowIndex];\n }\n return objectRow;\n }\n\n case 'arrow-table':\n const objectRow: {[columnName: string]: unknown} = target || {};\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];\n }\n return objectRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/**\n * Returns one row of the table in array format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance.\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsArray(\n table: Table,\n rowIndex: number,\n target?: unknown[],\n copy?: 'copy'\n): unknown[] {\n switch (table.shape) {\n case 'array-row-table':\n return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];\n\n case 'object-row-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.data[rowIndex]);\n\n case 'geojson-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.features[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.features[rowIndex]);\n\n case 'columnar-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];\n }\n return arrayRow;\n } else {\n // eslint-disable-line no-else-return\n const arrayRow: unknown[] = target || [];\n let i = 0;\n for (const column of Object.values(table.data)) {\n arrayRow[i] = column[rowIndex];\n i++;\n }\n return arrayRow;\n }\n\n case 'arrow-table':\n const arrayRow: unknown[] = target || [];\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n arrayRow[i] = row?.[schema.fields[i].name];\n }\n return arrayRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeColumnarTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n// Row Iterators\n\n/**\n * Iterate over table rows\n * @param table\n * @param shape\n */\nexport function* makeRowIterator(\n table: Table,\n shape: 'object-row-table' | 'array-row-table'\n): Iterable<unknown[] | {[key: string]: unknown}> {\n switch (shape) {\n case 'array-row-table':\n yield* makeArrayRowIterator(table);\n break;\n case 'object-row-table':\n yield* makeObjectRowIterator(table);\n break;\n\n default:\n throw new Error(`Unknown row type ${shape}`);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding array rows\n * @param table\n * @param shape\n */\nexport function* makeArrayRowIterator(table: Table, target: unknown[] = []): Iterable<unknown[]> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsArray(table, rowIndex, target);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding object rows\n * @param table\n * @param shape\n */\nexport function* makeObjectRowIterator(\n table: Table,\n target: {[key: string]: unknown} = {}\n): Iterable<{[key: string]: unknown}> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsObject(table, rowIndex, target);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","names":[],"sources":["../../../src/types/batch.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Schema} from './schema';\nimport type {RecordBatch} from 'apache-arrow';\n\n/**\n * A batch of data (or metadata/schema), from a streaming loader\n * @see parseInBatches()\n * @see loadInBatches()\n */\nexport type Batch = {\n /** A batch can contain metadata, data, or in case of unstructured data (JSON) */\n batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';\n /** A string identifying the shape of data in this batch (table, etc) */\n shape: string;\n /** Schema of the data in this batch */\n schema?: Schema;\n /** Data in this batch */\n data: unknown;\n /** If this is an arrow table. @deprecated Use `data` */\n recordBatch?: RecordBatch;\n /** Length of data in this batch */\n length: number;\n\n /** A count of batches received */\n batch?: number;\n\n /** A count of batches received */\n count?: number;\n\n /** Bytes used so far */\n bytesUsed?: number;\n /** cursor is the */\n cursor?: number;\n\n /** MIME type of the data generating this batch */\n mimeType?: string;\n\n /** Any other data */\n [key: string]: unknown;\n};\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-table.js","names":[],"sources":["../../../src/types/category-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table as ApacheArrowTable
|
|
1
|
+
{"version":3,"file":"category-table.js","names":[],"sources":["../../../src/types/category-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table as ApacheArrowTable} from 'apache-arrow';\nimport type {Schema} from './schema';\nimport type {Batch} from './batch';\nimport type {Feature} from './category-gis';\n\n// Idea was to just import types, but it seems\n// Seems this triggers more bundling and build issues than it is worth...\n// import type {Table as ApacheArrowTable, RecordBatch} from 'apache-arrow';\n// type ApacheArrowTable = any;\n// type RecordBatch = any;\n\n/** A general table */\nexport type Table =\n | RowTable\n | ArrayRowTable\n | ObjectRowTable\n | GeoJSONTable\n | ColumnarTable\n | ArrowTable;\n\n/** A table organized as an array of rows */\nexport type RowTable = ArrayRowTable | ObjectRowTable | GeoJSONTable;\n\n/** A table organized as an array of rows, each row is an array of values */\nexport type ArrayRowTable = {\n shape: 'array-row-table';\n schema?: Schema;\n data: any[][];\n};\n\n/** A table organized as an array of rows, each row is an object mapping columns to values */\nexport type ObjectRowTable = {\n shape: 'object-row-table';\n schema?: Schema;\n data: {[columnName: string]: any}[];\n};\n\n/**\n * A table organized as an array of rows, each row is a GeoJSON Feature\n * @note For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data`\n */\nexport type GeoJSONTable = {\n shape: 'geojson-table';\n schema?: Schema;\n /** For compatibility with GeoJSON, the type field must always be set to `FeatureCollection` */\n type: 'FeatureCollection';\n /** For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data` */\n features: Feature[];\n};\n\n/** A table organized as a map of columns, each column is an array of value */\nexport type ColumnarTable = {\n shape: 'columnar-table';\n schema?: Schema;\n data: {[columnName: string]: ArrayLike<unknown>};\n};\n\n/** A table organized as an Apache Arrow table */\nexport type ArrowTable = {\n shape: 'arrow-table';\n schema?: Schema;\n data: ApacheArrowTable;\n};\n\n/** A collection of tables */\nexport type Tables<TableType = Table> = {\n shape: 'tables';\n tables: {name: string; table: TableType}[];\n};\n\n// Batches\n\n/** Batch for a general table */\nexport type TableBatch =\n | ArrayRowTableBatch\n | ObjectRowTableBatch\n | GeoJSONTableBatch\n | ColumnarTableBatch\n | ArrowTableBatch;\n\n/** Batch for a table organized as an array of rows, each row is an array of values */\nexport type ArrayRowTableBatch = Batch & {\n shape: 'array-row-table';\n schema?: Schema;\n schemaType?: 'explicit' | 'deduced';\n data: any[][];\n length: number;\n};\n\n/** Batch for a table organized as an array of rows, each row is an object mapping columns to values */\nexport type ObjectRowTableBatch = Batch & {\n shape: 'object-row-table';\n schema?: Schema;\n schemaType?: 'explicit' | 'deduced';\n data: {[columnName: string]: any}[];\n length: number;\n};\n\n/** Batch for a table organized as an array of rows, each row is an array of values */\nexport type GeoJSONTableBatch = Batch & {\n shape: 'geojson-table';\n schema?: Schema;\n schemaType?: 'explicit' | 'deduced';\n type: 'FeatureCollection';\n features: Feature[];\n length: number;\n};\n\n/** Batch for a table organized as a map of columns, each column is an array of value */\nexport type ColumnarTableBatch = Batch & {\n shape: 'columnar-table';\n schemaType?: 'explicit' | 'deduced';\n schema?: Schema;\n data: {[columnName: string]: ArrayLike<unknown>};\n length: number;\n};\n\n/** Batch for a table organized as an Apache Arrow table */\nexport type ArrowTableBatch = Batch & {\n shape: 'arrow-table';\n schemaType?: 'explicit' | 'deduced';\n schema?: Schema;\n data: ApacheArrowTable;\n // recordBatch: RecordBatch;\n length: number;\n};\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../src/types/schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n\
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../src/types/schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/** For dictionary type */\nexport type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';\n\n/** ArrowLike DataType class */\nexport type DataType =\n | 'null'\n // Primitive types\n | 'bool'\n | 'int'\n | 'int8'\n | 'int16'\n | 'int32'\n | 'int64'\n | 'uint8'\n | 'uint16'\n | 'uint32'\n | 'uint64'\n | 'float'\n | 'float16'\n | 'float32'\n | 'float64'\n | 'binary'\n | 'utf8'\n | 'date-day'\n | 'date-millisecond'\n | 'time-second'\n | 'time-millisecond'\n | 'time-microsecond'\n | 'time-nanosecond'\n | 'timestamp-second'\n | 'timestamp-millisecond'\n | 'timestamp-microsecond'\n | 'timestamp-nanosecond'\n | 'interval-daytime'\n | 'interval-yearmonth'\n // Composite types\n | {type: 'list'; children: Field[]} // one child only\n | {type: 'struct'; children: Field[]}\n | {\n type: 'sparse-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {\n type: 'dense-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {type: 'fixed-size-binary'; byteWidth: number}\n | {type: 'fixed-size-list'; listSize: number; children: Field[]}\n | {type: 'map'; keysSorted: boolean; children: Field[]} // Field is \"struct\"\n | {type: 'dictionary'; id: number; indices: KeyType; dictionary: DataType; isOrdered: boolean};\n// TODO - unions etc\n\n/**\n * SchemaMetadata\n */\nexport type SchemaMetadata = Record<string, string>;\nexport type FieldMetadata = Record<string, string>;\n\nexport type Field = {\n name: string;\n type: DataType;\n nullable?: boolean;\n metadata?: FieldMetadata;\n};\n\n/**\n * `Schema` type that that can hold all data required by an Arrow Schema\n * but is fully serializable. Helper functions make it easy to convert to and from arrow schemas\n * https://loaders.gl/arrowjs/docs/api-reference/schema\n */\nexport type Schema = {\n fields: Field[];\n metadata: SchemaMetadata;\n};\n"],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type { TypedArray, BigTypedArray, TypedArrayConstructor, BigTypedArrayConstructor, NumberArray, ArrayType, AnyArray } from './types/types';
|
|
2
|
-
export type { Schema, Field, DataType,
|
|
3
|
-
export type {
|
|
4
|
-
export type {
|
|
2
|
+
export type { Schema, Field, DataType, SchemaMetadata, FieldMetadata } from './types/schema';
|
|
3
|
+
export type { Batch } from './types/batch';
|
|
4
|
+
export type { Table, RowTable, ArrayRowTable, ObjectRowTable, GeoJSONTable, ColumnarTable, ArrowTable, Tables } from './types/category-table';
|
|
5
|
+
export type { TableBatch, ArrayRowTableBatch, ObjectRowTableBatch, GeoJSONTableBatch, ColumnarTableBatch, ArrowTableBatch } from './types/category-table';
|
|
5
6
|
export { TableBatchBuilder } from './lib/table/batches/table-batch-builder';
|
|
6
7
|
export type { TableBatchAggregator } from './lib/table/batches/table-batch-aggregator';
|
|
7
8
|
export { RowTableBatchAggregator } from './lib/table/batches/row-table-batch-aggregator';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,QAAQ,EACT,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@ export declare class RowTableBatchAggregator implements TableBatchAggregator {
|
|
|
6
6
|
options: TableBatchOptions;
|
|
7
7
|
length: number;
|
|
8
8
|
objectRows: {
|
|
9
|
-
[columnName: string]:
|
|
10
|
-
} | null;
|
|
11
|
-
arrayRows:
|
|
9
|
+
[columnName: string]: unknown;
|
|
10
|
+
}[] | null;
|
|
11
|
+
arrayRows: unknown[][] | null;
|
|
12
12
|
cursor: number;
|
|
13
13
|
private _headers;
|
|
14
14
|
constructor(schema: Schema, options: TableBatchOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-table-batch-aggregator.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/batches/row-table-batch-aggregator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAIjF,qBAAa,uBAAwB,YAAW,oBAAoB;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAE3B,MAAM,EAAE,MAAM,CAAK;IACnB,UAAU,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"row-table-batch-aggregator.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/batches/row-table-batch-aggregator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAIjF,qBAAa,uBAAwB,YAAW,oBAAoB;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAE3B,MAAM,EAAE,MAAM,CAAK;IACnB,UAAU,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,EAAE,GAAG,IAAI,CAAQ;IAC5D,SAAS,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAQ;IACrC,MAAM,EAAE,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IActD,QAAQ,IAAI,MAAM;IAIlB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAmB9C,YAAY,CAAC,GAAG,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBrE,QAAQ,IAAI,UAAU,GAAG,IAAI;CAmB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAoBnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAqBpD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAyBxF;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAwB3F;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,GAAG,kBAAkB,CAcrF;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;GAIG;AAEH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAuDjC;AAED;;;;GAIG;AAEH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CA0DX;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAc7D;AAED,+CAA+C;AAC/C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc/D;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc9D;AAID;;;;GAIG;AACH,wBAAiB,eAAe,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,GAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAYhD;AAED;;;;GAIG;AACH,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAK/F;AAED;;;;GAIG;AACH,wBAAiB,qBAAqB,CACpC,KAAK,EAAE,KAAK,EACZ,MAAM,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAM,GACpC,QAAQ,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAKpC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Schema } from './schema';
|
|
2
|
+
import type { RecordBatch } from 'apache-arrow';
|
|
3
|
+
/**
|
|
4
|
+
* A batch of data (or metadata/schema), from a streaming loader
|
|
5
|
+
* @see parseInBatches()
|
|
6
|
+
* @see loadInBatches()
|
|
7
|
+
*/
|
|
8
|
+
export type Batch = {
|
|
9
|
+
/** A batch can contain metadata, data, or in case of unstructured data (JSON) */
|
|
10
|
+
batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';
|
|
11
|
+
/** A string identifying the shape of data in this batch (table, etc) */
|
|
12
|
+
shape: string;
|
|
13
|
+
/** Schema of the data in this batch */
|
|
14
|
+
schema?: Schema;
|
|
15
|
+
/** Data in this batch */
|
|
16
|
+
data: unknown;
|
|
17
|
+
/** If this is an arrow table. @deprecated Use `data` */
|
|
18
|
+
recordBatch?: RecordBatch;
|
|
19
|
+
/** Length of data in this batch */
|
|
20
|
+
length: number;
|
|
21
|
+
/** A count of batches received */
|
|
22
|
+
batch?: number;
|
|
23
|
+
/** A count of batches received */
|
|
24
|
+
count?: number;
|
|
25
|
+
/** Bytes used so far */
|
|
26
|
+
bytesUsed?: number;
|
|
27
|
+
/** cursor is the */
|
|
28
|
+
cursor?: number;
|
|
29
|
+
/** MIME type of the data generating this batch */
|
|
30
|
+
mimeType?: string;
|
|
31
|
+
/** Any other data */
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/types/batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAC;IACnE,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { Table as ApacheArrowTable
|
|
2
|
-
import type {
|
|
1
|
+
import type { Table as ApacheArrowTable } from 'apache-arrow';
|
|
2
|
+
import type { Schema } from './schema';
|
|
3
|
+
import type { Batch } from './batch';
|
|
3
4
|
import type { Feature } from './category-gis';
|
|
4
5
|
/** A general table */
|
|
5
|
-
export type Table = RowTable | ArrayRowTable | ObjectRowTable |
|
|
6
|
+
export type Table = RowTable | ArrayRowTable | ObjectRowTable | GeoJSONTable | ColumnarTable | ArrowTable;
|
|
6
7
|
/** A table organized as an array of rows */
|
|
7
|
-
export type RowTable = ArrayRowTable | ObjectRowTable |
|
|
8
|
+
export type RowTable = ArrayRowTable | ObjectRowTable | GeoJSONTable;
|
|
8
9
|
/** A table organized as an array of rows, each row is an array of values */
|
|
9
10
|
export type ArrayRowTable = {
|
|
10
11
|
shape: 'array-row-table';
|
|
@@ -19,11 +20,17 @@ export type ObjectRowTable = {
|
|
|
19
20
|
[columnName: string]: any;
|
|
20
21
|
}[];
|
|
21
22
|
};
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* A table organized as an array of rows, each row is a GeoJSON Feature
|
|
25
|
+
* @note For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data`
|
|
26
|
+
*/
|
|
27
|
+
export type GeoJSONTable = {
|
|
28
|
+
shape: 'geojson-table';
|
|
25
29
|
schema?: Schema;
|
|
26
|
-
|
|
30
|
+
/** For compatibility with GeoJSON, the type field must always be set to `FeatureCollection` */
|
|
31
|
+
type: 'FeatureCollection';
|
|
32
|
+
/** For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data` */
|
|
33
|
+
features: Feature[];
|
|
27
34
|
};
|
|
28
35
|
/** A table organized as a map of columns, each column is an array of value */
|
|
29
36
|
export type ColumnarTable = {
|
|
@@ -48,7 +55,7 @@ export type Tables<TableType = Table> = {
|
|
|
48
55
|
}[];
|
|
49
56
|
};
|
|
50
57
|
/** Batch for a general table */
|
|
51
|
-
export type TableBatch = ArrayRowTableBatch | ObjectRowTableBatch |
|
|
58
|
+
export type TableBatch = ArrayRowTableBatch | ObjectRowTableBatch | GeoJSONTableBatch | ColumnarTableBatch | ArrowTableBatch;
|
|
52
59
|
/** Batch for a table organized as an array of rows, each row is an array of values */
|
|
53
60
|
export type ArrayRowTableBatch = Batch & {
|
|
54
61
|
shape: 'array-row-table';
|
|
@@ -68,11 +75,12 @@ export type ObjectRowTableBatch = Batch & {
|
|
|
68
75
|
length: number;
|
|
69
76
|
};
|
|
70
77
|
/** Batch for a table organized as an array of rows, each row is an array of values */
|
|
71
|
-
export type
|
|
72
|
-
shape: 'geojson-
|
|
78
|
+
export type GeoJSONTableBatch = Batch & {
|
|
79
|
+
shape: 'geojson-table';
|
|
73
80
|
schema?: Schema;
|
|
74
81
|
schemaType?: 'explicit' | 'deduced';
|
|
75
|
-
|
|
82
|
+
type: 'FeatureCollection';
|
|
83
|
+
features: Feature[];
|
|
76
84
|
length: number;
|
|
77
85
|
};
|
|
78
86
|
/** Batch for a table organized as a map of columns, each column is an array of value */
|
|
@@ -90,7 +98,7 @@ export type ArrowTableBatch = Batch & {
|
|
|
90
98
|
shape: 'arrow-table';
|
|
91
99
|
schemaType?: 'explicit' | 'deduced';
|
|
92
100
|
schema?: Schema;
|
|
93
|
-
data:
|
|
101
|
+
data: ApacheArrowTable;
|
|
94
102
|
length: number;
|
|
95
103
|
};
|
|
96
104
|
//# sourceMappingURL=category-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-table.d.ts","sourceRoot":"","sources":["../../src/types/category-table.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"category-table.d.ts","sourceRoot":"","sources":["../../src/types/category-table.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAQ5C,sBAAsB;AACtB,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,aAAa,GACb,cAAc,GACd,YAAY,GACZ,aAAa,GACb,UAAU,CAAC;AAEf,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,CAAC;AAErE,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;CACf,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,EAAE,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,IAAI,EAAE,mBAAmB,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;KAAC,CAAC;CAClD,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,MAAM,CAAC,SAAS,GAAG,KAAK,IAAI;IACtC,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAC,EAAE,CAAC;CAC5C,CAAC;AAIF,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,CAAC;AAEpB,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,uGAAuG;AACvG,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG;IACxC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,EAAE,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;KAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG;IACpC,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IAEvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/dist/types/schema.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { RecordBatch } from 'apache-arrow';
|
|
2
1
|
/** For dictionary type */
|
|
3
2
|
export type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';
|
|
4
3
|
/** ArrowLike DataType class */
|
|
@@ -60,18 +59,4 @@ export type Schema = {
|
|
|
60
59
|
fields: Field[];
|
|
61
60
|
metadata: SchemaMetadata;
|
|
62
61
|
};
|
|
63
|
-
export type Batch = {
|
|
64
|
-
batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';
|
|
65
|
-
batch?: number;
|
|
66
|
-
mimeType?: string;
|
|
67
|
-
shape: string;
|
|
68
|
-
data: any;
|
|
69
|
-
recordBatch?: RecordBatch;
|
|
70
|
-
length: number;
|
|
71
|
-
schema?: Schema;
|
|
72
|
-
bytesUsed?: number;
|
|
73
|
-
count?: number;
|
|
74
|
-
cursor?: number;
|
|
75
|
-
[key: string]: any;
|
|
76
|
-
};
|
|
77
62
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAEA,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjF,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GAEN,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GAEpB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACjC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACnC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAC9C;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GAC9D;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACrD;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC;AAGjG;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/schema",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.25",
|
|
4
4
|
"description": "Table format APIs for JSON, CSV, etc...",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@types/geojson": "^7946.0.7"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "40135f391b869388dbbcd615bbe51178d0c370be"
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -9,7 +9,9 @@ export type {
|
|
|
9
9
|
AnyArray
|
|
10
10
|
} from './types/types';
|
|
11
11
|
|
|
12
|
-
export type {Schema, Field, DataType,
|
|
12
|
+
export type {Schema, Field, DataType, SchemaMetadata, FieldMetadata} from './types/schema';
|
|
13
|
+
|
|
14
|
+
export type {Batch} from './types/batch';
|
|
13
15
|
|
|
14
16
|
// TABLE CATEGORY TYPES
|
|
15
17
|
export type {
|
|
@@ -17,7 +19,7 @@ export type {
|
|
|
17
19
|
RowTable,
|
|
18
20
|
ArrayRowTable,
|
|
19
21
|
ObjectRowTable,
|
|
20
|
-
|
|
22
|
+
GeoJSONTable,
|
|
21
23
|
ColumnarTable,
|
|
22
24
|
ArrowTable,
|
|
23
25
|
Tables
|
|
@@ -26,7 +28,7 @@ export type {
|
|
|
26
28
|
TableBatch,
|
|
27
29
|
ArrayRowTableBatch,
|
|
28
30
|
ObjectRowTableBatch,
|
|
29
|
-
|
|
31
|
+
GeoJSONTableBatch,
|
|
30
32
|
ColumnarTableBatch,
|
|
31
33
|
ArrowTableBatch
|
|
32
34
|
} from './types/category-table';
|