@wisemen/datewise 1.0.0 → 1.0.1
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/common/typeorm/ends-before-or-at.d.ts +15 -0
- package/dist/common/typeorm/ends-before-or-at.js +35 -0
- package/dist/common/typeorm/ends-before-or-at.js.map +1 -0
- package/dist/common/typeorm/index.d.ts +2 -0
- package/dist/common/typeorm/index.js +2 -0
- package/dist/common/typeorm/index.js.map +1 -1
- package/dist/common/typeorm/starts-after-or-at.d.ts +14 -0
- package/dist/common/typeorm/starts-after-or-at.js +34 -0
- package/dist/common/typeorm/starts-after-or-at.js.map +1 -0
- package/dist/date-range/tests/ends-before-or-at-plain-date.integration.test.d.ts +1 -0
- package/dist/date-range/tests/ends-before-or-at-plain-date.integration.test.js +82 -0
- package/dist/date-range/tests/ends-before-or-at-plain-date.integration.test.js.map +1 -0
- package/dist/date-range/tests/starts-after-or-at-plain-date.integration.test.d.ts +1 -0
- package/dist/date-range/tests/starts-after-or-at-plain-date.integration.test.js +82 -0
- package/dist/date-range/tests/starts-after-or-at-plain-date.integration.test.js.map +1 -0
- package/dist/date-time-range/tests/ends-before-or-at-timestamp.integration.test.d.ts +1 -0
- package/dist/date-time-range/tests/ends-before-or-at-timestamp.integration.test.js +67 -0
- package/dist/date-time-range/tests/ends-before-or-at-timestamp.integration.test.js.map +1 -0
- package/dist/date-time-range/tests/starts-after-or-at-timestamp.integration.test.d.ts +1 -0
- package/dist/date-time-range/tests/starts-after-or-at-timestamp.integration.test.js +67 -0
- package/dist/date-time-range/tests/starts-after-or-at-timestamp.integration.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FindOperator } from 'typeorm';
|
|
2
|
+
import { DateTimeRange } from '../../date-time-range/date-time-range.js';
|
|
3
|
+
import { DateRange } from '../../date-range/date-range.js';
|
|
4
|
+
import { PlainDate } from '#src/plain-date/index.js';
|
|
5
|
+
import { Timestamp } from '#src/timestamp/timestamp.js';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a range ends at or before the given range with the `&<` operator.
|
|
8
|
+
*/
|
|
9
|
+
export declare function EndsBeforeOrAt(date: PlainDate): FindOperator<DateRange>;
|
|
10
|
+
export declare function EndsBeforeOrAt(ts: Timestamp | Date): FindOperator<DateTimeRange>;
|
|
11
|
+
/**
|
|
12
|
+
* Alias for EndsBeforeOrAt when working with PlainDate values.
|
|
13
|
+
* Checks if a range ends on or before the given date with the `&<` operator.
|
|
14
|
+
*/
|
|
15
|
+
export declare function EndsBeforeOrOn(date: PlainDate): FindOperator<DateRange>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { Raw } from 'typeorm';
|
|
3
|
+
import { DateTimeRange } from '../../date-time-range/date-time-range.js';
|
|
4
|
+
import { DateRange } from '../../date-range/date-range.js';
|
|
5
|
+
import { isPlainDate } from '#src/plain-date/is-plain-date.js';
|
|
6
|
+
import { isTimestamp } from '#src/timestamp/is-timestamp.js';
|
|
7
|
+
export function EndsBeforeOrAt(value) {
|
|
8
|
+
let range;
|
|
9
|
+
if (isPlainDate(value)) {
|
|
10
|
+
range = new DateRange(value, value);
|
|
11
|
+
}
|
|
12
|
+
else if (isTimestamp(value) || value instanceof Date) {
|
|
13
|
+
range = new DateTimeRange(value, value, '[]');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new Error('invalid argument, expected plain date, timestamp or date');
|
|
17
|
+
}
|
|
18
|
+
const paramName = randomUUID().replaceAll('-', '');
|
|
19
|
+
let cast;
|
|
20
|
+
if (range instanceof DateRange) {
|
|
21
|
+
cast = 'daterange';
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
cast = 'tstzrange3';
|
|
25
|
+
}
|
|
26
|
+
return Raw((alias) => `${alias} &< :${paramName}::${cast}`, { [paramName]: range.toString() });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Alias for EndsBeforeOrAt when working with PlainDate values.
|
|
30
|
+
* Checks if a range ends on or before the given date with the `&<` operator.
|
|
31
|
+
*/
|
|
32
|
+
export function EndsBeforeOrOn(date) {
|
|
33
|
+
return EndsBeforeOrAt(date);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ends-before-or-at.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ends-before-or-at.js","sourceRoot":"","sources":["../../../lib/common/typeorm/ends-before-or-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAQ5D,MAAM,UAAU,cAAc,CAC1B,KAAmC;IAEnC,IAAI,KAAgC,CAAA;IACpC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACrD,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC/E,CAAC;IAGD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,IAAI,IAAY,CAAA;IAChB,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC7B,IAAI,GAAG,WAAW,CAAA;IACtB,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,YAAY,CAAA;IACvB,CAAC;IAED,OAAO,GAAG,CACN,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,KAAK,IAAI,EAAE,EACvD,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACqB,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAE,IAAe;IAC3C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export * from './adjacent-to.js';
|
|
2
2
|
export * from './contained-in.js';
|
|
3
3
|
export * from './ends-before.js';
|
|
4
|
+
export * from './ends-before-or-at.js';
|
|
4
5
|
export * from './is-preceded-by.js';
|
|
5
6
|
export * from './is-succeeded-by.js';
|
|
6
7
|
export * from './overlaps-with.js';
|
|
7
8
|
export * from './precedes.js';
|
|
8
9
|
export * from './starts-after.js';
|
|
10
|
+
export * from './starts-after-or-at.js';
|
|
9
11
|
export * from './strictly-left-of.js';
|
|
10
12
|
export * from './strictly-right-of.js';
|
|
11
13
|
export * from './succeeds.js';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export * from './adjacent-to.js';
|
|
2
2
|
export * from './contained-in.js';
|
|
3
3
|
export * from './ends-before.js';
|
|
4
|
+
export * from './ends-before-or-at.js';
|
|
4
5
|
export * from './is-preceded-by.js';
|
|
5
6
|
export * from './is-succeeded-by.js';
|
|
6
7
|
export * from './overlaps-with.js';
|
|
7
8
|
export * from './precedes.js';
|
|
8
9
|
export * from './starts-after.js';
|
|
10
|
+
export * from './starts-after-or-at.js';
|
|
9
11
|
export * from './strictly-left-of.js';
|
|
10
12
|
export * from './strictly-right-of.js';
|
|
11
13
|
export * from './succeeds.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/common/typeorm/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/common/typeorm/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FindOperator } from 'typeorm';
|
|
2
|
+
import { DateTimeRange } from '../../date-time-range/date-time-range.js';
|
|
3
|
+
import { DateRange } from '../../date-range/date-range.js';
|
|
4
|
+
import { PlainDate } from '#src/plain-date/index.js';
|
|
5
|
+
import { Timestamp } from '#src/timestamp/timestamp.js';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a range starts at or after the given range with the `&>` operator.
|
|
8
|
+
*/
|
|
9
|
+
export declare function StartsAfterOrAt(date: PlainDate): FindOperator<DateRange>;
|
|
10
|
+
export declare function StartsAfterOrAt(ts: Timestamp | Date): FindOperator<DateTimeRange>;
|
|
11
|
+
/**
|
|
12
|
+
* Checks if a range starts on or after the given date with the `&>` operator.
|
|
13
|
+
*/
|
|
14
|
+
export declare function StartsAfterOrOn(date: PlainDate): FindOperator<DateRange>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { Raw } from 'typeorm';
|
|
3
|
+
import { DateTimeRange } from '../../date-time-range/date-time-range.js';
|
|
4
|
+
import { DateRange } from '../../date-range/date-range.js';
|
|
5
|
+
import { isPlainDate } from '#src/plain-date/is-plain-date.js';
|
|
6
|
+
import { isTimestamp } from '#src/timestamp/is-timestamp.js';
|
|
7
|
+
export function StartsAfterOrAt(value) {
|
|
8
|
+
let range;
|
|
9
|
+
if (isPlainDate(value)) {
|
|
10
|
+
range = new DateRange(value, value);
|
|
11
|
+
}
|
|
12
|
+
else if (isTimestamp(value) || value instanceof Date) {
|
|
13
|
+
range = new DateTimeRange(value, value, '[]');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new Error('invalid argument, expected plain date, timestamp or date');
|
|
17
|
+
}
|
|
18
|
+
const paramName = randomUUID().replaceAll('-', '');
|
|
19
|
+
let cast;
|
|
20
|
+
if (range instanceof DateRange) {
|
|
21
|
+
cast = 'daterange';
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
cast = 'tstzrange3';
|
|
25
|
+
}
|
|
26
|
+
return Raw((alias) => `${alias} &> :${paramName}::${cast}`, { [paramName]: range.toString() });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Checks if a range starts on or after the given date with the `&>` operator.
|
|
30
|
+
*/
|
|
31
|
+
export function StartsAfterOrOn(date) {
|
|
32
|
+
return StartsAfterOrAt(date);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=starts-after-or-at.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starts-after-or-at.js","sourceRoot":"","sources":["../../../lib/common/typeorm/starts-after-or-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAQ5D,MAAM,UAAU,eAAe,CAC3B,KAAmC;IAEnC,IAAI,KAAgC,CAAA;IACpC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACrD,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC/E,CAAC;IAGD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,IAAI,IAAY,CAAA;IAChB,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC7B,IAAI,GAAG,WAAW,CAAA;IACtB,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,YAAY,CAAA;IACvB,CAAC;IAED,OAAO,GAAG,CACN,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,KAAK,IAAI,EAAE,EACvD,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACqB,CAAA;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAE,IAAe;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { after, before, describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { In } from 'typeorm';
|
|
4
|
+
import { EndsBeforeOrAt, EndsBeforeOrOn } from '#src/common/index.js';
|
|
5
|
+
import { DateRange } from '#src/date-range/date-range.js';
|
|
6
|
+
import { dataSource } from '#src/date-range/tests/sql/datasource.js';
|
|
7
|
+
import { FiniteDateRangeTest } from '#src/date-range/tests/sql/finite-date-range-test.entity.js';
|
|
8
|
+
import { IntegrationTestSetup } from '#src/date-range/tests/test-setup.js';
|
|
9
|
+
import { plainDate } from '#src/plain-date/plain-date.fn.js';
|
|
10
|
+
describe('EndsBeforeOrAt for PlainDate', () => {
|
|
11
|
+
const integrationTest = new IntegrationTestSetup();
|
|
12
|
+
before(async () => {
|
|
13
|
+
await integrationTest.setup();
|
|
14
|
+
});
|
|
15
|
+
after(async () => {
|
|
16
|
+
await integrationTest.teardown();
|
|
17
|
+
});
|
|
18
|
+
it('finds date ranges that end before the given date', async () => {
|
|
19
|
+
const range1 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
|
|
20
|
+
const range2 = new DateRange(plainDate('2025-01-15'), plainDate('2025-01-20'));
|
|
21
|
+
const range3 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
22
|
+
await seed(dataSource, { id: 1, range: range1 });
|
|
23
|
+
await seed(dataSource, { id: 2, range: range2 });
|
|
24
|
+
await seed(dataSource, { id: 3, range: range3 });
|
|
25
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
26
|
+
where: {
|
|
27
|
+
id: In([1, 2, 3]),
|
|
28
|
+
range: EndsBeforeOrAt(plainDate('2025-02-15'))
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
expect(results.length).toBe(2);
|
|
32
|
+
expect(results.some(r => r.id === 1)).toBe(true);
|
|
33
|
+
expect(results.some(r => r.id === 2)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('includes date ranges that end on the given date', async () => {
|
|
36
|
+
const range1 = new DateRange(plainDate('2025-02-01'), plainDate('2025-02-15'));
|
|
37
|
+
const range2 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
|
|
38
|
+
const range3 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
39
|
+
await seed(dataSource, { id: 4, range: range1 });
|
|
40
|
+
await seed(dataSource, { id: 5, range: range2 });
|
|
41
|
+
await seed(dataSource, { id: 6, range: range3 });
|
|
42
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
43
|
+
where: {
|
|
44
|
+
id: In([4, 5, 6]),
|
|
45
|
+
range: EndsBeforeOrAt(plainDate('2025-02-15'))
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
expect(results.length).toBe(2);
|
|
49
|
+
expect(results.some(r => r.id === 4)).toBe(true);
|
|
50
|
+
expect(results.some(r => r.id === 5)).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('excludes date ranges that end after the given date', async () => {
|
|
53
|
+
const range1 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
54
|
+
await seed(dataSource, { id: 7, range: range1 });
|
|
55
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
56
|
+
where: {
|
|
57
|
+
id: In([7]),
|
|
58
|
+
range: EndsBeforeOrAt(plainDate('2025-02-15'))
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
expect(results.length).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
it('EndsBeforeOrOn works identically to EndsBeforeOrAt', async () => {
|
|
64
|
+
const range1 = new DateRange(plainDate('2025-01-01'), plainDate('2025-02-15'));
|
|
65
|
+
const range2 = new DateRange(plainDate('2025-01-15'), plainDate('2025-01-31'));
|
|
66
|
+
await seed(dataSource, { id: 8, range: range1 });
|
|
67
|
+
await seed(dataSource, { id: 9, range: range2 });
|
|
68
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
69
|
+
where: {
|
|
70
|
+
id: In([8, 9]),
|
|
71
|
+
range: EndsBeforeOrOn(plainDate('2025-02-15'))
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
expect(results.length).toBe(2);
|
|
75
|
+
expect(results.some(r => r.id === 8)).toBe(true);
|
|
76
|
+
expect(results.some(r => r.id === 9)).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
async function seed(dataSource, row) {
|
|
79
|
+
await dataSource.manager.upsert(FiniteDateRangeTest, row, { conflictPaths: { id: true } });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=ends-before-or-at-plain-date.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ends-before-or-at-plain-date.integration.test.js","sourceRoot":"","sources":["../../../lib/date-range/tests/ends-before-or-at-plain-date.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { after, before, describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { In } from 'typeorm';
|
|
4
|
+
import { StartsAfterOrAt, StartsAfterOrOn } from '#src/common/index.js';
|
|
5
|
+
import { DateRange } from '#src/date-range/date-range.js';
|
|
6
|
+
import { dataSource } from '#src/date-range/tests/sql/datasource.js';
|
|
7
|
+
import { FiniteDateRangeTest } from '#src/date-range/tests/sql/finite-date-range-test.entity.js';
|
|
8
|
+
import { IntegrationTestSetup } from '#src/date-range/tests/test-setup.js';
|
|
9
|
+
import { plainDate } from '#src/plain-date/plain-date.fn.js';
|
|
10
|
+
describe('StartsAfterOrAt for PlainDate', () => {
|
|
11
|
+
const integrationTest = new IntegrationTestSetup();
|
|
12
|
+
before(async () => {
|
|
13
|
+
await integrationTest.setup();
|
|
14
|
+
});
|
|
15
|
+
after(async () => {
|
|
16
|
+
await integrationTest.teardown();
|
|
17
|
+
});
|
|
18
|
+
it('finds date ranges that start after the given date', async () => {
|
|
19
|
+
const range1 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
20
|
+
const range2 = new DateRange(plainDate('2025-04-01'), plainDate('2025-04-30'));
|
|
21
|
+
const range3 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
|
|
22
|
+
await seed(dataSource, { id: 1, range: range1 });
|
|
23
|
+
await seed(dataSource, { id: 2, range: range2 });
|
|
24
|
+
await seed(dataSource, { id: 3, range: range3 });
|
|
25
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
26
|
+
where: {
|
|
27
|
+
id: In([1, 2, 3]),
|
|
28
|
+
range: StartsAfterOrAt(plainDate('2025-02-01'))
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
expect(results.length).toBe(2);
|
|
32
|
+
expect(results.some(r => r.id === 1)).toBe(true);
|
|
33
|
+
expect(results.some(r => r.id === 2)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('includes date ranges that start on the given date', async () => {
|
|
36
|
+
const range1 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
|
|
37
|
+
const range2 = new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'));
|
|
38
|
+
const range3 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
39
|
+
await seed(dataSource, { id: 4, range: range1 });
|
|
40
|
+
await seed(dataSource, { id: 5, range: range2 });
|
|
41
|
+
await seed(dataSource, { id: 6, range: range3 });
|
|
42
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
43
|
+
where: {
|
|
44
|
+
id: In([4, 5, 6]),
|
|
45
|
+
range: StartsAfterOrAt(plainDate('2025-02-01'))
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
expect(results.length).toBe(2);
|
|
49
|
+
expect(results.some(r => r.id === 5)).toBe(true);
|
|
50
|
+
expect(results.some(r => r.id === 6)).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('excludes date ranges that start before the given date', async () => {
|
|
53
|
+
const range1 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
|
|
54
|
+
await seed(dataSource, { id: 7, range: range1 });
|
|
55
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
56
|
+
where: {
|
|
57
|
+
id: In([7]),
|
|
58
|
+
range: StartsAfterOrAt(plainDate('2025-02-01'))
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
expect(results.length).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
it('StartsAfterOrOn works identically to StartsAfterOrAt', async () => {
|
|
64
|
+
const range1 = new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'));
|
|
65
|
+
const range2 = new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31'));
|
|
66
|
+
await seed(dataSource, { id: 8, range: range1 });
|
|
67
|
+
await seed(dataSource, { id: 9, range: range2 });
|
|
68
|
+
const results = await dataSource.manager.find(FiniteDateRangeTest, {
|
|
69
|
+
where: {
|
|
70
|
+
id: In([8, 9]),
|
|
71
|
+
range: StartsAfterOrOn(plainDate('2025-02-01'))
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
expect(results.length).toBe(2);
|
|
75
|
+
expect(results.some(r => r.id === 8)).toBe(true);
|
|
76
|
+
expect(results.some(r => r.id === 9)).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
async function seed(dataSource, row) {
|
|
79
|
+
await dataSource.manager.upsert(FiniteDateRangeTest, row, { conflictPaths: { id: true } });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=starts-after-or-at-plain-date.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starts-after-or-at-plain-date.integration.test.js","sourceRoot":"","sources":["../../../lib/date-range/tests/starts-after-or-at-plain-date.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { after, before, describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { In } from 'typeorm';
|
|
4
|
+
import { IntegrationTestSetup } from './test-setup.js';
|
|
5
|
+
import { EndsBeforeOrAt } from '#src/common/index.js';
|
|
6
|
+
import { dataSource } from './sql/datasource.js';
|
|
7
|
+
import { DateTimeRange } from '#src/date-time-range/date-time-range.js';
|
|
8
|
+
import { DateTimeRangeTest } from './sql/date-time-range-test.entity.js';
|
|
9
|
+
import { timestamp } from '#src/timestamp/index.js';
|
|
10
|
+
describe('EndsBeforeOrAt for Timestamp', () => {
|
|
11
|
+
const integrationTest = new IntegrationTestSetup();
|
|
12
|
+
before(async () => {
|
|
13
|
+
await integrationTest.setup();
|
|
14
|
+
});
|
|
15
|
+
after(async () => {
|
|
16
|
+
await integrationTest.teardown();
|
|
17
|
+
});
|
|
18
|
+
it('finds date-time ranges that end before the given timestamp', async () => {
|
|
19
|
+
const range1 = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-01-31T23:59:59Z'));
|
|
20
|
+
const range2 = new DateTimeRange(timestamp('2025-01-15T00:00:00Z'), timestamp('2025-01-20T23:59:59Z'));
|
|
21
|
+
const range3 = new DateTimeRange(timestamp('2025-03-01T00:00:00Z'), timestamp('2025-03-31T23:59:59Z'));
|
|
22
|
+
await seed(dataSource, { id: 1, range: range1 });
|
|
23
|
+
await seed(dataSource, { id: 2, range: range2 });
|
|
24
|
+
await seed(dataSource, { id: 3, range: range3 });
|
|
25
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
26
|
+
where: {
|
|
27
|
+
id: In([1, 2, 3]),
|
|
28
|
+
range: EndsBeforeOrAt(timestamp('2025-02-15T00:00:00Z'))
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
expect(results.length).toBe(2);
|
|
32
|
+
expect(results.some(r => r.id === 1)).toBe(true);
|
|
33
|
+
expect(results.some(r => r.id === 2)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('includes date-time ranges that end at the given timestamp', async () => {
|
|
36
|
+
const range1 = new DateTimeRange(timestamp('2025-02-01T00:00:00Z'), timestamp('2025-02-15T00:00:00Z'));
|
|
37
|
+
const range2 = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-01-31T23:59:59Z'));
|
|
38
|
+
const range3 = new DateTimeRange(timestamp('2025-03-01T00:00:00Z'), timestamp('2025-03-31T23:59:59Z'));
|
|
39
|
+
await seed(dataSource, { id: 4, range: range1 });
|
|
40
|
+
await seed(dataSource, { id: 5, range: range2 });
|
|
41
|
+
await seed(dataSource, { id: 6, range: range3 });
|
|
42
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
43
|
+
where: {
|
|
44
|
+
id: In([4, 5, 6]),
|
|
45
|
+
range: EndsBeforeOrAt(timestamp('2025-02-15T00:00:00Z'))
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
expect(results.length).toBe(2);
|
|
49
|
+
expect(results.some(r => r.id === 4)).toBe(true);
|
|
50
|
+
expect(results.some(r => r.id === 5)).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('excludes date-time ranges that end after the given timestamp', async () => {
|
|
53
|
+
const range1 = new DateTimeRange(timestamp('2025-03-01T00:00:00Z'), timestamp('2025-03-31T23:59:59Z'));
|
|
54
|
+
await seed(dataSource, { id: 7, range: range1 });
|
|
55
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
56
|
+
where: {
|
|
57
|
+
id: In([7]),
|
|
58
|
+
range: EndsBeforeOrAt(timestamp('2025-02-15T00:00:00Z'))
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
expect(results.length).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
async function seed(dataSource, row) {
|
|
64
|
+
await dataSource.manager.upsert(DateTimeRangeTest, row, { conflictPaths: { id: true } });
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=ends-before-or-at-timestamp.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ends-before-or-at-timestamp.integration.test.js","sourceRoot":"","sources":["../../../lib/date-time-range/tests/ends-before-or-at-timestamp.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { after, before, describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { In } from 'typeorm';
|
|
4
|
+
import { IntegrationTestSetup } from './test-setup.js';
|
|
5
|
+
import { StartsAfterOrAt } from '#src/common/index.js';
|
|
6
|
+
import { dataSource } from './sql/datasource.js';
|
|
7
|
+
import { DateTimeRange } from '#src/date-time-range/date-time-range.js';
|
|
8
|
+
import { DateTimeRangeTest } from './sql/date-time-range-test.entity.js';
|
|
9
|
+
import { timestamp } from '#src/timestamp/index.js';
|
|
10
|
+
describe('StartsAfterOrAt for Timestamp', () => {
|
|
11
|
+
const integrationTest = new IntegrationTestSetup();
|
|
12
|
+
before(async () => {
|
|
13
|
+
await integrationTest.setup();
|
|
14
|
+
});
|
|
15
|
+
after(async () => {
|
|
16
|
+
await integrationTest.teardown();
|
|
17
|
+
});
|
|
18
|
+
it('finds date-time ranges that start after the given timestamp', async () => {
|
|
19
|
+
const range1 = new DateTimeRange(timestamp('2025-03-01T00:00:00Z'), timestamp('2025-03-31T23:59:59Z'));
|
|
20
|
+
const range2 = new DateTimeRange(timestamp('2025-04-01T00:00:00Z'), timestamp('2025-04-30T23:59:59Z'));
|
|
21
|
+
const range3 = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-01-31T23:59:59Z'));
|
|
22
|
+
await seed(dataSource, { id: 1, range: range1 });
|
|
23
|
+
await seed(dataSource, { id: 2, range: range2 });
|
|
24
|
+
await seed(dataSource, { id: 3, range: range3 });
|
|
25
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
26
|
+
where: {
|
|
27
|
+
id: In([1, 2, 3]),
|
|
28
|
+
range: StartsAfterOrAt(timestamp('2025-02-01T00:00:00Z'))
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
expect(results.length).toBe(2);
|
|
32
|
+
expect(results.some(r => r.id === 1)).toBe(true);
|
|
33
|
+
expect(results.some(r => r.id === 2)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('includes date-time ranges that start at the given timestamp', async () => {
|
|
36
|
+
const range1 = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-01-31T23:59:59Z'));
|
|
37
|
+
const range2 = new DateTimeRange(timestamp('2025-02-01T00:00:00Z'), timestamp('2025-02-28T23:59:59Z'));
|
|
38
|
+
const range3 = new DateTimeRange(timestamp('2025-03-01T00:00:00Z'), timestamp('2025-03-31T23:59:59Z'));
|
|
39
|
+
await seed(dataSource, { id: 4, range: range1 });
|
|
40
|
+
await seed(dataSource, { id: 5, range: range2 });
|
|
41
|
+
await seed(dataSource, { id: 6, range: range3 });
|
|
42
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
43
|
+
where: {
|
|
44
|
+
id: In([4, 5, 6]),
|
|
45
|
+
range: StartsAfterOrAt(timestamp('2025-02-01T00:00:00Z'))
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
expect(results.length).toBe(2);
|
|
49
|
+
expect(results.some(r => r.id === 5)).toBe(true);
|
|
50
|
+
expect(results.some(r => r.id === 6)).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('excludes date-time ranges that start before the given timestamp', async () => {
|
|
53
|
+
const range1 = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-01-31T23:59:59Z'));
|
|
54
|
+
await seed(dataSource, { id: 7, range: range1 });
|
|
55
|
+
const results = await dataSource.manager.find(DateTimeRangeTest, {
|
|
56
|
+
where: {
|
|
57
|
+
id: In([7]),
|
|
58
|
+
range: StartsAfterOrAt(timestamp('2025-02-01T00:00:00Z'))
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
expect(results.length).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
async function seed(dataSource, row) {
|
|
64
|
+
await dataSource.manager.upsert(DateTimeRangeTest, row, { conflictPaths: { id: true } });
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=starts-after-or-at-timestamp.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starts-after-or-at-timestamp.integration.test.js","sourceRoot":"","sources":["../../../lib/date-time-range/tests/starts-after-or-at-timestamp.integration.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wisemen/datewise",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@wisemen/pagination": "0.1.1",
|
|
41
|
-
"@wisemen/quantity": "0.
|
|
41
|
+
"@wisemen/quantity": "0.7.0"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"prebuild": "rm -rf ./dist",
|