Initial commit - Event Planner application

This commit is contained in:
mberlin
2026-03-18 14:55:56 -03:00
commit 86d779eb4d
7548 changed files with 1006324 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
import { Client } from 'pg';
import array from 'postgres-array';
import parseDate from 'postgres-date';
import PostgresInterval from 'postgres-interval';
import { BasePostgreSqlPlatform, Utils } from '@mikro-orm/sql';
/** Platform implementation for PostgreSQL. */
export class PostgreSqlPlatform extends BasePostgreSqlPlatform {
convertIntervalToJSValue(value) {
return PostgresInterval(value);
}
convertIntervalToDatabaseValue(value) {
if (Utils.isObject(value) && 'toPostgres' in value && typeof value.toPostgres === 'function') {
return value.toPostgres();
}
return value;
}
unmarshallArray(value) {
return array.parse(value);
}
escape(value) {
if (typeof value === 'bigint') {
value = value.toString();
}
if (typeof value === 'string') {
return Client.prototype.escapeLiteral(value);
}
if (value instanceof Date) {
return `'${this.formatDate(value)}'`;
}
if (ArrayBuffer.isView(value)) {
return `E'\\\\x${value.toString('hex')}'`;
}
if (Array.isArray(value)) {
return value.map(v => this.escape(v)).join(', ');
}
return value;
}
/**
* @inheritDoc
*/
parseDate(value) {
// postgres-date returns `null` for a JS ISO string which has the `T` separator
if (typeof value === 'string' && value.charAt(10) === 'T') {
return new Date(value);
}
/* v8 ignore next */
if (typeof value === 'number') {
return new Date(value);
}
// @ts-ignore fix wrong type resolution during build
const parsed = parseDate(value);
/* v8 ignore next */
if (parsed === null) {
return value;
}
return parsed;
}
}