✨ MAJOR FEATURES: • Auto-zoom intelligence với smart bounds fitting • Enhanced 3D GPS markers với pulsing effects • Professional route display với 6-layer rendering • Status-based parking icons với availability indicators • Production-ready build optimizations 🗺️ AUTO-ZOOM FEATURES: • Smart bounds fitting cho GPS + selected parking • Adaptive padding (50px) cho visual balance • Max zoom control (level 16) để tránh quá gần • Dynamic centering khi không có selection 🎨 ENHANCED VISUALS: • 3D GPS marker với multi-layer pulse effects • Advanced parking icons với status colors • Selection highlighting với animation • Dimming system cho non-selected items 🛣️ ROUTE SYSTEM: • OpenRouteService API integration • Multi-layer route rendering (glow, shadow, main, animated) • Real-time distance & duration calculation • Visual route info trong popup 📱 PRODUCTION READY: • SSR safe với dynamic imports • Build errors resolved • Global deployment via Vercel • Optimized performance 🌍 DEPLOYMENT: • Vercel: https://whatever-ctk2auuxr-phong12hexdockworks-projects.vercel.app • Bundle size: 22.8 kB optimized • Global CDN distribution • HTTPS enabled 💾 VERSION CONTROL: • MapView-v2.0.tsx backup created • MAPVIEW_VERSIONS.md documentation • Full version history tracking
85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
'use strict'
|
|
|
|
module.exports = {
|
|
// database host. defaults to localhost
|
|
host: 'localhost',
|
|
|
|
// database user's name
|
|
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
|
|
// name of database to connect
|
|
database: undefined,
|
|
|
|
// database user's password
|
|
password: null,
|
|
|
|
// a Postgres connection string to be used instead of setting individual connection items
|
|
// NOTE: Setting this value will cause it to override any other value (such as database or user) defined
|
|
// in the defaults object.
|
|
connectionString: undefined,
|
|
|
|
// database port
|
|
port: 5432,
|
|
|
|
// number of rows to return at a time from a prepared statement's
|
|
// portal. 0 will return all rows at once
|
|
rows: 0,
|
|
|
|
// binary result mode
|
|
binary: false,
|
|
|
|
// Connection pool options - see https://github.com/brianc/node-pg-pool
|
|
|
|
// number of connections to use in connection pool
|
|
// 0 will disable connection pooling
|
|
max: 10,
|
|
|
|
// max milliseconds a client can go unused before it is removed
|
|
// from the pool and destroyed
|
|
idleTimeoutMillis: 30000,
|
|
|
|
client_encoding: '',
|
|
|
|
ssl: false,
|
|
|
|
application_name: undefined,
|
|
|
|
fallback_application_name: undefined,
|
|
|
|
options: undefined,
|
|
|
|
parseInputDatesAsUTC: false,
|
|
|
|
// max milliseconds any query using this connection will execute for before timing out in error.
|
|
// false=unlimited
|
|
statement_timeout: false,
|
|
|
|
// Abort any statement that waits longer than the specified duration in milliseconds while attempting to acquire a lock.
|
|
// false=unlimited
|
|
lock_timeout: false,
|
|
|
|
// Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds
|
|
// false=unlimited
|
|
idle_in_transaction_session_timeout: false,
|
|
|
|
// max milliseconds to wait for query to complete (client side)
|
|
query_timeout: false,
|
|
|
|
connect_timeout: 0,
|
|
|
|
keepalives: 1,
|
|
|
|
keepalives_idle: 0,
|
|
}
|
|
|
|
const pgTypes = require('pg-types')
|
|
// save default parsers
|
|
const parseBigInteger = pgTypes.getTypeParser(20, 'text')
|
|
const parseBigIntegerArray = pgTypes.getTypeParser(1016, 'text')
|
|
|
|
// parse int8 so you can get your count values as actual numbers
|
|
module.exports.__defineSetter__('parseInt8', function (val) {
|
|
pgTypes.setTypeParser(20, 'text', val ? pgTypes.getTypeParser(23, 'text') : parseBigInteger)
|
|
pgTypes.setTypeParser(1016, 'text', val ? pgTypes.getTypeParser(1007, 'text') : parseBigIntegerArray)
|
|
})
|