@powersync/service-module-mongodb-storage 0.0.0-dev-20250724111728 → 0.0.0-dev-20250729101933
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/CHANGELOG.md +7 -5
- package/dist/migrations/db/migrations/1752661449910-sdk-reporting.js +4 -4
- package/dist/migrations/db/migrations/1752661449910-sdk-reporting.js.map +1 -1
- package/dist/storage/MongoReportStorage.d.ts +1 -0
- package/dist/storage/MongoReportStorage.js +18 -19
- package/dist/storage/MongoReportStorage.js.map +1 -1
- package/dist/storage/implementation/util.d.ts +0 -7
- package/dist/storage/implementation/util.js +0 -13
- package/dist/storage/implementation/util.js.map +1 -1
- package/package.json +6 -6
- package/src/migrations/db/migrations/1752661449910-sdk-reporting.ts +4 -4
- package/src/storage/MongoReportStorage.ts +19 -20
- package/src/storage/implementation/util.ts +0 -14
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @powersync/service-module-mongodb-storage
|
|
2
2
|
|
|
3
|
-
## 0.0.0-dev-
|
|
3
|
+
## 0.0.0-dev-20250729101933
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -10,15 +10,17 @@
|
|
|
10
10
|
|
|
11
11
|
- f1d187b: sdk reporting
|
|
12
12
|
- a700ec9: Reporting mongo storage added to storage engine.
|
|
13
|
+
- Updated dependencies [2378e36]
|
|
13
14
|
- Updated dependencies [f1d187b]
|
|
14
15
|
- Updated dependencies [4ebc3bf]
|
|
16
|
+
- Updated dependencies [2378e36]
|
|
15
17
|
- Updated dependencies [1aafdaf]
|
|
16
18
|
- Updated dependencies [d56eeb9]
|
|
17
19
|
- Updated dependencies [a700ec9]
|
|
18
|
-
- @powersync/service-core@0.0.0-dev-
|
|
19
|
-
- @powersync/service-types@0.0.0-dev-
|
|
20
|
-
- @powersync/lib-services-framework@0.0.0-dev-
|
|
21
|
-
- @powersync/lib-service-mongodb@0.0.0-dev-
|
|
20
|
+
- @powersync/service-core@0.0.0-dev-20250729101933
|
|
21
|
+
- @powersync/service-types@0.0.0-dev-20250729101933
|
|
22
|
+
- @powersync/lib-services-framework@0.0.0-dev-20250729101933
|
|
23
|
+
- @powersync/lib-service-mongodb@0.0.0-dev-20250729101933
|
|
22
24
|
|
|
23
25
|
## 0.10.4
|
|
24
26
|
|
|
@@ -8,16 +8,16 @@ export const up = async (context) => {
|
|
|
8
8
|
connect_at: 1,
|
|
9
9
|
jwt_exp: 1,
|
|
10
10
|
disconnect_at: 1
|
|
11
|
-
}, { name: '
|
|
11
|
+
}, { name: 'sdk_list_index' });
|
|
12
12
|
await db.sdk_report_events.createIndex({
|
|
13
13
|
user_id: 1
|
|
14
|
-
}, { name: '
|
|
14
|
+
}, { name: 'sdk_user_id_index' });
|
|
15
15
|
await db.sdk_report_events.createIndex({
|
|
16
16
|
client_id: 1
|
|
17
|
-
}, { name: '
|
|
17
|
+
}, { name: 'sdk_client_id_index' });
|
|
18
18
|
await db.sdk_report_events.createIndex({
|
|
19
19
|
sdk: 1
|
|
20
|
-
}, { name: '
|
|
20
|
+
}, { name: 'sdk_index' });
|
|
21
21
|
}
|
|
22
22
|
finally {
|
|
23
23
|
await db.client.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1752661449910-sdk-reporting.js","sourceRoot":"","sources":["../../../../src/migrations/db/migrations/1752661449910-sdk-reporting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,mCAAmC,CAAC;AAG7D,MAAM,CAAC,MAAM,EAAE,GAA0C,KAAK,EAAE,OAAO,EAAE,EAAE;IACzE,MAAM,EACJ,eAAe,EAAE,EAAE,aAAa,EAAE,EACnC,GAAG,OAAO,CAAC;IACZ,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAA6B,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,4BAA4B,EAAE,CAAC;QAExC,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CACpC;YACE,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;SACjB,EACD,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"1752661449910-sdk-reporting.js","sourceRoot":"","sources":["../../../../src/migrations/db/migrations/1752661449910-sdk-reporting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,mCAAmC,CAAC;AAG7D,MAAM,CAAC,MAAM,EAAE,GAA0C,KAAK,EAAE,OAAO,EAAE,EAAE;IACzE,MAAM,EACJ,eAAe,EAAE,EAAE,aAAa,EAAE,EACnC,GAAG,OAAO,CAAC;IACZ,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAA6B,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,4BAA4B,EAAE,CAAC;QAExC,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CACpC;YACE,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;SACjB,EACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CAAC;QAEF,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CACpC;YACE,OAAO,EAAE,CAAC;SACX,EACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAC9B,CAAC;QACF,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CACpC;YACE,SAAS,EAAE,CAAC;SACb,EACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAChC,CAAC;QACF,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CACpC;YACE,GAAG,EAAE,CAAC;SACP,EACD,EAAE,IAAI,EAAE,WAAW,EAAE,CACtB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAA0C,KAAK,EAAE,OAAO,EAAE,EAAE;IAC3E,MAAM,EACJ,eAAe,EAAE,EAAE,aAAa,EAAE,EACnC,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAA6B,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,EAAE,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,EAAE,CAAC,wBAAwB,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,MAAM,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -5,6 +5,7 @@ export declare class MongoReportStorage implements storage.ReportStorageFactory
|
|
|
5
5
|
private readonly client;
|
|
6
6
|
readonly db: PowerSyncMongo;
|
|
7
7
|
constructor(db: PowerSyncMongo);
|
|
8
|
+
private parseJsDate;
|
|
8
9
|
private sdkFacetPipeline;
|
|
9
10
|
private sdkProjectPipeline;
|
|
10
11
|
private updateDocFilter;
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
import { logger } from '@powersync/lib-services-framework';
|
|
2
|
-
import { parseJsDate } from './implementation/util.js';
|
|
3
|
-
function parseDate(date) {
|
|
4
|
-
const year = date.getFullYear();
|
|
5
|
-
const month = date.getMonth();
|
|
6
|
-
const today = date.getDate();
|
|
7
|
-
const day = date.getDay();
|
|
8
|
-
return {
|
|
9
|
-
year,
|
|
10
|
-
month,
|
|
11
|
-
today,
|
|
12
|
-
day,
|
|
13
|
-
parsedDate: date
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
2
|
export class MongoReportStorage {
|
|
17
3
|
client;
|
|
18
4
|
db;
|
|
@@ -20,6 +6,19 @@ export class MongoReportStorage {
|
|
|
20
6
|
this.client = db.client;
|
|
21
7
|
this.db = db;
|
|
22
8
|
}
|
|
9
|
+
parseJsDate(date) {
|
|
10
|
+
const year = date.getFullYear();
|
|
11
|
+
const month = date.getMonth();
|
|
12
|
+
const today = date.getDate();
|
|
13
|
+
const day = date.getDay();
|
|
14
|
+
return {
|
|
15
|
+
year,
|
|
16
|
+
month,
|
|
17
|
+
today,
|
|
18
|
+
day,
|
|
19
|
+
parsedDate: date
|
|
20
|
+
};
|
|
21
|
+
}
|
|
23
22
|
sdkFacetPipeline() {
|
|
24
23
|
return {
|
|
25
24
|
$facet: {
|
|
@@ -63,7 +62,7 @@ export class MongoReportStorage {
|
|
|
63
62
|
};
|
|
64
63
|
}
|
|
65
64
|
updateDocFilter(userId, clientId) {
|
|
66
|
-
const { year, month, today } =
|
|
65
|
+
const { year, month, today } = this.parseJsDate(new Date());
|
|
67
66
|
const nextDay = today + 1;
|
|
68
67
|
return {
|
|
69
68
|
user_id: userId,
|
|
@@ -88,7 +87,7 @@ export class MongoReportStorage {
|
|
|
88
87
|
};
|
|
89
88
|
}
|
|
90
89
|
timeFrameQuery(timeframe, interval = 1) {
|
|
91
|
-
const { year, month, today, parsedDate } = parseJsDate(new Date());
|
|
90
|
+
const { year, month, today, parsedDate } = this.parseJsDate(new Date());
|
|
92
91
|
switch (timeframe) {
|
|
93
92
|
case 'month': {
|
|
94
93
|
return { $lte: parsedDate, $gt: new Date(year, parsedDate.getMonth() - interval) };
|
|
@@ -96,7 +95,7 @@ export class MongoReportStorage {
|
|
|
96
95
|
case 'week': {
|
|
97
96
|
const weekStartDate = new Date(parsedDate);
|
|
98
97
|
weekStartDate.setDate(weekStartDate.getDate() - 6 * interval);
|
|
99
|
-
const weekStart = parseJsDate(weekStartDate);
|
|
98
|
+
const weekStart = this.parseJsDate(weekStartDate);
|
|
100
99
|
return {
|
|
101
100
|
$lte: parsedDate,
|
|
102
101
|
$gt: new Date(weekStart.year, weekStart.month, weekStart.today)
|
|
@@ -119,7 +118,7 @@ export class MongoReportStorage {
|
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
120
|
timeFrameDeleteQuery(timeframe, interval = 1) {
|
|
122
|
-
const { year, month, today, parsedDate } = parseJsDate(new Date());
|
|
121
|
+
const { year, month, today, parsedDate } = this.parseJsDate(new Date());
|
|
123
122
|
switch (timeframe) {
|
|
124
123
|
case 'month': {
|
|
125
124
|
return { $lt: new Date(year, parsedDate.getMonth() - interval) };
|
|
@@ -127,7 +126,7 @@ export class MongoReportStorage {
|
|
|
127
126
|
case 'week': {
|
|
128
127
|
const weekStartDate = new Date(parsedDate);
|
|
129
128
|
weekStartDate.setDate(weekStartDate.getDate() - 6 * interval);
|
|
130
|
-
const { month, year, today } = parseJsDate(weekStartDate);
|
|
129
|
+
const { month, year, today } = this.parseJsDate(weekStartDate);
|
|
131
130
|
return {
|
|
132
131
|
$lt: new Date(year, month, today)
|
|
133
132
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,3 @@ export declare function replicaIdToSubkey(table: bson.ObjectId, id: storage.Repl
|
|
|
26
26
|
* Helper for unit tests
|
|
27
27
|
*/
|
|
28
28
|
export declare const connectMongoForTests: (url: string, isCI: boolean) => PowerSyncMongo;
|
|
29
|
-
export declare function parseJsDate(date: Date): {
|
|
30
|
-
year: number;
|
|
31
|
-
month: number;
|
|
32
|
-
today: number;
|
|
33
|
-
day: number;
|
|
34
|
-
parsedDate: Date;
|
|
35
|
-
};
|
|
@@ -108,17 +108,4 @@ export const connectMongoForTests = (url, isCI) => {
|
|
|
108
108
|
});
|
|
109
109
|
return new PowerSyncMongo(client);
|
|
110
110
|
};
|
|
111
|
-
export function parseJsDate(date) {
|
|
112
|
-
const year = date.getFullYear();
|
|
113
|
-
const month = date.getMonth();
|
|
114
|
-
const today = date.getDate();
|
|
115
|
-
const day = date.getDay();
|
|
116
|
-
return {
|
|
117
|
-
year,
|
|
118
|
-
month,
|
|
119
|
-
today,
|
|
120
|
-
day,
|
|
121
|
-
parsedDate: date
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
111
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/storage/implementation/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/storage/implementation/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@powersync/service-module-mongodb-storage",
|
|
3
3
|
"repository": "https://github.com/powersync-ja/powersync-service",
|
|
4
4
|
"types": "dist/index.d.ts",
|
|
5
|
-
"version": "0.0.0-dev-
|
|
5
|
+
"version": "0.0.0-dev-20250729101933",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"license": "FSL-1.1-Apache-2.0",
|
|
8
8
|
"type": "module",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"lru-cache": "^10.2.2",
|
|
28
28
|
"ts-codec": "^1.3.0",
|
|
29
29
|
"uuid": "^11.1.0",
|
|
30
|
-
"@powersync/lib-service-mongodb": "0.0.0-dev-
|
|
31
|
-
"@powersync/lib-services-framework": "0.0.0-dev-
|
|
32
|
-
"@powersync/service-core": "0.0.0-dev-
|
|
33
|
-
"@powersync/service-types": "0.0.0-dev-
|
|
30
|
+
"@powersync/lib-service-mongodb": "0.0.0-dev-20250729101933",
|
|
31
|
+
"@powersync/lib-services-framework": "0.0.0-dev-20250729101933",
|
|
32
|
+
"@powersync/service-core": "0.0.0-dev-20250729101933",
|
|
33
|
+
"@powersync/service-types": "0.0.0-dev-20250729101933",
|
|
34
34
|
"@powersync/service-jsonbig": "0.17.10",
|
|
35
35
|
"@powersync/service-sync-rules": "0.27.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@powersync/service-core-tests": "0.0.0-dev-
|
|
38
|
+
"@powersync/service-core-tests": "0.0.0-dev-20250729101933"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsc -b",
|
|
@@ -17,26 +17,26 @@ export const up: migrations.PowerSyncMigrationFunction = async (context) => {
|
|
|
17
17
|
jwt_exp: 1,
|
|
18
18
|
disconnect_at: 1
|
|
19
19
|
},
|
|
20
|
-
{ name: '
|
|
20
|
+
{ name: 'sdk_list_index' }
|
|
21
21
|
);
|
|
22
22
|
|
|
23
23
|
await db.sdk_report_events.createIndex(
|
|
24
24
|
{
|
|
25
25
|
user_id: 1
|
|
26
26
|
},
|
|
27
|
-
{ name: '
|
|
27
|
+
{ name: 'sdk_user_id_index' }
|
|
28
28
|
);
|
|
29
29
|
await db.sdk_report_events.createIndex(
|
|
30
30
|
{
|
|
31
31
|
client_id: 1
|
|
32
32
|
},
|
|
33
|
-
{ name: '
|
|
33
|
+
{ name: 'sdk_client_id_index' }
|
|
34
34
|
);
|
|
35
35
|
await db.sdk_report_events.createIndex(
|
|
36
36
|
{
|
|
37
37
|
sdk: 1
|
|
38
38
|
},
|
|
39
|
-
{ name: '
|
|
39
|
+
{ name: 'sdk_index' }
|
|
40
40
|
);
|
|
41
41
|
} finally {
|
|
42
42
|
await db.client.close();
|
|
@@ -3,21 +3,6 @@ import { storage } from '@powersync/service-core';
|
|
|
3
3
|
import { event_types } from '@powersync/service-types';
|
|
4
4
|
import { PowerSyncMongo } from './implementation/db.js';
|
|
5
5
|
import { logger } from '@powersync/lib-services-framework';
|
|
6
|
-
import { parseJsDate } from './implementation/util.js';
|
|
7
|
-
|
|
8
|
-
function parseDate(date: Date) {
|
|
9
|
-
const year = date.getFullYear();
|
|
10
|
-
const month = date.getMonth();
|
|
11
|
-
const today = date.getDate();
|
|
12
|
-
const day = date.getDay();
|
|
13
|
-
return {
|
|
14
|
-
year,
|
|
15
|
-
month,
|
|
16
|
-
today,
|
|
17
|
-
day,
|
|
18
|
-
parsedDate: date
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
6
|
|
|
22
7
|
export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
23
8
|
private readonly client: mongo.MongoClient;
|
|
@@ -28,6 +13,20 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
28
13
|
this.db = db;
|
|
29
14
|
}
|
|
30
15
|
|
|
16
|
+
private parseJsDate(date: Date) {
|
|
17
|
+
const year = date.getFullYear();
|
|
18
|
+
const month = date.getMonth();
|
|
19
|
+
const today = date.getDate();
|
|
20
|
+
const day = date.getDay();
|
|
21
|
+
return {
|
|
22
|
+
year,
|
|
23
|
+
month,
|
|
24
|
+
today,
|
|
25
|
+
day,
|
|
26
|
+
parsedDate: date
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
31
30
|
private sdkFacetPipeline() {
|
|
32
31
|
return {
|
|
33
32
|
$facet: {
|
|
@@ -73,7 +72,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
private updateDocFilter(userId: string, clientId: string) {
|
|
76
|
-
const { year, month, today } =
|
|
75
|
+
const { year, month, today } = this.parseJsDate(new Date());
|
|
77
76
|
const nextDay = today + 1;
|
|
78
77
|
return {
|
|
79
78
|
user_id: userId,
|
|
@@ -100,7 +99,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
100
99
|
}
|
|
101
100
|
|
|
102
101
|
private timeFrameQuery(timeframe: event_types.TimeFrames, interval: number = 1): mongo.Filter<mongo.Document> {
|
|
103
|
-
const { year, month, today, parsedDate } = parseJsDate(new Date());
|
|
102
|
+
const { year, month, today, parsedDate } = this.parseJsDate(new Date());
|
|
104
103
|
switch (timeframe) {
|
|
105
104
|
case 'month': {
|
|
106
105
|
return { $lte: parsedDate, $gt: new Date(year, parsedDate.getMonth() - interval) };
|
|
@@ -108,7 +107,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
108
107
|
case 'week': {
|
|
109
108
|
const weekStartDate = new Date(parsedDate);
|
|
110
109
|
weekStartDate.setDate(weekStartDate.getDate() - 6 * interval);
|
|
111
|
-
const weekStart = parseJsDate(weekStartDate);
|
|
110
|
+
const weekStart = this.parseJsDate(weekStartDate);
|
|
112
111
|
return {
|
|
113
112
|
$lte: parsedDate,
|
|
114
113
|
$gt: new Date(weekStart.year, weekStart.month, weekStart.today)
|
|
@@ -132,7 +131,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
private timeFrameDeleteQuery(timeframe: event_types.TimeFrames, interval: number = 1): mongo.Filter<mongo.Document> {
|
|
135
|
-
const { year, month, today, parsedDate } = parseJsDate(new Date());
|
|
134
|
+
const { year, month, today, parsedDate } = this.parseJsDate(new Date());
|
|
136
135
|
switch (timeframe) {
|
|
137
136
|
case 'month': {
|
|
138
137
|
return { $lt: new Date(year, parsedDate.getMonth() - interval) };
|
|
@@ -140,7 +139,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
|
|
|
140
139
|
case 'week': {
|
|
141
140
|
const weekStartDate = new Date(parsedDate);
|
|
142
141
|
weekStartDate.setDate(weekStartDate.getDate() - 6 * interval);
|
|
143
|
-
const { month, year, today } = parseJsDate(weekStartDate);
|
|
142
|
+
const { month, year, today } = this.parseJsDate(weekStartDate);
|
|
144
143
|
return {
|
|
145
144
|
$lt: new Date(year, month, today)
|
|
146
145
|
};
|
|
@@ -116,17 +116,3 @@ export const connectMongoForTests = (url: string, isCI: boolean) => {
|
|
|
116
116
|
});
|
|
117
117
|
return new PowerSyncMongo(client);
|
|
118
118
|
};
|
|
119
|
-
|
|
120
|
-
export function parseJsDate(date: Date) {
|
|
121
|
-
const year = date.getFullYear();
|
|
122
|
-
const month = date.getMonth();
|
|
123
|
-
const today = date.getDate();
|
|
124
|
-
const day = date.getDay();
|
|
125
|
-
return {
|
|
126
|
-
year,
|
|
127
|
-
month,
|
|
128
|
-
today,
|
|
129
|
-
day,
|
|
130
|
-
parsedDate: date
|
|
131
|
-
};
|
|
132
|
-
}
|