test-entity-library-asm 1.7.0 → 1.7.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.
- package/dist/entities/Partner.d.ts +2 -2
- package/dist/entities/Partner.js +13 -4
- package/dist/index.js +1 -0
- package/dist/transformers/dateTransformer.d.ts +7 -0
- package/dist/transformers/dateTransformer.js +21 -0
- package/dist/transformers/jsonTransformer.d.ts +0 -0
- package/dist/transformers/jsonTransformer.js +1 -0
- package/package.json +3 -1
- package/src/entities/Partner.ts +13 -14
- package/src/index.ts +1 -0
- package/src/transformers/dateTransformer.ts +22 -0
- package/src/transformers/jsonTransformer.ts +0 -0
- package/src/middlewares/timezoneMiddleware.ts +0 -27
package/dist/entities/Partner.js
CHANGED
|
@@ -19,6 +19,7 @@ var PartnerRole_1 = require("./PartnerRole");
|
|
|
19
19
|
var Terminal_1 = require("./Terminal");
|
|
20
20
|
var TerminalSession_1 = require("./TerminalSession");
|
|
21
21
|
var transformations_1 = require("../transformations");
|
|
22
|
+
var dateTransformer_1 = require("../transformers/dateTransformer");
|
|
22
23
|
var Partner = /** @class */ (function () {
|
|
23
24
|
function Partner() {
|
|
24
25
|
}
|
|
@@ -110,12 +111,20 @@ var Partner = /** @class */ (function () {
|
|
|
110
111
|
__metadata("design:type", Number)
|
|
111
112
|
], Partner.prototype, "owner", void 0);
|
|
112
113
|
__decorate([
|
|
113
|
-
(0, typeorm_1.Column)({
|
|
114
|
-
|
|
114
|
+
(0, typeorm_1.Column)({
|
|
115
|
+
type: 'datetime',
|
|
116
|
+
transformer: new dateTransformer_1.DateTransformer(),
|
|
117
|
+
comment: 'Fecha de creación del registro.',
|
|
118
|
+
}),
|
|
119
|
+
__metadata("design:type", String)
|
|
115
120
|
], Partner.prototype, "created", void 0);
|
|
116
121
|
__decorate([
|
|
117
|
-
(0, typeorm_1.Column)({
|
|
118
|
-
|
|
122
|
+
(0, typeorm_1.Column)({
|
|
123
|
+
type: 'datetime',
|
|
124
|
+
transformer: new dateTransformer_1.DateTransformer(),
|
|
125
|
+
comment: 'Fecha de actualización del registro.',
|
|
126
|
+
}),
|
|
127
|
+
__metadata("design:type", String)
|
|
119
128
|
], Partner.prototype, "updated", void 0);
|
|
120
129
|
__decorate([
|
|
121
130
|
(0, typeorm_1.Column)({
|
package/dist/index.js
CHANGED
|
@@ -122,6 +122,7 @@ var async_hooks_1 = require("async_hooks");
|
|
|
122
122
|
var asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
|
|
123
123
|
function timezoneMiddleware(req, res, next) {
|
|
124
124
|
var userTimeZone = req.headers['user-timezone'];
|
|
125
|
+
console.log(userTimeZone, 'llega?');
|
|
125
126
|
if (Array.isArray(userTimeZone)) {
|
|
126
127
|
userTimeZone = userTimeZone[0];
|
|
127
128
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateTransformer = void 0;
|
|
4
|
+
var date_fns_tz_1 = require("date-fns-tz");
|
|
5
|
+
var __1 = require("..");
|
|
6
|
+
var DateTransformer = /** @class */ (function () {
|
|
7
|
+
function DateTransformer(format) {
|
|
8
|
+
if (format === void 0) { format = 'yyyy-MM-dd HH:mm:ss'; }
|
|
9
|
+
this.format = format;
|
|
10
|
+
}
|
|
11
|
+
DateTransformer.prototype.from = function (value) {
|
|
12
|
+
var timeZone = (0, __1.getTimeZone)();
|
|
13
|
+
var zonedDate = (0, date_fns_tz_1.toZonedTime)(value, timeZone);
|
|
14
|
+
return (0, date_fns_tz_1.format)(zonedDate, this.format, { timeZone: timeZone });
|
|
15
|
+
};
|
|
16
|
+
DateTransformer.prototype.to = function (value) {
|
|
17
|
+
return new Date(value); // Assuming the input is already in UTC
|
|
18
|
+
};
|
|
19
|
+
return DateTransformer;
|
|
20
|
+
}());
|
|
21
|
+
exports.DateTransformer = DateTransformer;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "test-entity-library-asm",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.2",
|
|
4
4
|
"description": "Entidades de ejemplo para una base de datos",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "ISC",
|
|
13
13
|
"dependencies": {
|
|
14
|
+
"date-fns": "^3.6.0",
|
|
15
|
+
"date-fns-tz": "^3.1.3",
|
|
14
16
|
"dotenv": "^16.4.5",
|
|
15
17
|
"express": "^4.19.2",
|
|
16
18
|
"typeorm": "^0.3.20"
|
package/src/entities/Partner.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { PartnerRole } from './PartnerRole'
|
|
|
16
16
|
import { Terminal } from './Terminal'
|
|
17
17
|
import { TerminalSession } from './TerminalSession'
|
|
18
18
|
import { jsonTransformer } from '../transformations'
|
|
19
|
+
import { DateTransformer } from '../transformers/dateTransformer'
|
|
19
20
|
|
|
20
21
|
@Entity({
|
|
21
22
|
comment:
|
|
@@ -98,11 +99,19 @@ export class Partner {
|
|
|
98
99
|
})
|
|
99
100
|
owner: number
|
|
100
101
|
|
|
101
|
-
@Column({
|
|
102
|
-
|
|
102
|
+
@Column({
|
|
103
|
+
type: 'datetime',
|
|
104
|
+
transformer: new DateTransformer(),
|
|
105
|
+
comment: 'Fecha de creación del registro.',
|
|
106
|
+
})
|
|
107
|
+
created: string
|
|
103
108
|
|
|
104
|
-
@Column({
|
|
105
|
-
|
|
109
|
+
@Column({
|
|
110
|
+
type: 'datetime',
|
|
111
|
+
transformer: new DateTransformer(),
|
|
112
|
+
comment: 'Fecha de actualización del registro.',
|
|
113
|
+
})
|
|
114
|
+
updated: string
|
|
106
115
|
|
|
107
116
|
@Column({
|
|
108
117
|
default: 1,
|
|
@@ -123,11 +132,6 @@ export class Partner {
|
|
|
123
132
|
@OneToMany(() => Local, (local) => local.updated_by)
|
|
124
133
|
locals: Local[]
|
|
125
134
|
|
|
126
|
-
// @ManyToMany(() => Local, (local) => local.locals_partners)
|
|
127
|
-
// @JoinTable({
|
|
128
|
-
// name: 'local_partner',
|
|
129
|
-
// })
|
|
130
|
-
// locals_partner: Local[]
|
|
131
135
|
@ManyToMany(() => Local, (local) => local.locals_partners)
|
|
132
136
|
@JoinTable({
|
|
133
137
|
name: 'local_partner',
|
|
@@ -142,11 +146,6 @@ export class Partner {
|
|
|
142
146
|
})
|
|
143
147
|
locals_partner: Local[]
|
|
144
148
|
|
|
145
|
-
// @ManyToMany(() => PartnerRole, (partnerLocal) => partnerLocal.partners_roles)
|
|
146
|
-
// @JoinTable({
|
|
147
|
-
// name: 'partner_assigned_role',
|
|
148
|
-
// })
|
|
149
|
-
// partners_roles: PartnerRole[]
|
|
150
149
|
@ManyToMany(() => PartnerRole, (partnerLocal) => partnerLocal.partners_roles)
|
|
151
150
|
@JoinTable({
|
|
152
151
|
name: 'partner_assigned_role',
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// dateTransformer.ts
|
|
2
|
+
import { ValueTransformer } from 'typeorm'
|
|
3
|
+
import { format, toZonedTime } from 'date-fns-tz'
|
|
4
|
+
import { getTimeZone } from '..'
|
|
5
|
+
|
|
6
|
+
export class DateTransformer implements ValueTransformer {
|
|
7
|
+
private format: string
|
|
8
|
+
|
|
9
|
+
constructor(format: string = 'yyyy-MM-dd HH:mm:ss') {
|
|
10
|
+
this.format = format
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
from(value: Date): string {
|
|
14
|
+
const timeZone = getTimeZone()
|
|
15
|
+
const zonedDate = toZonedTime(value, timeZone)
|
|
16
|
+
return format(zonedDate, this.format, { timeZone })
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
to(value: Date): Date {
|
|
20
|
+
return new Date(value) // Assuming the input is already in UTC
|
|
21
|
+
}
|
|
22
|
+
}
|
|
File without changes
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'async_hooks'
|
|
2
|
-
import { NextFunction, Request, Response } from 'express'
|
|
3
|
-
|
|
4
|
-
const asyncLocalStorage = new AsyncLocalStorage<Map<string, string>>()
|
|
5
|
-
|
|
6
|
-
export function timezoneMiddleware(
|
|
7
|
-
req: Request,
|
|
8
|
-
res: Response,
|
|
9
|
-
next: NextFunction
|
|
10
|
-
) {
|
|
11
|
-
let userTimeZone = req.headers['user-timezone']
|
|
12
|
-
|
|
13
|
-
if (Array.isArray(userTimeZone)) {
|
|
14
|
-
userTimeZone = userTimeZone[0]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
userTimeZone = userTimeZone || 'UTC'
|
|
18
|
-
|
|
19
|
-
asyncLocalStorage.run(new Map([['timezone', userTimeZone]]), () => {
|
|
20
|
-
next()
|
|
21
|
-
})
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function getTimeZone(): string {
|
|
25
|
-
const store = asyncLocalStorage.getStore()
|
|
26
|
-
return store?.get('timezone') ?? 'UTC'
|
|
27
|
-
}
|