nodecommons-esm-database 0.0.11 → 0.0.12

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.
@@ -2,10 +2,10 @@ import { CommonsFixedDate } from 'tscommons-esm-core';
2
2
  import { TCommonsDatabaseInternalPostgresInterval } from '../types/tcommons-database-postgres-interval.mjs';
3
3
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
4
  import { CommonsDatabaseType } from './commons-database-type.mjs';
5
- export declare class CommonsDatabaseTypeFixedTime extends CommonsDatabaseType<CommonsFixedDate, Date | TCommonsDatabaseInternalPostgresInterval | number> {
5
+ export declare class CommonsDatabaseTypeFixedTime extends CommonsDatabaseType<CommonsFixedDate, Date | TCommonsDatabaseInternalPostgresInterval | number | string> {
6
6
  protected renderEngineType(engine: ECommonsDatabaseEngine): string;
7
7
  assertValue(value: CommonsFixedDate | undefined): void | never;
8
- assertDbValue(value: Date | number | null | undefined, engine: ECommonsDatabaseEngine): void | never;
9
- protected encode(value: CommonsFixedDate, _engine: ECommonsDatabaseEngine): Date;
10
- protected decode(value: Date | TCommonsDatabaseInternalPostgresInterval | number, engine: ECommonsDatabaseEngine): CommonsFixedDate;
8
+ assertDbValue(value: Date | number | string | null | undefined, engine: ECommonsDatabaseEngine): void | never;
9
+ protected encode(value: CommonsFixedDate, engine: ECommonsDatabaseEngine): Date | string | number;
10
+ protected decode(value: Date | TCommonsDatabaseInternalPostgresInterval | string | number, engine: ECommonsDatabaseEngine): CommonsFixedDate;
11
11
  }
@@ -1,4 +1,4 @@
1
- import { CommonsFixedDate, commonsTypeAssertDate, commonsTypeAssertNumber, commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
1
+ import { CommonsFixedDate, commonsTypeAssertDate, commonsTypeAssertNumber, commonsTypeHasPropertyNumber, commonsTypeIsString } from 'tscommons-esm-core';
2
2
  import { isTCommonsDatabaseInternalPostgresInterval } from '../types/tcommons-database-postgres-interval.mjs';
3
3
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
4
  import { CommonsDatabaseType } from './commons-database-type.mjs';
@@ -24,8 +24,13 @@ export class CommonsDatabaseTypeFixedTime extends CommonsDatabaseType {
24
24
  super.assertDbValue(value, engine);
25
25
  if (value === undefined || value === null)
26
26
  return;
27
- if (engine === ECommonsDatabaseEngine.POSTGRES && isTCommonsDatabaseInternalPostgresInterval(value))
28
- return;
27
+ if (engine === ECommonsDatabaseEngine.POSTGRES) {
28
+ if (isTCommonsDatabaseInternalPostgresInterval(value))
29
+ return;
30
+ // node-postgres seems to store send times as strings, and the [date]T[time] format isn't accepted by postgres itself
31
+ if (commonsTypeIsString(value))
32
+ return;
33
+ }
29
34
  if (engine === ECommonsDatabaseEngine.SQLITE) {
30
35
  // SQLite stores its timestamps as longs
31
36
  commonsTypeAssertNumber(value);
@@ -33,25 +38,36 @@ export class CommonsDatabaseTypeFixedTime extends CommonsDatabaseType {
33
38
  }
34
39
  commonsTypeAssertDate(value);
35
40
  }
36
- encode(value, _engine) {
41
+ encode(value, engine) {
37
42
  // No need to convert to number for SQLLITE; it seems to do it itself
38
43
  const timeOnly = value.clone;
39
44
  timeOnly.Ymd = '1970-01-01';
45
+ if (engine === ECommonsDatabaseEngine.POSTGRES) {
46
+ // node-postgres seems to store send times as strings, and the [date]T[time] format isn't accepted by postgres itself
47
+ return timeOnly.His;
48
+ }
40
49
  return timeOnly.UTCDate;
41
50
  }
42
51
  decode(value, engine) {
43
- if (engine === ECommonsDatabaseEngine.POSTGRES && isTCommonsDatabaseInternalPostgresInterval(value)) {
44
- const time = new Date(0);
45
- // ignore the date components
46
- if (commonsTypeHasPropertyNumber(value, 'milliseconds'))
47
- time.setMilliseconds(value.milliseconds);
48
- if (commonsTypeHasPropertyNumber(value, 'seconds'))
49
- time.setSeconds(value.seconds);
50
- if (commonsTypeHasPropertyNumber(value, 'minutes'))
51
- time.setMinutes(value.minutes);
52
- if (commonsTypeHasPropertyNumber(value, 'hours'))
53
- time.setHours(value.hours);
54
- return CommonsFixedDate.fromUTCDate(time);
52
+ if (engine === ECommonsDatabaseEngine.POSTGRES) {
53
+ if (isTCommonsDatabaseInternalPostgresInterval(value)) {
54
+ const time = new Date(0);
55
+ // ignore the date components
56
+ if (commonsTypeHasPropertyNumber(value, 'milliseconds'))
57
+ time.setMilliseconds(value.milliseconds);
58
+ if (commonsTypeHasPropertyNumber(value, 'seconds'))
59
+ time.setSeconds(value.seconds);
60
+ if (commonsTypeHasPropertyNumber(value, 'minutes'))
61
+ time.setMinutes(value.minutes);
62
+ if (commonsTypeHasPropertyNumber(value, 'hours'))
63
+ time.setHours(value.hours);
64
+ return CommonsFixedDate.fromUTCDate(time);
65
+ }
66
+ // node-postgres seems to store send times as strings, and the [date]T[time] format isn't accepted by postgres itself
67
+ if (commonsTypeIsString(value)) {
68
+ const timeOnly = CommonsFixedDate.fromHis(value);
69
+ return timeOnly;
70
+ }
55
71
  }
56
72
  if (engine === ECommonsDatabaseEngine.SQLITE) {
57
73
  commonsTypeAssertNumber(value);
@@ -59,9 +75,11 @@ export class CommonsDatabaseTypeFixedTime extends CommonsDatabaseType {
59
75
  return CommonsFixedDate.fromUTCDate(new Date(value));
60
76
  }
61
77
  commonsTypeAssertDate(value);
62
- const timeOnly = CommonsFixedDate.fromUTCDate(value);
63
- timeOnly.Ymd = '1970-01-01';
64
- return timeOnly;
78
+ { // scope
79
+ const timeOnly = CommonsFixedDate.fromUTCDate(value);
80
+ timeOnly.Ymd = '1970-01-01';
81
+ return timeOnly;
82
+ }
65
83
  }
66
84
  }
67
85
  //# sourceMappingURL=commons-database-type-fixed-time.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type-fixed-time.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-fixed-time.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commons-database-type-fixed-time.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-fixed-time.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodecommons-esm-database",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "tsc": "./node_modules/typescript/bin/tsc",