microsoft-graph 2.34.1 → 2.35.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/services/objectMapping.d.ts +100 -0
- package/dist/cjs/services/objectMapping.d.ts.map +1 -0
- package/dist/cjs/services/objectMapping.js +143 -0
- package/dist/cjs/tasks/insertWorkbookRangeRow.d.ts +2 -2
- package/dist/cjs/tasks/insertWorkbookRangeRow.js +2 -2
- package/dist/cjs/tasks/insertWorkbookRangeRows.d.ts +3 -3
- package/dist/cjs/tasks/insertWorkbookRangeRows.js +3 -3
- package/dist/cjs/tasks/iterateWorkbookRangeRows.d.ts +1 -1
- package/dist/cjs/tasks/iterateWorkbookRangeRows.js +1 -1
- package/dist/cjs/tasks/readWorkbookRangeFirstRow.d.ts +2 -2
- package/dist/cjs/tasks/readWorkbookRangeFirstRow.js +2 -2
- package/dist/cjs/tasks/readWorkbookRangeRows.d.ts +2 -2
- package/dist/cjs/tasks/readWorkbookRangeRows.js +2 -2
- package/dist/cjs/tasks/updateWorkbookRangeFirstRow.d.ts +3 -3
- package/dist/cjs/tasks/updateWorkbookRangeFirstRow.js +3 -3
- package/dist/cjs/tasks/updateWorkbookRangeRows.d.ts +15 -6
- package/dist/cjs/tasks/updateWorkbookRangeRows.d.ts.map +1 -1
- package/dist/cjs/tasks/updateWorkbookRangeRows.js +16 -7
- package/dist/esm/services/objectMapping.d.ts +100 -0
- package/dist/esm/services/objectMapping.d.ts.map +1 -0
- package/dist/esm/services/objectMapping.js +132 -0
- package/dist/esm/tasks/insertWorkbookRangeRow.d.ts +2 -2
- package/dist/esm/tasks/insertWorkbookRangeRow.js +2 -2
- package/dist/esm/tasks/insertWorkbookRangeRows.d.ts +3 -3
- package/dist/esm/tasks/insertWorkbookRangeRows.js +3 -3
- package/dist/esm/tasks/iterateWorkbookRangeRows.d.ts +1 -1
- package/dist/esm/tasks/iterateWorkbookRangeRows.js +1 -1
- package/dist/esm/tasks/readWorkbookRangeFirstRow.d.ts +2 -2
- package/dist/esm/tasks/readWorkbookRangeFirstRow.js +2 -2
- package/dist/esm/tasks/readWorkbookRangeRows.d.ts +2 -2
- package/dist/esm/tasks/readWorkbookRangeRows.js +2 -2
- package/dist/esm/tasks/updateWorkbookRangeFirstRow.d.ts +3 -3
- package/dist/esm/tasks/updateWorkbookRangeFirstRow.js +3 -3
- package/dist/esm/tasks/updateWorkbookRangeRows.d.ts +15 -6
- package/dist/esm/tasks/updateWorkbookRangeRows.d.ts.map +1 -1
- package/dist/esm/tasks/updateWorkbookRangeRows.js +16 -7
- package/docs/api/README.md +8 -9
- package/docs/api/{insertRow.md → insertWorkbookRangeRow.md} +3 -3
- package/docs/api/{insertRows.md → insertWorkbookRangeRows.md} +5 -5
- package/docs/api/{iterateRows.md → iterateWorkbookRangeRows.md} +2 -2
- package/docs/api/objectMapping.md +225 -0
- package/docs/api/{readFirstRow.md → readWorkbookRangeFirstRow.md} +3 -3
- package/docs/api/{readRows.md → readWorkbookRangeRows.md} +4 -4
- package/docs/api/{updateFirstRow.md → updateWorkbookRangeFirstRow.md} +4 -4
- package/docs/api/{updateRows.md → updateWorkbookRangeRows.md} +19 -10
- package/docs/api/writeWorkbookRows.md +1 -1
- package/package.json +26 -51
- package/dist/cjs/models/DataSource.d.ts +0 -49
- package/dist/cjs/models/DataSource.d.ts.map +0 -1
- package/dist/cjs/models/DataSource.js +0 -8
- package/dist/cjs/services/dataSource.d.ts +0 -69
- package/dist/cjs/services/dataSource.d.ts.map +0 -1
- package/dist/cjs/services/dataSource.js +0 -193
- package/dist/esm/models/DataSource.d.ts +0 -49
- package/dist/esm/models/DataSource.d.ts.map +0 -1
- package/dist/esm/models/DataSource.js +0 -7
- package/dist/esm/services/dataSource.d.ts +0 -69
- package/dist/esm/services/dataSource.d.ts.map +0 -1
- package/dist/esm/services/dataSource.js +0 -182
- package/docs/api/DataSource-1.md +0 -191
- package/docs/api/dataSource.md +0 -204
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automated conversion of rows to objects and vice versa based on defined mapping rules.
|
|
3
|
+
* @module objectMapping
|
|
4
|
+
* @category Services
|
|
5
|
+
*/
|
|
6
|
+
import type { Cell } from "../models/Cell.ts";
|
|
7
|
+
import type { ColumnName, ColumnOffset } from "../models/Column.ts";
|
|
8
|
+
/**
|
|
9
|
+
* Defines rules for mapping between spreadsheet rows and object properties.
|
|
10
|
+
* @template T Object type to map to/from.
|
|
11
|
+
*/
|
|
12
|
+
export type ObjectMapping<T> = {
|
|
13
|
+
[K in keyof T]-?: {
|
|
14
|
+
/**
|
|
15
|
+
* Pattern to match a column heading for mapping to the object property.
|
|
16
|
+
* If a string is provided, it will be used as the column name.
|
|
17
|
+
*/
|
|
18
|
+
columnPattern: RegExp;
|
|
19
|
+
/**
|
|
20
|
+
* Decodes a cell to an object property value.
|
|
21
|
+
* @param cell Cell to decode.
|
|
22
|
+
* @returns Decoded property value.
|
|
23
|
+
* @remarks If omitted, the cell's `value` (not `text`) will be used without conversion.
|
|
24
|
+
* @example
|
|
25
|
+
* (cell: Cell) => Number.parseFloat(cell.value.toString()) // Convert string number to number
|
|
26
|
+
*/
|
|
27
|
+
decode?: (cell: Cell) => T[K];
|
|
28
|
+
/**
|
|
29
|
+
* Encodes an object property value to a cell.
|
|
30
|
+
* @param prop Property value to encode.
|
|
31
|
+
* @returns Encoded cell.
|
|
32
|
+
* @remarks If omitted, the cell will be created with the `value` property set to the property value.
|
|
33
|
+
* @example
|
|
34
|
+
* (prop: number) => ({ value: prop.toString(), ... }) // Convert number to string cell value
|
|
35
|
+
*/
|
|
36
|
+
encode?: (prop: T[K]) => Cell;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolved mapping from object properties to column offsets and encode/decode functions.
|
|
41
|
+
* @template T Object type being mapped.
|
|
42
|
+
*/
|
|
43
|
+
export type ResolvedObjectMapping<T> = {
|
|
44
|
+
[K in keyof T]-?: {
|
|
45
|
+
columnOffset: ColumnOffset;
|
|
46
|
+
decode: (cell: Cell) => T[K];
|
|
47
|
+
encode: (prop: T[K]) => Cell;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Converts spreadsheet rows to objects using the first row as a header.
|
|
52
|
+
* @template T The object type to yield.
|
|
53
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
54
|
+
* @param rules Mapping rules for converting columns to object properties.
|
|
55
|
+
* @yields Objects of type T, one for each data row.
|
|
56
|
+
*/
|
|
57
|
+
export declare function rowsToObjectsWithHeader<T>(rows: Iterable<Cell[]> | AsyncIterable<Cell[]>, rules: ObjectMapping<T>): AsyncIterable<T>;
|
|
58
|
+
/**
|
|
59
|
+
* Creates a mapping from a header row to object properties based on provided rules.
|
|
60
|
+
* @template T The object type being mapped.
|
|
61
|
+
* @param headerRow The header row, used to determine column offsets.
|
|
62
|
+
* @param rules The mapping rules for converting cells to object properties.
|
|
63
|
+
* @returns The resolved mapping for use in row/object conversion.
|
|
64
|
+
* @throws {InvalidArgumentError} If a column matching a pattern is not found in the header row.
|
|
65
|
+
*/
|
|
66
|
+
export declare function createObjectMapping<T>(headerRow: (ColumnName | Cell)[], rules: ObjectMapping<T>): ResolvedObjectMapping<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Converts spreadsheet rows to objects using a provided mapping.
|
|
69
|
+
* @template T The object type to yield.
|
|
70
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
71
|
+
* @param mapping The resolved mapping for row/object conversion.
|
|
72
|
+
* @yields Objects of type T, one for each row.
|
|
73
|
+
*/
|
|
74
|
+
export declare function rowsToObjects<T>(rows: Iterable<Cell[]> | AsyncIterable<Cell[]>, mapping: ResolvedObjectMapping<T>): AsyncIterable<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Converts objects to spreadsheet rows using a provided mapping.
|
|
77
|
+
* @template T The object type to convert.
|
|
78
|
+
* @param objects Iterable or async iterable of objects.
|
|
79
|
+
* @param mapping The resolved mapping for object/row conversion.
|
|
80
|
+
* @yields Arrays of partial cells, one for each object.
|
|
81
|
+
*/
|
|
82
|
+
export declare function objectsToRows<T>(objects: Iterable<T> | AsyncIterable<T>, mapping: ResolvedObjectMapping<T>): AsyncIterable<Partial<Cell>[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Converts a row of cells to an object using the provided mapping.
|
|
85
|
+
* @template T The object type to return.
|
|
86
|
+
* @param cells The array of cells representing a row.
|
|
87
|
+
* @param rules The resolved mapping for row/object conversion.
|
|
88
|
+
* @returns The object of type T.
|
|
89
|
+
* @throws {InvalidArgumentError} If a required column is missing in the row.
|
|
90
|
+
*/
|
|
91
|
+
export declare function rowToObject<T>(cells: Cell[], rules: ResolvedObjectMapping<T>): T;
|
|
92
|
+
/**
|
|
93
|
+
* Converts an object to a row of cells using the provided mapping.
|
|
94
|
+
* @template T The object type to convert.
|
|
95
|
+
* @param record The object to convert.
|
|
96
|
+
* @param mapper The resolved mapping for object/row conversion.
|
|
97
|
+
* @returns An array of partial cells representing the row.
|
|
98
|
+
*/
|
|
99
|
+
export declare function objectToRow<T>(record: T, mapper: ResolvedObjectMapping<T>): Partial<Cell>[];
|
|
100
|
+
//# sourceMappingURL=objectMapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectMapping.d.ts","sourceRoot":"","sources":["../../../src/services/objectMapping.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGpE;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC7B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QACjB;;;WAGG;QACH,aAAa,EAAE,MAAM,CAAC;QAEtB;;;;;;;WAOG;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9B;;;;;;;WAOG;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;KAC9B;CACD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;KACrC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QACjB,YAAY,EAAE,YAAY,CAAC;QAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;KAC7B;CACD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAuB,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAW3I;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAsC1H;AAED;;;;;;GAMG;AACH,wBAAuB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAI3I;AAED;;;;;;GAMG;AACH,wBAAuB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAIlJ;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAe5E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAW3F"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Automated conversion of rows to objects and vice versa based on defined mapping rules.
|
|
4
|
+
* @module objectMapping
|
|
5
|
+
* @category Services
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.rowsToObjectsWithHeader = rowsToObjectsWithHeader;
|
|
12
|
+
exports.createObjectMapping = createObjectMapping;
|
|
13
|
+
exports.rowsToObjects = rowsToObjects;
|
|
14
|
+
exports.objectsToRows = objectsToRows;
|
|
15
|
+
exports.rowToObject = rowToObject;
|
|
16
|
+
exports.objectToRow = objectToRow;
|
|
17
|
+
const InvalidArgumentError_ts_1 = __importDefault(require("../errors/InvalidArgumentError.js"));
|
|
18
|
+
const cell_ts_1 = require("./cell.js");
|
|
19
|
+
/**
|
|
20
|
+
* Converts spreadsheet rows to objects using the first row as a header.
|
|
21
|
+
* @template T The object type to yield.
|
|
22
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
23
|
+
* @param rules Mapping rules for converting columns to object properties.
|
|
24
|
+
* @yields Objects of type T, one for each data row.
|
|
25
|
+
*/
|
|
26
|
+
async function* rowsToObjectsWithHeader(rows, rules) {
|
|
27
|
+
let mapping = null;
|
|
28
|
+
for await (const row of rows) {
|
|
29
|
+
if (!mapping) {
|
|
30
|
+
mapping = createObjectMapping(row, rules);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
yield rowToObject(row, mapping);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a mapping from a header row to object properties based on provided rules.
|
|
38
|
+
* @template T The object type being mapped.
|
|
39
|
+
* @param headerRow The header row, used to determine column offsets.
|
|
40
|
+
* @param rules The mapping rules for converting cells to object properties.
|
|
41
|
+
* @returns The resolved mapping for use in row/object conversion.
|
|
42
|
+
* @throws {InvalidArgumentError} If a column matching a pattern is not found in the header row.
|
|
43
|
+
*/
|
|
44
|
+
function createObjectMapping(headerRow, rules) {
|
|
45
|
+
const headStrings = headerRow.map((c) => (typeof c === "object" ? c.text : c));
|
|
46
|
+
const resolved = {};
|
|
47
|
+
for (const key in rules) {
|
|
48
|
+
if (!Object.prototype.hasOwnProperty.call(rules, key)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const rule = rules[key];
|
|
52
|
+
const offset = headStrings.findIndex((h) => rule.columnPattern.test(h));
|
|
53
|
+
if (offset === -1) {
|
|
54
|
+
throw new InvalidArgumentError_ts_1.default(`Column matching "${rule.columnPattern}" not found in header.`);
|
|
55
|
+
}
|
|
56
|
+
const columnOffset = offset;
|
|
57
|
+
const defaultDecode = (cell) => cell.value;
|
|
58
|
+
const defaultEncode = (prop) => ({
|
|
59
|
+
value: prop,
|
|
60
|
+
text: prop?.toString() ?? "",
|
|
61
|
+
format: cell_ts_1.generalCellFormat,
|
|
62
|
+
merge: {},
|
|
63
|
+
alignment: {},
|
|
64
|
+
borders: {},
|
|
65
|
+
fill: {},
|
|
66
|
+
font: {},
|
|
67
|
+
});
|
|
68
|
+
const decode = rule.decode ?? defaultDecode;
|
|
69
|
+
const encode = rule.encode ?? defaultEncode;
|
|
70
|
+
resolved[key] = {
|
|
71
|
+
columnOffset,
|
|
72
|
+
decode,
|
|
73
|
+
encode,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return resolved;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Converts spreadsheet rows to objects using a provided mapping.
|
|
80
|
+
* @template T The object type to yield.
|
|
81
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
82
|
+
* @param mapping The resolved mapping for row/object conversion.
|
|
83
|
+
* @yields Objects of type T, one for each row.
|
|
84
|
+
*/
|
|
85
|
+
async function* rowsToObjects(rows, mapping) {
|
|
86
|
+
for await (const row of rows) {
|
|
87
|
+
yield rowToObject(row, mapping);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Converts objects to spreadsheet rows using a provided mapping.
|
|
92
|
+
* @template T The object type to convert.
|
|
93
|
+
* @param objects Iterable or async iterable of objects.
|
|
94
|
+
* @param mapping The resolved mapping for object/row conversion.
|
|
95
|
+
* @yields Arrays of partial cells, one for each object.
|
|
96
|
+
*/
|
|
97
|
+
async function* objectsToRows(objects, mapping) {
|
|
98
|
+
for await (const obj of objects) {
|
|
99
|
+
yield objectToRow(obj, mapping);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Converts a row of cells to an object using the provided mapping.
|
|
104
|
+
* @template T The object type to return.
|
|
105
|
+
* @param cells The array of cells representing a row.
|
|
106
|
+
* @param rules The resolved mapping for row/object conversion.
|
|
107
|
+
* @returns The object of type T.
|
|
108
|
+
* @throws {InvalidArgumentError} If a required column is missing in the row.
|
|
109
|
+
*/
|
|
110
|
+
function rowToObject(cells, rules) {
|
|
111
|
+
const record = {};
|
|
112
|
+
for (const key in rules) {
|
|
113
|
+
if (!Object.prototype.hasOwnProperty.call(rules, key)) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const rule = rules[key];
|
|
117
|
+
const cell = cells[rule.columnOffset];
|
|
118
|
+
if (!cell) {
|
|
119
|
+
throw new InvalidArgumentError_ts_1.default(`Column at index ${rule.columnOffset} is missing for key "${key}".`);
|
|
120
|
+
}
|
|
121
|
+
record[key] = rule.decode(cell);
|
|
122
|
+
}
|
|
123
|
+
return record;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Converts an object to a row of cells using the provided mapping.
|
|
127
|
+
* @template T The object type to convert.
|
|
128
|
+
* @param record The object to convert.
|
|
129
|
+
* @param mapper The resolved mapping for object/row conversion.
|
|
130
|
+
* @returns An array of partial cells representing the row.
|
|
131
|
+
*/
|
|
132
|
+
function objectToRow(record, mapper) {
|
|
133
|
+
const row = [];
|
|
134
|
+
for (const key in mapper) {
|
|
135
|
+
if (!Object.prototype.hasOwnProperty.call(mapper, key)) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const { columnOffset, encode } = mapper[key];
|
|
139
|
+
const prop = record[key];
|
|
140
|
+
row[columnOffset] = encode(prop);
|
|
141
|
+
}
|
|
142
|
+
return row;
|
|
143
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Inserts a single row into a workbook range.
|
|
3
|
-
* @module
|
|
3
|
+
* @module insertWorkbookRangeRow
|
|
4
4
|
* @category Tasks
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -12,7 +12,7 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
12
12
|
* @param row Array of cells to insert as a single row.
|
|
13
13
|
* @experimental
|
|
14
14
|
* @example
|
|
15
|
-
* await
|
|
15
|
+
* await insertWorkbookRangeRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
16
16
|
*/
|
|
17
17
|
export default function insertWorkbookRangeRow(originRef: WorkbookRangeRef, row: Partial<Cell>[]): Promise<void>;
|
|
18
18
|
//# sourceMappingURL=insertWorkbookRangeRow.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Inserts a single row into a workbook range.
|
|
4
|
-
* @module
|
|
4
|
+
* @module insertWorkbookRangeRow
|
|
5
5
|
* @category Tasks
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -17,7 +17,7 @@ const insertWorkbookRangeRows_ts_1 = __importDefault(require("./insertWorkbookRa
|
|
|
17
17
|
* @param row Array of cells to insert as a single row.
|
|
18
18
|
* @experimental
|
|
19
19
|
* @example
|
|
20
|
-
* await
|
|
20
|
+
* await insertWorkbookRangeRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
21
21
|
*/
|
|
22
22
|
async function insertWorkbookRangeRow(originRef, row) {
|
|
23
23
|
await (0, insertWorkbookRangeRows_ts_1.default)(originRef, [row]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Inserts rows into a workbook range.
|
|
3
|
-
* @module
|
|
3
|
+
* @module insertWorkbookRangeRows
|
|
4
4
|
* @category Tasks
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -14,14 +14,14 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
14
14
|
* @experimental
|
|
15
15
|
* @example
|
|
16
16
|
* // Basic example:
|
|
17
|
-
* await
|
|
17
|
+
* await insertWorkbookRangeRows(originRef, [
|
|
18
18
|
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
19
19
|
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
20
20
|
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
21
21
|
* ])
|
|
22
22
|
*
|
|
23
23
|
* // Advanced example with cell formatting:
|
|
24
|
-
* await
|
|
24
|
+
* await insertWorkbookRangeRows(originRef, [
|
|
25
25
|
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
26
26
|
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
27
27
|
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Inserts rows into a workbook range.
|
|
4
|
-
* @module
|
|
4
|
+
* @module insertWorkbookRangeRows
|
|
5
5
|
* @category Tasks
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -23,14 +23,14 @@ const updateWorkbookRangeRows_ts_1 = __importDefault(require("./updateWorkbookRa
|
|
|
23
23
|
* @experimental
|
|
24
24
|
* @example
|
|
25
25
|
* // Basic example:
|
|
26
|
-
* await
|
|
26
|
+
* await insertWorkbookRangeRows(originRef, [
|
|
27
27
|
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
28
28
|
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
29
29
|
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
30
30
|
* ])
|
|
31
31
|
*
|
|
32
32
|
* // Advanced example with cell formatting:
|
|
33
|
-
* await
|
|
33
|
+
* await insertWorkbookRangeRows(originRef, [
|
|
34
34
|
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
35
35
|
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
36
36
|
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read the first row from a given workbook range.
|
|
3
|
-
* @module
|
|
3
|
+
* @module readWorkbookRangeFirstRow
|
|
4
4
|
* @category Tasks
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -12,7 +12,7 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
12
12
|
* @returns A promise that resolves to an array of cells in the first row.
|
|
13
13
|
* @remarks Particularly useful for reading header rows.
|
|
14
14
|
* @example
|
|
15
|
-
* const firstRow = await
|
|
15
|
+
* const firstRow = await readWorkbookRangeFirstRow(rangeRef);
|
|
16
16
|
*/
|
|
17
17
|
export default function readWorkbookRangeFirstRow(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[]>;
|
|
18
18
|
//# sourceMappingURL=readWorkbookRangeFirstRow.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Read the first row from a given workbook range.
|
|
4
|
-
* @module
|
|
4
|
+
* @module readWorkbookRangeFirstRow
|
|
5
5
|
* @category Tasks
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -20,7 +20,7 @@ const iterateWorkbookRangeRows_ts_1 = require("./iterateWorkbookRangeRows.js");
|
|
|
20
20
|
* @returns A promise that resolves to an array of cells in the first row.
|
|
21
21
|
* @remarks Particularly useful for reading header rows.
|
|
22
22
|
* @example
|
|
23
|
-
* const firstRow = await
|
|
23
|
+
* const firstRow = await readWorkbookRangeFirstRow(rangeRef);
|
|
24
24
|
*/
|
|
25
25
|
async function readWorkbookRangeFirstRow(rangeRef, scope = cell_ts_1.defaultCellScope) {
|
|
26
26
|
const firstRowRef = (0, addressManipulation_ts_1.subRange)(rangeRef, 0, 1);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read all rows from a given workbook range.
|
|
3
|
-
* @module
|
|
3
|
+
* @module readWorkbookRangeRows
|
|
4
4
|
* @category Tasks
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -14,7 +14,7 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
14
14
|
* @remarks Where practical, prefer using {@link iterateWorkbookRangeRows} for more efficient memory usage.
|
|
15
15
|
* @experimental
|
|
16
16
|
* @example
|
|
17
|
-
* const rows = await
|
|
17
|
+
* const rows = await readWorkbookRangeRows(rangeRef);
|
|
18
18
|
*/
|
|
19
19
|
export default function readWorkbookRangeRows(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[][]>;
|
|
20
20
|
//# sourceMappingURL=readWorkbookRangeRows.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Read all rows from a given workbook range.
|
|
4
|
-
* @module
|
|
4
|
+
* @module readWorkbookRangeRows
|
|
5
5
|
* @category Tasks
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -17,7 +17,7 @@ const iterateWorkbookRangeRows_ts_1 = require("./iterateWorkbookRangeRows.js");
|
|
|
17
17
|
* @remarks Where practical, prefer using {@link iterateWorkbookRangeRows} for more efficient memory usage.
|
|
18
18
|
* @experimental
|
|
19
19
|
* @example
|
|
20
|
-
* const rows = await
|
|
20
|
+
* const rows = await readWorkbookRangeRows(rangeRef);
|
|
21
21
|
*/
|
|
22
22
|
async function readWorkbookRangeRows(rangeRef, scope = cell_ts_1.defaultCellScope) {
|
|
23
23
|
const rows = [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Update first row in a given workbook range.
|
|
3
|
-
* @module
|
|
3
|
+
* @module updateWorkbookRangeFirstRow
|
|
4
4
|
* @category Tasks
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -14,10 +14,10 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
14
14
|
* @experimental
|
|
15
15
|
* @example
|
|
16
16
|
* // Basic example:
|
|
17
|
-
* await
|
|
17
|
+
* await updateWorkbookRangeFirstRow(rangeRef, [{ value: 1 }, { value: 2 }]);
|
|
18
18
|
*
|
|
19
19
|
* // Advanced example with cell formatting:
|
|
20
|
-
* await
|
|
20
|
+
* await updateWorkbookRangeFirstRow(rangeRef, [
|
|
21
21
|
* { value: "Column A", style: { alignment: { horizontal: "Right" }, font: { bold: true } } },
|
|
22
22
|
* { value: "Column B", style: { alignment: { horizontal: "Right" }, font: { bold: true } } }
|
|
23
23
|
* ]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Update first row in a given workbook range.
|
|
4
|
-
* @module
|
|
4
|
+
* @module updateWorkbookRangeFirstRow
|
|
5
5
|
* @category Tasks
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -19,10 +19,10 @@ const updateWorkbookRangeRows_ts_1 = __importDefault(require("./updateWorkbookRa
|
|
|
19
19
|
* @experimental
|
|
20
20
|
* @example
|
|
21
21
|
* // Basic example:
|
|
22
|
-
* await
|
|
22
|
+
* await updateWorkbookRangeFirstRow(rangeRef, [{ value: 1 }, { value: 2 }]);
|
|
23
23
|
*
|
|
24
24
|
* // Advanced example with cell formatting:
|
|
25
|
-
* await
|
|
25
|
+
* await updateWorkbookRangeFirstRow(rangeRef, [
|
|
26
26
|
* { value: "Column A", style: { alignment: { horizontal: "Right" }, font: { bold: true } } },
|
|
27
27
|
* { value: "Column B", style: { alignment: { horizontal: "Right" }, font: { bold: true } } }
|
|
28
28
|
* ]);
|
|
@@ -9,18 +9,27 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
9
9
|
* @experimental
|
|
10
10
|
* @example
|
|
11
11
|
* // Basic example:
|
|
12
|
-
* await
|
|
12
|
+
* await updateWorkbookRangeRows(rangeRef, [
|
|
13
13
|
* [{ value: 1 }, { value: 2 }],
|
|
14
14
|
* [{ value: 3 }, { value: 4 }],
|
|
15
15
|
* [{ value: 5 }, { value: 6 }],
|
|
16
16
|
* ]);
|
|
17
17
|
*
|
|
18
18
|
* // Advanced example with cell formatting:
|
|
19
|
-
* await
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* ]
|
|
19
|
+
* await updateWorkbookRangeRows(rangeRef, [
|
|
20
|
+
* [
|
|
21
|
+
* { value: "Column A", alignment: { horizontal: "Right" }, font: { bold: true, color: "#ffffff" as Color }, fill: { color: "#000000" as Color } },
|
|
22
|
+
* { value: "Column B", alignment: { horizontal: "Right" }, font: { bold: true, color: "#ffffff" as Color }, fill: { color: "#000000" as Color } },
|
|
23
|
+
* ],
|
|
24
|
+
* [
|
|
25
|
+
* { value: 1, format: accountingCellFormat },
|
|
26
|
+
* { value: "A" },
|
|
27
|
+
* ],
|
|
28
|
+
* [
|
|
29
|
+
* { value: 2, format: accountingCellFormat },
|
|
30
|
+
* { value: "B" }],
|
|
31
|
+
* ],
|
|
32
|
+
* );
|
|
24
33
|
*/
|
|
25
34
|
export default function updateWorkbookRangeRows(originRef: WorkbookRangeRef, cells: Iterable<Partial<Cell>[]> | AsyncIterable<Partial<Cell>[]>, maxCellsPerOperation?: number | null): Promise<void>;
|
|
26
35
|
//# sourceMappingURL=updateWorkbookRangeRows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/updateWorkbookRangeRows.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE
|
|
1
|
+
{"version":3,"file":"updateWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/updateWorkbookRangeRows.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,wBAA8B,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/M"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = updateWorkbookRangeRows;
|
|
7
7
|
/**
|
|
8
8
|
* Update rows in a given workbook range.
|
|
9
|
-
* @module
|
|
9
|
+
* @module updateWorkbookRangeRows
|
|
10
10
|
* @category Tasks
|
|
11
11
|
* @experimental
|
|
12
12
|
*/
|
|
@@ -30,18 +30,27 @@ const stringCaseConversion_ts_1 = require("../services/stringCaseConversion.js")
|
|
|
30
30
|
* @experimental
|
|
31
31
|
* @example
|
|
32
32
|
* // Basic example:
|
|
33
|
-
* await
|
|
33
|
+
* await updateWorkbookRangeRows(rangeRef, [
|
|
34
34
|
* [{ value: 1 }, { value: 2 }],
|
|
35
35
|
* [{ value: 3 }, { value: 4 }],
|
|
36
36
|
* [{ value: 5 }, { value: 6 }],
|
|
37
37
|
* ]);
|
|
38
38
|
*
|
|
39
39
|
* // Advanced example with cell formatting:
|
|
40
|
-
* await
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* ]
|
|
40
|
+
* await updateWorkbookRangeRows(rangeRef, [
|
|
41
|
+
* [
|
|
42
|
+
* { value: "Column A", alignment: { horizontal: "Right" }, font: { bold: true, color: "#ffffff" as Color }, fill: { color: "#000000" as Color } },
|
|
43
|
+
* { value: "Column B", alignment: { horizontal: "Right" }, font: { bold: true, color: "#ffffff" as Color }, fill: { color: "#000000" as Color } },
|
|
44
|
+
* ],
|
|
45
|
+
* [
|
|
46
|
+
* { value: 1, format: accountingCellFormat },
|
|
47
|
+
* { value: "A" },
|
|
48
|
+
* ],
|
|
49
|
+
* [
|
|
50
|
+
* { value: 2, format: accountingCellFormat },
|
|
51
|
+
* { value: "B" }],
|
|
52
|
+
* ],
|
|
53
|
+
* );
|
|
45
54
|
*/
|
|
46
55
|
async function updateWorkbookRangeRows(originRef, cells, maxCellsPerOperation = null) {
|
|
47
56
|
let maxRowsPerOperation = maxCellsPerOperation;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automated conversion of rows to objects and vice versa based on defined mapping rules.
|
|
3
|
+
* @module objectMapping
|
|
4
|
+
* @category Services
|
|
5
|
+
*/
|
|
6
|
+
import type { Cell } from "../models/Cell.ts";
|
|
7
|
+
import type { ColumnName, ColumnOffset } from "../models/Column.ts";
|
|
8
|
+
/**
|
|
9
|
+
* Defines rules for mapping between spreadsheet rows and object properties.
|
|
10
|
+
* @template T Object type to map to/from.
|
|
11
|
+
*/
|
|
12
|
+
export type ObjectMapping<T> = {
|
|
13
|
+
[K in keyof T]-?: {
|
|
14
|
+
/**
|
|
15
|
+
* Pattern to match a column heading for mapping to the object property.
|
|
16
|
+
* If a string is provided, it will be used as the column name.
|
|
17
|
+
*/
|
|
18
|
+
columnPattern: RegExp;
|
|
19
|
+
/**
|
|
20
|
+
* Decodes a cell to an object property value.
|
|
21
|
+
* @param cell Cell to decode.
|
|
22
|
+
* @returns Decoded property value.
|
|
23
|
+
* @remarks If omitted, the cell's `value` (not `text`) will be used without conversion.
|
|
24
|
+
* @example
|
|
25
|
+
* (cell: Cell) => Number.parseFloat(cell.value.toString()) // Convert string number to number
|
|
26
|
+
*/
|
|
27
|
+
decode?: (cell: Cell) => T[K];
|
|
28
|
+
/**
|
|
29
|
+
* Encodes an object property value to a cell.
|
|
30
|
+
* @param prop Property value to encode.
|
|
31
|
+
* @returns Encoded cell.
|
|
32
|
+
* @remarks If omitted, the cell will be created with the `value` property set to the property value.
|
|
33
|
+
* @example
|
|
34
|
+
* (prop: number) => ({ value: prop.toString(), ... }) // Convert number to string cell value
|
|
35
|
+
*/
|
|
36
|
+
encode?: (prop: T[K]) => Cell;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolved mapping from object properties to column offsets and encode/decode functions.
|
|
41
|
+
* @template T Object type being mapped.
|
|
42
|
+
*/
|
|
43
|
+
export type ResolvedObjectMapping<T> = {
|
|
44
|
+
[K in keyof T]-?: {
|
|
45
|
+
columnOffset: ColumnOffset;
|
|
46
|
+
decode: (cell: Cell) => T[K];
|
|
47
|
+
encode: (prop: T[K]) => Cell;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Converts spreadsheet rows to objects using the first row as a header.
|
|
52
|
+
* @template T The object type to yield.
|
|
53
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
54
|
+
* @param rules Mapping rules for converting columns to object properties.
|
|
55
|
+
* @yields Objects of type T, one for each data row.
|
|
56
|
+
*/
|
|
57
|
+
export declare function rowsToObjectsWithHeader<T>(rows: Iterable<Cell[]> | AsyncIterable<Cell[]>, rules: ObjectMapping<T>): AsyncIterable<T>;
|
|
58
|
+
/**
|
|
59
|
+
* Creates a mapping from a header row to object properties based on provided rules.
|
|
60
|
+
* @template T The object type being mapped.
|
|
61
|
+
* @param headerRow The header row, used to determine column offsets.
|
|
62
|
+
* @param rules The mapping rules for converting cells to object properties.
|
|
63
|
+
* @returns The resolved mapping for use in row/object conversion.
|
|
64
|
+
* @throws {InvalidArgumentError} If a column matching a pattern is not found in the header row.
|
|
65
|
+
*/
|
|
66
|
+
export declare function createObjectMapping<T>(headerRow: (ColumnName | Cell)[], rules: ObjectMapping<T>): ResolvedObjectMapping<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Converts spreadsheet rows to objects using a provided mapping.
|
|
69
|
+
* @template T The object type to yield.
|
|
70
|
+
* @param rows Iterable or async iterable of cell arrays (rows).
|
|
71
|
+
* @param mapping The resolved mapping for row/object conversion.
|
|
72
|
+
* @yields Objects of type T, one for each row.
|
|
73
|
+
*/
|
|
74
|
+
export declare function rowsToObjects<T>(rows: Iterable<Cell[]> | AsyncIterable<Cell[]>, mapping: ResolvedObjectMapping<T>): AsyncIterable<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Converts objects to spreadsheet rows using a provided mapping.
|
|
77
|
+
* @template T The object type to convert.
|
|
78
|
+
* @param objects Iterable or async iterable of objects.
|
|
79
|
+
* @param mapping The resolved mapping for object/row conversion.
|
|
80
|
+
* @yields Arrays of partial cells, one for each object.
|
|
81
|
+
*/
|
|
82
|
+
export declare function objectsToRows<T>(objects: Iterable<T> | AsyncIterable<T>, mapping: ResolvedObjectMapping<T>): AsyncIterable<Partial<Cell>[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Converts a row of cells to an object using the provided mapping.
|
|
85
|
+
* @template T The object type to return.
|
|
86
|
+
* @param cells The array of cells representing a row.
|
|
87
|
+
* @param rules The resolved mapping for row/object conversion.
|
|
88
|
+
* @returns The object of type T.
|
|
89
|
+
* @throws {InvalidArgumentError} If a required column is missing in the row.
|
|
90
|
+
*/
|
|
91
|
+
export declare function rowToObject<T>(cells: Cell[], rules: ResolvedObjectMapping<T>): T;
|
|
92
|
+
/**
|
|
93
|
+
* Converts an object to a row of cells using the provided mapping.
|
|
94
|
+
* @template T The object type to convert.
|
|
95
|
+
* @param record The object to convert.
|
|
96
|
+
* @param mapper The resolved mapping for object/row conversion.
|
|
97
|
+
* @returns An array of partial cells representing the row.
|
|
98
|
+
*/
|
|
99
|
+
export declare function objectToRow<T>(record: T, mapper: ResolvedObjectMapping<T>): Partial<Cell>[];
|
|
100
|
+
//# sourceMappingURL=objectMapping.d.ts.map
|