microsoft-graph 2.15.2 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/errors/InvalidOperationError.d.ts +4 -0
- package/dist/cjs/errors/InvalidOperationError.d.ts.map +1 -0
- package/dist/cjs/errors/InvalidOperationError.js +9 -0
- package/dist/cjs/graphApi.js +2 -2
- package/dist/cjs/models/Cell.d.ts +8 -0
- package/dist/cjs/models/Cell.d.ts.map +1 -0
- package/dist/cjs/models/Cell.js +2 -0
- package/dist/cjs/models/Item.d.ts +9 -0
- package/dist/cjs/models/Item.d.ts.map +1 -0
- package/dist/cjs/models/Item.js +2 -0
- package/dist/cjs/models/NumberFormat.d.ts +4 -0
- package/dist/cjs/models/NumberFormat.d.ts.map +1 -0
- package/dist/cjs/models/NumberFormat.js +2 -0
- package/dist/cjs/models/RecordBase.d.ts +3 -0
- package/dist/cjs/models/RecordBase.d.ts.map +1 -0
- package/dist/cjs/models/RecordBase.js +2 -0
- package/dist/cjs/models/RowNumber.d.ts +4 -0
- package/dist/cjs/models/RowNumber.d.ts.map +1 -0
- package/dist/cjs/models/RowNumber.js +2 -0
- package/dist/cjs/models/Source.d.ts +15 -0
- package/dist/cjs/models/Source.d.ts.map +1 -0
- package/dist/cjs/models/Source.js +2 -0
- package/dist/cjs/models/SourceDecoder.d.ts +4 -0
- package/dist/cjs/models/SourceDecoder.d.ts.map +1 -0
- package/dist/cjs/models/SourceDecoder.js +2 -0
- package/dist/cjs/models/SourceEncoder.d.ts +4 -0
- package/dist/cjs/models/SourceEncoder.d.ts.map +1 -0
- package/dist/cjs/models/SourceEncoder.js +2 -0
- package/dist/cjs/models/SourceRow.d.ts +4 -0
- package/dist/cjs/models/SourceRow.d.ts.map +1 -0
- package/dist/cjs/models/SourceRow.js +2 -0
- package/dist/cjs/models/SourceRowValue.d.ts +4 -0
- package/dist/cjs/models/SourceRowValue.d.ts.map +1 -0
- package/dist/cjs/models/SourceRowValue.js +2 -0
- package/dist/cjs/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.d.ts +12 -0
- package/dist/cjs/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.d.ts.map +1 -0
- package/dist/cjs/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.js +36 -0
- package/dist/cjs/services/addressManipulation.d.ts.map +1 -1
- package/dist/cjs/services/addressManipulation.js +0 -6
- package/dist/cjs/services/addressOffset.d.ts +1 -1
- package/dist/cjs/services/addressOffset.js +1 -1
- package/dist/cjs/services/cartesianAddress.d.ts +1 -1
- package/dist/cjs/services/cartesianAddress.d.ts.map +1 -1
- package/dist/cjs/services/cartesianAddress.js +15 -5
- package/dist/cjs/services/httpStatus.d.ts +6 -0
- package/dist/cjs/services/httpStatus.d.ts.map +1 -1
- package/dist/cjs/services/httpStatus.js +9 -0
- package/dist/cjs/services/numberFormat.d.ts +3 -0
- package/dist/cjs/services/numberFormat.d.ts.map +1 -0
- package/dist/cjs/services/numberFormat.js +4 -0
- package/dist/cjs/services/source.d.ts +1 -0
- package/dist/cjs/services/source.d.ts.map +1 -0
- package/dist/cjs/services/source.js +178 -0
- package/dist/cjs/tasks/iterateWorkbookRange.d.ts +15 -0
- package/dist/cjs/tasks/iterateWorkbookRange.d.ts.map +1 -0
- package/dist/cjs/tasks/iterateWorkbookRange.js +68 -0
- package/dist/cjs/tasks/iterateWorkbookRangeValues.d.ts +1 -0
- package/dist/cjs/tasks/iterateWorkbookRangeValues.d.ts.map +1 -1
- package/dist/cjs/tasks/iterateWorkbookRangeValues.js +1 -0
- package/dist/esm/errors/InvalidOperationError.d.ts +4 -0
- package/dist/esm/errors/InvalidOperationError.d.ts.map +1 -0
- package/dist/esm/errors/InvalidOperationError.js +6 -0
- package/dist/esm/graphApi.js +3 -3
- package/dist/esm/models/Cell.d.ts +8 -0
- package/dist/esm/models/Cell.d.ts.map +1 -0
- package/dist/esm/models/Cell.js +1 -0
- package/dist/esm/models/Item.d.ts +9 -0
- package/dist/esm/models/Item.d.ts.map +1 -0
- package/dist/esm/models/Item.js +1 -0
- package/dist/esm/models/NumberFormat.d.ts +4 -0
- package/dist/esm/models/NumberFormat.d.ts.map +1 -0
- package/dist/esm/models/NumberFormat.js +1 -0
- package/dist/esm/models/RecordBase.d.ts +3 -0
- package/dist/esm/models/RecordBase.d.ts.map +1 -0
- package/dist/esm/models/RecordBase.js +1 -0
- package/dist/esm/models/RowNumber.d.ts +4 -0
- package/dist/esm/models/RowNumber.d.ts.map +1 -0
- package/dist/esm/models/RowNumber.js +1 -0
- package/dist/esm/models/Source.d.ts +15 -0
- package/dist/esm/models/Source.d.ts.map +1 -0
- package/dist/esm/models/Source.js +1 -0
- package/dist/esm/models/SourceDecoder.d.ts +4 -0
- package/dist/esm/models/SourceDecoder.d.ts.map +1 -0
- package/dist/esm/models/SourceDecoder.js +1 -0
- package/dist/esm/models/SourceEncoder.d.ts +4 -0
- package/dist/esm/models/SourceEncoder.d.ts.map +1 -0
- package/dist/esm/models/SourceEncoder.js +1 -0
- package/dist/esm/models/SourceRow.d.ts +4 -0
- package/dist/esm/models/SourceRow.d.ts.map +1 -0
- package/dist/esm/models/SourceRow.js +1 -0
- package/dist/esm/models/SourceRowValue.d.ts +4 -0
- package/dist/esm/models/SourceRowValue.d.ts.map +1 -0
- package/dist/esm/models/SourceRowValue.js +1 -0
- package/dist/esm/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.d.ts +12 -0
- package/dist/esm/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.d.ts.map +1 -0
- package/dist/esm/operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.js +30 -0
- package/dist/esm/services/addressManipulation.d.ts.map +1 -1
- package/dist/esm/services/addressManipulation.js +0 -6
- package/dist/esm/services/addressOffset.d.ts +1 -1
- package/dist/esm/services/addressOffset.js +1 -1
- package/dist/esm/services/cartesianAddress.d.ts +1 -1
- package/dist/esm/services/cartesianAddress.d.ts.map +1 -1
- package/dist/esm/services/cartesianAddress.js +12 -5
- package/dist/esm/services/httpStatus.d.ts +6 -0
- package/dist/esm/services/httpStatus.d.ts.map +1 -1
- package/dist/esm/services/httpStatus.js +8 -0
- package/dist/esm/services/numberFormat.d.ts +3 -0
- package/dist/esm/services/numberFormat.d.ts.map +1 -0
- package/dist/esm/services/numberFormat.js +1 -0
- package/dist/esm/services/source.d.ts +2 -0
- package/dist/esm/services/source.d.ts.map +1 -0
- package/dist/esm/services/source.js +178 -0
- package/dist/esm/tasks/iterateWorkbookRange.d.ts +15 -0
- package/dist/esm/tasks/iterateWorkbookRange.d.ts.map +1 -0
- package/dist/esm/tasks/iterateWorkbookRange.js +62 -0
- package/dist/esm/tasks/iterateWorkbookRangeValues.d.ts +1 -0
- package/dist/esm/tasks/iterateWorkbookRangeValues.d.ts.map +1 -1
- package/dist/esm/tasks/iterateWorkbookRangeValues.js +1 -0
- package/package.json +379 -2
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// import InvalidOperationError from "../errors/InvalidOperationError.ts";
|
|
2
|
+
// import NeverError from "../errors/NeverError.ts";
|
|
3
|
+
// import type { Cell } from "../models/Cell.ts";
|
|
4
|
+
// import type { ColumnName } from "../models/ColumnName.ts";
|
|
5
|
+
// import type { ColumnOffset } from "../models/ColumnOffset.ts";
|
|
6
|
+
// import type { Item } from "../models/Item.ts";
|
|
7
|
+
// import type { RecordBase } from "../models/RecordBase.ts";
|
|
8
|
+
// import type { RowNumber } from "../models/RowNumber.ts";
|
|
9
|
+
// import type { RowOffset } from "../models/RowOffset.ts";
|
|
10
|
+
// import type { Source } from "../models/source.ts";
|
|
11
|
+
// import type { SourceDecoder } from "../models/SourceDecoder.ts";
|
|
12
|
+
// import type { SourceEncoder } from "../models/SourceEncoder.ts";
|
|
13
|
+
// import type { SourceRow } from "../models/SourceRow.ts";
|
|
14
|
+
// import type { WorkbookWorksheetRef } from "../models/WorkbookWorksheetRef.ts";
|
|
15
|
+
// import deleteWorkbookRange from "../operations/workbookRange/deleteWorkbookRange.ts";
|
|
16
|
+
// import insertWorkbookCells from "../operations/workbookRange/insertWorkbookCells.ts";
|
|
17
|
+
// import setWorkbookRangeFont from "../operations/workbookRange/setWorkbookRangeFont.ts";
|
|
18
|
+
// import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.ts";
|
|
19
|
+
// import getWorkbookWorksheetUsedRangeAddress from "../operations/workbookWorksheet/getWorkbookWorksheetUsedRangeAddress.ts";
|
|
20
|
+
// import iterateWorkbookRange from "../tasks/iterateWorkbookRange.ts";
|
|
21
|
+
// import { countAddressColumns, countAddressRows } from "./addressManipulation.ts";
|
|
22
|
+
// import { rowOffsetToAddress } from "./addressOffset.ts";
|
|
23
|
+
// import { addressToCartesian, cartesianToAddress } from "./cartesianAddress.ts";
|
|
24
|
+
// import { createWorkbookRangeRef } from "./workbookRange.ts";
|
|
25
|
+
export {};
|
|
26
|
+
// export async function defineSource<T extends RecordBase>(worksheetRef: WorkbookWorksheetRef, decode: SourceDecoder<T>, encode: SourceEncoder<T>): Promise<Source<T>> {
|
|
27
|
+
// const usedRange = await getWorkbookWorksheetUsedRangeAddress(worksheetRef);
|
|
28
|
+
// const rangeRef = createWorkbookRangeRef(worksheetRef, usedRange);
|
|
29
|
+
// const b = addressToCartesian(usedRange);
|
|
30
|
+
// // TODO: Header
|
|
31
|
+
// const a = await getWorkbookWorksheetRange();
|
|
32
|
+
// const source: Source<T> = {
|
|
33
|
+
// rangeRef,
|
|
34
|
+
// coding: {
|
|
35
|
+
// decode,
|
|
36
|
+
// encode,
|
|
37
|
+
// },
|
|
38
|
+
// head: [],
|
|
39
|
+
// async *[Symbol.asyncIterator](): AsyncGenerator<Item<T>> {
|
|
40
|
+
// let hasHead = false;
|
|
41
|
+
// for await (const { rowOffset, row } of iterateWorkbookRange(rangeRef)) {
|
|
42
|
+
// if (!hasHead) {
|
|
43
|
+
// source.head = row.map((cell) => cell.text) as ColumnName[];
|
|
44
|
+
// hasHead = true;
|
|
45
|
+
// continue;
|
|
46
|
+
// }
|
|
47
|
+
// const record = rowToRecord<T>(row, source);
|
|
48
|
+
// const rowNumber = rowOffsetToNumber(rowOffset);
|
|
49
|
+
// yield {
|
|
50
|
+
// rowOffset,
|
|
51
|
+
// rowNumber,
|
|
52
|
+
// record,
|
|
53
|
+
// };
|
|
54
|
+
// }
|
|
55
|
+
// },
|
|
56
|
+
// };
|
|
57
|
+
// return source;
|
|
58
|
+
// }
|
|
59
|
+
// export async function initializeSource<T extends RecordBase>(source: Source<T>, empty: T): Promise<void> {
|
|
60
|
+
// if (!isEmpty(source)) {
|
|
61
|
+
// throw new InvalidOperationError("Cannot initialize source with non-empty worksheet.");
|
|
62
|
+
// }
|
|
63
|
+
// source.head = Object.keys(empty) as ColumnName[];
|
|
64
|
+
// const address = cartesianToAddress({
|
|
65
|
+
// ax: 0 as ColumnOffset,
|
|
66
|
+
// bx: (source.head.length - 1) as ColumnOffset,
|
|
67
|
+
// ay: 0 as RowOffset,
|
|
68
|
+
// by: 0 as RowOffset,
|
|
69
|
+
// });
|
|
70
|
+
// source.rangeRef = createWorkbookRangeRef(source.rangeRef, address);
|
|
71
|
+
// await updateWorkbookRange(source.rangeRef, {
|
|
72
|
+
// values: [source.head],
|
|
73
|
+
// });
|
|
74
|
+
// await setWorkbookRangeFont(source.rangeRef, {
|
|
75
|
+
// bold: true,
|
|
76
|
+
// });
|
|
77
|
+
// }
|
|
78
|
+
// export async function readAllItems<T extends RecordBase>(source: Source<T>): Promise<Item<T>[]> {
|
|
79
|
+
// const result: Item<T>[] = [];
|
|
80
|
+
// for await (const item of source) {
|
|
81
|
+
// result.push(item);
|
|
82
|
+
// }
|
|
83
|
+
// return result;
|
|
84
|
+
// }
|
|
85
|
+
// export async function createItem<T extends RecordBase>(source: Source<T>, record: T, after: RowOffset = 0 as RowOffset): Promise<Item<T>> {
|
|
86
|
+
// if (!isInitialized(source)) {
|
|
87
|
+
// throw new InvalidOperationError("Source not initialized.");
|
|
88
|
+
// }
|
|
89
|
+
// await insertWorkbookCells(source.rangeRef, rowOffsetToAddress(after), "Down");
|
|
90
|
+
// const row = recordToRow(record, source);
|
|
91
|
+
// const address = cartesianToAddress({
|
|
92
|
+
// ax: 0 as ColumnOffset,
|
|
93
|
+
// bx: (row.length - 1) as ColumnOffset,
|
|
94
|
+
// ay: after,
|
|
95
|
+
// by: after,
|
|
96
|
+
// });
|
|
97
|
+
// const rangeRef = createWorkbookRangeRef(source.rangeRef, address);
|
|
98
|
+
// await updateWorkbookRange(rangeRef, {
|
|
99
|
+
// values: [row],
|
|
100
|
+
// // TODO: Format
|
|
101
|
+
// });
|
|
102
|
+
// const { ax, bx, ay, by } = addressToCartesian(source.rangeRef.address);
|
|
103
|
+
// source.rangeRef.address = cartesianToAddress({
|
|
104
|
+
// ax,
|
|
105
|
+
// bx,
|
|
106
|
+
// ay,
|
|
107
|
+
// by: (by + 1) as RowOffset,
|
|
108
|
+
// });
|
|
109
|
+
// return {
|
|
110
|
+
// rowOffset: after,
|
|
111
|
+
// rowNumber: rowOffsetToNumber(after),
|
|
112
|
+
// record,
|
|
113
|
+
// };
|
|
114
|
+
// }
|
|
115
|
+
// export async function updateItem<T extends RecordBase>(source: Source<T>, offset: RowOffset, record: T): Promise<void> {
|
|
116
|
+
// if (!isInitialized(source)) {
|
|
117
|
+
// throw new InvalidOperationError("Source not initialized.");
|
|
118
|
+
// }
|
|
119
|
+
// const row = recordToRow(record, source);
|
|
120
|
+
// const address = cartesianToAddress({
|
|
121
|
+
// ax: 0 as ColumnOffset,
|
|
122
|
+
// bx: (row.length - 1) as ColumnOffset,
|
|
123
|
+
// ay: offset,
|
|
124
|
+
// by: offset,
|
|
125
|
+
// });
|
|
126
|
+
// const rangeRef = createWorkbookRangeRef(source.rangeRef, address);
|
|
127
|
+
// await updateWorkbookRange(rangeRef, {
|
|
128
|
+
// values: [row],
|
|
129
|
+
// // TODO: format
|
|
130
|
+
// });
|
|
131
|
+
// }
|
|
132
|
+
// export async function deleteItem<T extends RecordBase>(source: Source<T>, offset: RowOffset): Promise<void> {
|
|
133
|
+
// if (!isInitialized(source)) {
|
|
134
|
+
// throw new InvalidOperationError("Source not initialized.");
|
|
135
|
+
// }
|
|
136
|
+
// const rangeRef = createWorkbookRangeRef(source.rangeRef, rowOffsetToAddress(offset));
|
|
137
|
+
// await deleteWorkbookRange(rangeRef, "Up");
|
|
138
|
+
// const { ax, bx, ay, by } = addressToCartesian(source.rangeRef.address);
|
|
139
|
+
// source.rangeRef.address = cartesianToAddress({
|
|
140
|
+
// ax,
|
|
141
|
+
// bx,
|
|
142
|
+
// ay,
|
|
143
|
+
// by: (by - 1) as RowOffset,
|
|
144
|
+
// });
|
|
145
|
+
// }
|
|
146
|
+
// function rowToRecord<T extends RecordBase>(row: Cell[], source: Source<T>): T {
|
|
147
|
+
// const sourceRow = source.head.reduce((acc, heading, columnIndex) => {
|
|
148
|
+
// const cell = row[columnIndex];
|
|
149
|
+
// if (!cell) {
|
|
150
|
+
// throw new NeverError(`Cell at index ${columnIndex} is undefined`);
|
|
151
|
+
// }
|
|
152
|
+
// acc[heading] = cell;
|
|
153
|
+
// return acc;
|
|
154
|
+
// }, {} as SourceRow);
|
|
155
|
+
// const record = source.coding.decode(sourceRow);
|
|
156
|
+
// return record;
|
|
157
|
+
// }
|
|
158
|
+
// function recordToRow<T extends RecordBase>(record: T, source: Source<T>): Cell[] {
|
|
159
|
+
// const sourceRow = source.coding.encode(record);
|
|
160
|
+
// const row = source.head.map((heading) => {
|
|
161
|
+
// const cell = sourceRow[heading];
|
|
162
|
+
// if (cell === undefined) {
|
|
163
|
+
// throw new NeverError(`Cell at index ${heading} is undefined`);
|
|
164
|
+
// }
|
|
165
|
+
// return cell;
|
|
166
|
+
// });
|
|
167
|
+
// return row;
|
|
168
|
+
// }
|
|
169
|
+
// function rowOffsetToNumber(offset: RowOffset): RowNumber {
|
|
170
|
+
// return (offset + 1) as RowNumber;
|
|
171
|
+
// }
|
|
172
|
+
// function isEmpty<T extends RecordBase>(source: Source<T>) {
|
|
173
|
+
// return countAddressRows(source.rangeRef.address) <= 1 && countAddressColumns(source.rangeRef.address) <= 1;
|
|
174
|
+
// }
|
|
175
|
+
// function isInitialized<T extends RecordBase>(source: Source<T>) {
|
|
176
|
+
// return source.head.length > 0;
|
|
177
|
+
// }
|
|
178
|
+
// // TODO: Tidy Cell/CellValue types
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Cell } from "../models/Cell.ts";
|
|
2
|
+
import type { RowOffset } from "../models/RowOffset.ts";
|
|
3
|
+
import type { WorkbookRangeRef } from "../models/WorkbookRangeRef.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Iterates over the values of a workbook range in chunks, fetching data in manageable sizes.
|
|
6
|
+
*
|
|
7
|
+
* @param rangeRef - A reference to the workbook range to iterate over.
|
|
8
|
+
* @param overwriteRowsPerRequest - Optional. The number of rows to fetch per request. If omitted, it is automatically calculated.
|
|
9
|
+
* @returns An async iterable that yields rows of range values.
|
|
10
|
+
*/
|
|
11
|
+
export default function iterateWorkbookRange(rangeRef: WorkbookRangeRef, overwriteRowsPerRequest?: number | null): AsyncIterable<{
|
|
12
|
+
rowOffset: RowOffset;
|
|
13
|
+
row: Cell[];
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=iterateWorkbookRange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterateWorkbookRange.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRange.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AActE;;;;;;GAMG;AACH,wBAA+B,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAsDnL"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import InvalidArgumentError from "../errors/InvalidArgumentError.js";
|
|
2
|
+
import getWorkbookWorksheetRange from "../operations/workbookRange/getWorkbookWorksheetRange.js";
|
|
3
|
+
import { composeAddress, countAddressColumns, decomposeAddress } from "../services/addressManipulation.js";
|
|
4
|
+
import { columnAddressToOffset, rowAddressToOffset, rowOffsetToAddress } from "../services/addressOffset.js";
|
|
5
|
+
import { createWorkbookRangeRef } from "../services/workbookRange.js";
|
|
6
|
+
/**
|
|
7
|
+
* Maximum number of cells that can be retrieved in a single request, unless overwritten.
|
|
8
|
+
* @remarks The Microsoft Graph API documentation does not specify a fixed maximum number of cells that can be retrieved in a single request.
|
|
9
|
+
* However, it mentions that large ranges may result in errors due to resource constraints. Additionally, discussions in developer
|
|
10
|
+
* communities suggest that requests exceeding 10,000 cells may encounter issues.
|
|
11
|
+
*/
|
|
12
|
+
const maxCellsPerRequest = 10_000;
|
|
13
|
+
/**
|
|
14
|
+
* Iterates over the values of a workbook range in chunks, fetching data in manageable sizes.
|
|
15
|
+
*
|
|
16
|
+
* @param rangeRef - A reference to the workbook range to iterate over.
|
|
17
|
+
* @param overwriteRowsPerRequest - Optional. The number of rows to fetch per request. If omitted, it is automatically calculated.
|
|
18
|
+
* @returns An async iterable that yields rows of range values.
|
|
19
|
+
*/
|
|
20
|
+
export default async function* iterateWorkbookRange(rangeRef, overwriteRowsPerRequest = null) {
|
|
21
|
+
const address = rangeRef.address;
|
|
22
|
+
const components = decomposeAddress(address);
|
|
23
|
+
const columnsPerRow = columnAddressToOffset(components.endColumn) - columnAddressToOffset(components.startColumn) + 1;
|
|
24
|
+
if (overwriteRowsPerRequest !== null && overwriteRowsPerRequest < 1) {
|
|
25
|
+
throw new InvalidArgumentError("overwriteRowsPerRequest must be greater than 0");
|
|
26
|
+
}
|
|
27
|
+
const columnCount = countAddressColumns(address);
|
|
28
|
+
const rowsPerRequest = overwriteRowsPerRequest ?? Math.floor(maxCellsPerRequest / columnsPerRow);
|
|
29
|
+
const rangeStartRowOffset = rowAddressToOffset(components.startRow);
|
|
30
|
+
const rangeEndRowOffset = rowAddressToOffset(components.endRow);
|
|
31
|
+
let offset = 0;
|
|
32
|
+
for (let chunkRowOffset = rangeStartRowOffset; chunkRowOffset <= rangeEndRowOffset; chunkRowOffset = (chunkRowOffset + rowsPerRequest)) {
|
|
33
|
+
const requestStartRowOffset = chunkRowOffset;
|
|
34
|
+
const requestEndRowOffset = Math.min(chunkRowOffset + rowsPerRequest - 1, rangeEndRowOffset);
|
|
35
|
+
const chunkStartRow = rowOffsetToAddress(requestStartRowOffset);
|
|
36
|
+
const chunkEndRow = rowOffsetToAddress(requestEndRowOffset);
|
|
37
|
+
const requestAddress = composeAddress({
|
|
38
|
+
startRow: chunkStartRow,
|
|
39
|
+
endRow: chunkEndRow,
|
|
40
|
+
startColumn: components.startColumn,
|
|
41
|
+
endColumn: components.endColumn,
|
|
42
|
+
});
|
|
43
|
+
const requestRef = createWorkbookRangeRef(rangeRef, requestAddress);
|
|
44
|
+
const range = await getWorkbookWorksheetRange(requestRef);
|
|
45
|
+
const values = range.values;
|
|
46
|
+
const text = range.text;
|
|
47
|
+
const numberFormat = range.numberFormat;
|
|
48
|
+
const rowCount = values.length;
|
|
49
|
+
for (let r = 0; r < rowCount; r++) {
|
|
50
|
+
const row = Array.from({ length: columnCount }, (_, c) => ({
|
|
51
|
+
text: text[r]?.[c] ?? "",
|
|
52
|
+
value: values[r]?.[c] ?? "",
|
|
53
|
+
numberFormat: numberFormat?.[r]?.[c] ?? "",
|
|
54
|
+
}));
|
|
55
|
+
yield {
|
|
56
|
+
rowOffset: offset,
|
|
57
|
+
row,
|
|
58
|
+
};
|
|
59
|
+
offset++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -6,6 +6,7 @@ import type { WorkbookRangeRef } from "../models/WorkbookRangeRef.ts";
|
|
|
6
6
|
* @param rangeRef - A reference to the workbook range to iterate over.
|
|
7
7
|
* @param overwriteRowsPerRequest - Optional. The number of rows to fetch per request. If omitted, it is automatically calculated.
|
|
8
8
|
* @returns An async iterable that yields rows of range values.
|
|
9
|
+
* @deprecated Use `iterateWorkbookRange` instead.
|
|
9
10
|
*/
|
|
10
11
|
export default function iterateWorkbookRangeValues(rangeRef: WorkbookRangeRef, overwriteRowsPerRequest?: number | null): AsyncIterable<RowRangeValues>;
|
|
11
12
|
//# sourceMappingURL=iterateWorkbookRangeValues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterateWorkbookRangeValues.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRangeValues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AActE
|
|
1
|
+
{"version":3,"file":"iterateWorkbookRangeValues.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRangeValues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AActE;;;;;;;GAOG;AACH,wBAA+B,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,cAAc,CAAC,CAoClK"}
|
|
@@ -16,6 +16,7 @@ const maxCellsPerRequest = 10_000;
|
|
|
16
16
|
* @param rangeRef - A reference to the workbook range to iterate over.
|
|
17
17
|
* @param overwriteRowsPerRequest - Optional. The number of rows to fetch per request. If omitted, it is automatically calculated.
|
|
18
18
|
* @returns An async iterable that yields rows of range values.
|
|
19
|
+
* @deprecated Use `iterateWorkbookRange` instead.
|
|
19
20
|
*/
|
|
20
21
|
export default async function* iterateWorkbookRangeValues(rangeRef, overwriteRowsPerRequest = null) {
|
|
21
22
|
const address = rangeRef.address;
|