@wgtechlabs/nuvex 0.1.1 → 0.2.1-dev.e91ecac
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/README.md +19 -5
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/core/client.js +57 -32
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/core/database.js +11 -8
- package/dist/cjs/core/database.js.map +1 -1
- package/dist/cjs/core/engine.js +112 -63
- package/dist/cjs/core/engine.js.map +1 -1
- package/dist/cjs/layers/memory.js +13 -1
- package/dist/cjs/layers/memory.js.map +1 -1
- package/dist/cjs/layers/postgres.js +222 -19
- package/dist/cjs/layers/postgres.js.map +1 -1
- package/dist/cjs/layers/redis.js +78 -12
- package/dist/cjs/layers/redis.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/core/client.js +57 -32
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/core/database.js +11 -8
- package/dist/esm/core/database.js.map +1 -1
- package/dist/esm/core/engine.js +113 -64
- package/dist/esm/core/engine.js.map +1 -1
- package/dist/esm/layers/memory.js +13 -1
- package/dist/esm/layers/memory.js.map +1 -1
- package/dist/esm/layers/postgres.js +223 -20
- package/dist/esm/layers/postgres.js.map +1 -1
- package/dist/esm/layers/redis.js +78 -12
- package/dist/esm/layers/redis.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/types/core/client.d.ts +3 -2
- package/dist/types/core/client.d.ts.map +1 -1
- package/dist/types/core/database.d.ts +5 -1
- package/dist/types/core/database.d.ts.map +1 -1
- package/dist/types/core/engine.d.ts +7 -1
- package/dist/types/core/engine.d.ts.map +1 -1
- package/dist/types/interfaces/index.d.ts +5 -0
- package/dist/types/interfaces/index.d.ts.map +1 -1
- package/dist/types/layers/memory.d.ts +1 -0
- package/dist/types/layers/memory.d.ts.map +1 -1
- package/dist/types/layers/postgres.d.ts +37 -3
- package/dist/types/layers/postgres.d.ts.map +1 -1
- package/dist/types/layers/redis.d.ts +5 -1
- package/dist/types/layers/redis.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +22 -3
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +11 -14
package/README.md
CHANGED
|
@@ -57,7 +57,8 @@ const storage = await NuvexClient.initialize({
|
|
|
57
57
|
port: 5432,
|
|
58
58
|
database: 'myapp',
|
|
59
59
|
user: 'postgres',
|
|
60
|
-
password: 'password'
|
|
60
|
+
password: 'password',
|
|
61
|
+
autoSetupSchema: true
|
|
61
62
|
},
|
|
62
63
|
redis: { url: 'redis://localhost:6379' } // Optional but recommended
|
|
63
64
|
});
|
|
@@ -79,7 +80,8 @@ const results = await storage.setBatch([
|
|
|
79
80
|
|
|
80
81
|
// Health monitoring
|
|
81
82
|
const health = await storage.healthCheck();
|
|
82
|
-
console.log('
|
|
83
|
+
console.log('All layers healthy:', Object.values(health).every(Boolean));
|
|
84
|
+
console.log('PostgreSQL ready:', health.postgres);
|
|
83
85
|
```
|
|
84
86
|
|
|
85
87
|
## 📦 Installation
|
|
@@ -113,7 +115,8 @@ const config = {
|
|
|
113
115
|
port: 5432,
|
|
114
116
|
database: 'myapp',
|
|
115
117
|
user: 'postgres',
|
|
116
|
-
password: 'password'
|
|
118
|
+
password: 'password',
|
|
119
|
+
autoSetupSchema: true
|
|
117
120
|
},
|
|
118
121
|
redis: { url: 'redis://localhost:6379' }, // Optional but recommended
|
|
119
122
|
memory: { ttl: 86400000, maxSize: 10000 }, // Optional
|
|
@@ -125,6 +128,10 @@ const config = {
|
|
|
125
128
|
|
|
126
129
|
Nuvex uses strongly branded table and column names by default (`nuvex_storage`, `nuvex_key`, `nuvex_data`). For backwards compatibility with existing applications, you can customize these names:
|
|
127
130
|
|
|
131
|
+
- `autoSetupSchema: true` creates the configured Nuvex schema during startup.
|
|
132
|
+
- When `autoSetupSchema` is omitted or `false`, Nuvex only connects to PostgreSQL and `healthCheck().postgres` reports whether the configured Nuvex storage schema is actually usable.
|
|
133
|
+
- `enableTrigram: true` opts into `pg_trgm` extension setup and the trigram index during schema creation.
|
|
134
|
+
|
|
128
135
|
```typescript
|
|
129
136
|
// Default configuration (recommended for new apps)
|
|
130
137
|
const storage = await NuvexClient.initialize({
|
|
@@ -133,7 +140,8 @@ const storage = await NuvexClient.initialize({
|
|
|
133
140
|
port: 5432,
|
|
134
141
|
database: 'myapp',
|
|
135
142
|
user: 'postgres',
|
|
136
|
-
password: 'password'
|
|
143
|
+
password: 'password',
|
|
144
|
+
autoSetupSchema: true
|
|
137
145
|
// Uses: table 'nuvex_storage', columns 'nuvex_key' and 'nuvex_data'
|
|
138
146
|
}
|
|
139
147
|
});
|
|
@@ -146,6 +154,7 @@ const storage = await NuvexClient.initialize({
|
|
|
146
154
|
database: 'telegram_bot',
|
|
147
155
|
user: 'postgres',
|
|
148
156
|
password: 'password',
|
|
157
|
+
autoSetupSchema: true,
|
|
149
158
|
schema: {
|
|
150
159
|
tableName: 'storage_cache',
|
|
151
160
|
columns: {
|
|
@@ -164,6 +173,7 @@ const storage = await NuvexClient.initialize({
|
|
|
164
173
|
database: 'discord_bot',
|
|
165
174
|
user: 'postgres',
|
|
166
175
|
password: 'password',
|
|
176
|
+
autoSetupSchema: true,
|
|
167
177
|
schema: {
|
|
168
178
|
tableName: 'storage_cache',
|
|
169
179
|
columns: {
|
|
@@ -183,6 +193,8 @@ const storage = await NuvexClient.initialize({
|
|
|
183
193
|
| Telegram Bot | storage_cache | key | value |
|
|
184
194
|
| Discord Bot | storage_cache | cache_key | data |
|
|
185
195
|
|
|
196
|
+
If you manage schema creation yourself, call `setupNuvexSchema()` before serving traffic or ensure your deployment creates the table ahead of time. Otherwise, PostgreSQL connectivity may succeed while `healthCheck().postgres` correctly reports that Nuvex storage is not ready.
|
|
197
|
+
|
|
186
198
|
### API Reference
|
|
187
199
|
|
|
188
200
|
```typescript
|
|
@@ -212,7 +224,9 @@ await storage.decrement('counter', 2);
|
|
|
212
224
|
```typescript
|
|
213
225
|
// Health monitoring
|
|
214
226
|
const health = await storage.healthCheck();
|
|
215
|
-
console.log('
|
|
227
|
+
console.log('Memory:', health.memory ? '✅' : '❌');
|
|
228
|
+
console.log('Redis:', health.redis ? '✅' : '❌');
|
|
229
|
+
console.log('PostgreSQL ready:', health.postgres ? '✅' : '❌');
|
|
216
230
|
|
|
217
231
|
// Performance metrics
|
|
218
232
|
const metrics = storage.getMetrics();
|