@forestadmin-experimental/datasource-cosmos 1.8.1 → 1.8.2
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.
|
@@ -29,7 +29,8 @@ export default class AggregationConverter {
|
|
|
29
29
|
private static DATE_OPERATION_TO_LENGTH;
|
|
30
30
|
/**
|
|
31
31
|
* Build a Cosmos DB expression that truncates a date field to the given granularity.
|
|
32
|
-
* Uses LEFT() on ISO 8601 string dates
|
|
32
|
+
* Uses LEFT() on ISO 8601 string dates for Year/Month/Day.
|
|
33
|
+
* Week uses DateTimeAdd/DateTimePart to compute Monday of the week.
|
|
33
34
|
*/
|
|
34
35
|
private static buildDateGroupExpression;
|
|
35
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-converter.d.ts","sourceRoot":"","sources":["../../src/utils/aggregation-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,WAAW,EAEX,aAAa,EACd,MAAM,iCAAiC,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAGrB;IAEH,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAMlC;IAEF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,KAAK,CAAC,EAAE,MAAM,GACb,YAAY;IAiBf;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAIrC;IAEF
|
|
1
|
+
{"version":3,"file":"aggregation-converter.d.ts","sourceRoot":"","sources":["../../src/utils/aggregation-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,WAAW,EAEX,aAAa,EACd,MAAM,iCAAiC,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAGrB;IAEH,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAMlC;IAEF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,KAAK,CAAC,EAAE,MAAM,GACb,YAAY;IAiBf;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAIrC;IAEF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA+BvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAuC3C;;OAEG;IACH;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,MAAM,CAAC,yBAAyB,CAC9B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1C,WAAW,EAAE,WAAW,GACvB,eAAe,EAAE;CAqBrB"}
|
|
@@ -47,9 +47,26 @@ class AggregationConverter {
|
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Build a Cosmos DB expression that truncates a date field to the given granularity.
|
|
50
|
-
* Uses LEFT() on ISO 8601 string dates
|
|
50
|
+
* Uses LEFT() on ISO 8601 string dates for Year/Month/Day.
|
|
51
|
+
* Week uses DateTimeAdd/DateTimePart to compute Monday of the week.
|
|
51
52
|
*/
|
|
52
53
|
static buildDateGroupExpression(field, operation) {
|
|
54
|
+
if (operation === 'Week') {
|
|
55
|
+
// Compute the Monday of the week using Cosmos DB date functions.
|
|
56
|
+
// DateTimePart("dw", ...) returns 1=Sunday ... 7=Saturday.
|
|
57
|
+
// To get days-since-Monday: (dw + 5) % 7 → Mon=0, Tue=1, ..., Sun=6.
|
|
58
|
+
// Subtract that many days to get Monday's date.
|
|
59
|
+
const dw = `(DateTimePart("dw", ${field}) + 5) % 7`;
|
|
60
|
+
return `LEFT(DateTimeAdd("day", -1 * (${dw}), ${field}), 10)`;
|
|
61
|
+
}
|
|
62
|
+
if (operation === 'Quarter') {
|
|
63
|
+
// Return first day of the quarter as "YYYY-MM-01" so Forest Admin can parse it.
|
|
64
|
+
// Compute quarter start month: FLOOR((month - 1) / 3) * 3 + 1
|
|
65
|
+
// e.g. Jan-Mar -> 01, Apr-Jun -> 04, Jul-Sep -> 07, Oct-Dec -> 10
|
|
66
|
+
const startMonth = `FLOOR((DateTimePart("mm", ${field}) - 1) / 3) * 3 + 1`;
|
|
67
|
+
const mm = `RIGHT(CONCAT("0", ToString(${startMonth})), 2)`;
|
|
68
|
+
return `CONCAT(LEFT(${field}, 4), "-", ${mm}, "-01")`;
|
|
69
|
+
}
|
|
53
70
|
const length = this.DATE_OPERATION_TO_LENGTH[operation];
|
|
54
71
|
if (!length) {
|
|
55
72
|
throw new Error(`Unsupported date operation: "${operation}"`);
|
|
@@ -137,4 +154,4 @@ AggregationConverter.DATE_OPERATION_TO_LENGTH = {
|
|
|
137
154
|
Day: 10,
|
|
138
155
|
};
|
|
139
156
|
exports.default = AggregationConverter;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2FnZ3JlZ2F0aW9uLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLHdFQUErQztBQUMvQyx3RUFBK0M7QUFDL0MsOERBQXNDO0FBRXRDLE1BQXFCLG9CQUFvQjtJQWtCdkM7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQU8sR0FBRyxtQkFBbUI7UUFDdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFakQsT0FBTyxLQUFLO2FBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7YUFDbEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUMxQixXQUF3QixFQUN4QixhQUE2QixFQUM3QixLQUFjO1FBRWQsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBYyxFQUFFLENBQUM7UUFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBELDZDQUE2QztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUs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
|