@owlmeans/postgres-resource 0.1.18-rc.1 → 0.1.18-rc.11
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 +25 -10
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/postgres-resource/SKILL.md +58 -11
- package/build/consts.d.ts +9 -2
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +8 -1
- package/build/consts.js.map +1 -1
- package/build/declarations.d.ts.map +1 -1
- package/build/declarations.js +5 -5
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js.map +1 -1
- package/build/helper.d.ts.map +1 -1
- package/build/resource.d.ts +2 -2
- package/build/resource.d.ts.map +1 -1
- package/build/resource.js +95 -108
- package/build/resource.js.map +1 -1
- package/build/types.d.ts +27 -19
- package/build/types.d.ts.map +1 -1
- package/build/utils/criteria.d.ts +10 -6
- package/build/utils/criteria.d.ts.map +1 -1
- package/build/utils/criteria.js +13 -5
- package/build/utils/criteria.js.map +1 -1
- package/build/utils/diff.d.ts.map +1 -1
- package/build/utils/diff.js +31 -1
- package/build/utils/diff.js.map +1 -1
- package/build/utils/introspect.d.ts.map +1 -1
- package/build/utils/life-cycle.d.ts.map +1 -1
- package/build/utils/marshal.d.ts.map +1 -1
- package/build/utils/marshal.js.map +1 -1
- package/build/utils/migrations.d.ts +2 -2
- package/build/utils/migrations.d.ts.map +1 -1
- package/build/utils/migrations.js +2 -2
- package/build/utils/name.d.ts +3 -3
- package/build/utils/name.d.ts.map +1 -1
- package/build/utils/name.js +3 -3
- package/build/utils/name.js.map +1 -1
- package/build/utils/schema.d.ts.map +1 -1
- package/build/utils/schema.js.map +1 -1
- package/build/utils/sql.d.ts +10 -2
- package/build/utils/sql.d.ts.map +1 -1
- package/build/utils/sql.js.map +1 -1
- package/build/utils/sync.d.ts.map +1 -1
- package/build/utils/table.d.ts +4 -0
- package/build/utils/table.d.ts.map +1 -1
- package/build/utils/table.js +4 -0
- package/build/utils/table.js.map +1 -1
- package/package.json +7 -7
- package/src/consts.ts +8 -1
- package/src/declarations.ts +5 -5
- package/src/resource.ts +118 -135
- package/src/types.ts +29 -18
- package/src/utils/criteria.ts +25 -17
- package/src/utils/diff.ts +31 -1
- package/src/utils/migrations.ts +2 -2
- package/src/utils/name.ts +3 -3
- package/src/utils/sql.ts +0 -0
- package/src/utils/table.ts +5 -1
- package/tests/criteria.spec.ts +187 -0
- package/tests/diff.spec.ts +60 -0
- package/tests/name.spec.ts +3 -3
- package/tests/sql.spec.ts +4 -3
package/build/resource.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { appendContextual, assertContext } from '@owlmeans/context';
|
|
2
|
-
import { MisshapedRecord, RecordExists, RecordUpdateFailed, UnknownRecordError, UnsupportedArgumentError
|
|
2
|
+
import { MisshapedRecord, RecordExists, RecordUpdateFailed, UnknownRecordError, UnsupportedArgumentError } from '@owlmeans/resource';
|
|
3
3
|
import { eq, sql } from 'drizzle-orm';
|
|
4
4
|
import { DEFAULT_DB_ALIAS, DEFAULT_PAGE_SIZE, ID_FIELD } from './consts.js';
|
|
5
5
|
import { getDeclaration } from './declarations.js';
|
|
@@ -10,18 +10,13 @@ import { initializeTable } from './utils/life-cycle.js';
|
|
|
10
10
|
import { recordToFullValues, recordToValues, resultToRecord, rowToRecord } from './utils/marshal.js';
|
|
11
11
|
import { makeTx } from './utils/migrations.js';
|
|
12
12
|
import { refOf, resolvePlaceholders } from './utils/sql.js';
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* keeps the builder's *result* types usable; casting the argument to `never` instead would
|
|
21
|
-
* silently collapse every returned row to `never`.
|
|
22
|
-
*/
|
|
23
|
-
const pgTable = (table) => table;
|
|
24
|
-
export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceAlias = DEFAULT_DB_ALIAS, makeCustomResource, tableName) => {
|
|
13
|
+
/** Postgres has no row expiry — silently ignoring a TTL would lose data. */
|
|
14
|
+
const refuseTtl = (opts) => {
|
|
15
|
+
if (opts?.ttl != null) {
|
|
16
|
+
throw new UnsupportedArgumentError('ttl');
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceAlias = DEFAULT_DB_ALIAS, tableName) => {
|
|
25
20
|
const location = `postgres-resource:${alias}`;
|
|
26
21
|
const declaration = getDeclaration(alias);
|
|
27
22
|
/** Set by `init()`; every data method goes through `ensure()`, which guarantees them. */
|
|
@@ -60,10 +55,17 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
60
55
|
}
|
|
61
56
|
return column;
|
|
62
57
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
/** `WHERE <column> = <value>` for one property, by its schema name. */
|
|
59
|
+
const identify = (table, from, property, value) => eq(from[columnOf(table, property).property], value);
|
|
60
|
+
/**
|
|
61
|
+
* The condition a read or a write is keyed on. A string is the record's id; a criteria
|
|
62
|
+
* object is translated in full, so one call can ask by several fields at once.
|
|
63
|
+
*/
|
|
64
|
+
const where = (table, from, query) => typeof query === 'string'
|
|
65
|
+
? identify(table, from, ID_FIELD, query)
|
|
66
|
+
: criteriaToSql(query, table, from);
|
|
67
|
+
/** What an unknown record is called in the error — the id, or the query that missed. */
|
|
68
|
+
const describe = (query) => typeof query === 'string' ? query : JSON.stringify(query);
|
|
67
69
|
const raw = async (text, params) => {
|
|
68
70
|
const { db, spec: table } = await ensure();
|
|
69
71
|
const context = assertContext(resource.ctx, location);
|
|
@@ -75,55 +77,53 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
75
77
|
throw pgErrorToResourceError(error);
|
|
76
78
|
}
|
|
77
79
|
};
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
/**
|
|
81
|
+
* The single-record read both `get` and `load` answer with. Standalone so neither closes over
|
|
82
|
+
* `resource` — a member that referenced it could not be inferred against the generic.
|
|
83
|
+
*/
|
|
84
|
+
const loadOne = async (query, opts) => {
|
|
85
|
+
const { db, spec: table, entity: from } = await ensure();
|
|
86
|
+
const rows = await db.drizzle.select().from(from).where(where(table, from, query))
|
|
87
|
+
.orderBy(...sortToSql(opts?.sort, table, from)).limit(1);
|
|
88
|
+
return rows.length < 1 ? null : resultToRecord(rows[0], table);
|
|
89
|
+
};
|
|
90
|
+
const members = {
|
|
91
|
+
get: (async (query, opts) => {
|
|
92
|
+
const record = await loadOne(query, opts);
|
|
81
93
|
if (record == null) {
|
|
82
|
-
throw new UnknownRecordError(
|
|
94
|
+
throw new UnknownRecordError(describe(query));
|
|
83
95
|
}
|
|
84
96
|
return record;
|
|
85
|
-
},
|
|
86
|
-
load:
|
|
87
|
-
if (typeof field === 'object') {
|
|
88
|
-
opts = field;
|
|
89
|
-
field = field.field;
|
|
90
|
-
}
|
|
91
|
-
if (ttlOf(opts) != null) {
|
|
92
|
-
/** Postgres has no row expiry — silently ignoring a TTL would lose data. */
|
|
93
|
-
throw new UnsupportedArgumentError('ttl');
|
|
94
|
-
}
|
|
95
|
-
const { db, spec: table, entity: from } = await ensure();
|
|
96
|
-
const rows = await db.drizzle.select().from(pgTable(from))
|
|
97
|
-
.where(identify(table, field ?? ID_FIELD, id)).limit(1);
|
|
98
|
-
return rows.length < 1 ? null : resultToRecord(rows[0], table);
|
|
99
|
-
},
|
|
97
|
+
}),
|
|
98
|
+
load: loadOne,
|
|
100
99
|
list: async (criteria, opts) => {
|
|
101
100
|
const { db, spec: table, entity: from } = await ensure();
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
const where = criteriaToSql(options.criteria, table, from);
|
|
101
|
+
const condition = criteriaToSql(criteria, table, from);
|
|
102
|
+
const order = sortToSql(opts?.sort, table, from);
|
|
103
|
+
/** Counted separately, so `total` describes the whole match rather than the page. */
|
|
106
104
|
const totals = await db.drizzle
|
|
107
|
-
.select({ total: sql `count(*)::int` }).from(
|
|
105
|
+
.select({ total: sql `count(*)::int` }).from(from).where(condition);
|
|
108
106
|
const total = Number(totals[0]?.total ?? 0);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
?
|
|
122
|
-
:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
: resource.create(record, typeof opts !== 'string' ? opts : undefined);
|
|
107
|
+
const marshal = (rows) => rows.map(row => resultToRecord(row, table));
|
|
108
|
+
/** `size: 0` lifts the limit — the explicit, greppable way to read a whole table. */
|
|
109
|
+
const size = opts?.size ?? DEFAULT_PAGE_SIZE;
|
|
110
|
+
if (size === 0) {
|
|
111
|
+
const all = total === 0
|
|
112
|
+
? []
|
|
113
|
+
: await db.drizzle.select().from(from).where(condition).orderBy(...order);
|
|
114
|
+
return { items: marshal(all), total };
|
|
115
|
+
}
|
|
116
|
+
const page = opts?.page ?? 0;
|
|
117
|
+
const skip = page * size;
|
|
118
|
+
const rows = total === 0 || skip >= total
|
|
119
|
+
? []
|
|
120
|
+
: await db.drizzle.select().from(from).where(condition).orderBy(...order)
|
|
121
|
+
.limit(size).offset(skip);
|
|
122
|
+
return { items: marshal(rows), total, page, size };
|
|
126
123
|
},
|
|
124
|
+
save: async (record, opts) => record.id != null
|
|
125
|
+
? resource.update(record, opts)
|
|
126
|
+
: resource.create(record, opts),
|
|
127
127
|
create: async (record, opts) => {
|
|
128
128
|
if (ID_FIELD in record && record.id == null) {
|
|
129
129
|
delete record.id;
|
|
@@ -131,16 +131,14 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
131
131
|
if (record.id != null) {
|
|
132
132
|
throw new RecordExists('id-present');
|
|
133
133
|
}
|
|
134
|
-
|
|
135
|
-
throw new UnsupportedArgumentError('ttl');
|
|
136
|
-
}
|
|
134
|
+
refuseTtl(opts);
|
|
137
135
|
return resource.insert(record);
|
|
138
136
|
},
|
|
139
137
|
insert: async (record) => {
|
|
140
138
|
const { db, spec: table, entity: into } = await ensure();
|
|
141
139
|
const values = recordToValues({ ...resource.getDefaults(), ...record }, table);
|
|
142
140
|
try {
|
|
143
|
-
const rows = await db.drizzle.insert(
|
|
141
|
+
const rows = await db.drizzle.insert(into).values(values).returning();
|
|
144
142
|
if (rows.length < 1) {
|
|
145
143
|
throw new RecordUpdateFailed('creation');
|
|
146
144
|
}
|
|
@@ -170,8 +168,8 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
170
168
|
throw new UnsupportedArgumentError('upsert:nothing-to-update');
|
|
171
169
|
}
|
|
172
170
|
try {
|
|
173
|
-
const rows = await db.drizzle.insert(
|
|
174
|
-
.onConflictDoUpdate({ target
|
|
171
|
+
const rows = await db.drizzle.insert(into).values(values)
|
|
172
|
+
.onConflictDoUpdate({ target, set: set }).returning();
|
|
175
173
|
if (rows.length < 1) {
|
|
176
174
|
throw new RecordUpdateFailed('upsert');
|
|
177
175
|
}
|
|
@@ -182,19 +180,19 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
182
180
|
}
|
|
183
181
|
},
|
|
184
182
|
update: async (record, opts) => {
|
|
183
|
+
refuseTtl(opts);
|
|
185
184
|
const { db, spec: table, entity: target } = await ensure();
|
|
186
|
-
const
|
|
187
|
-
const key = record[field];
|
|
185
|
+
const key = record.id;
|
|
188
186
|
if (key == null) {
|
|
189
|
-
throw new MisshapedRecord(
|
|
187
|
+
throw new MisshapedRecord(ID_FIELD);
|
|
190
188
|
}
|
|
191
189
|
/** Replace, not merge — the semantics mongo's `replaceOne` gives. `patch()` merges. */
|
|
192
190
|
const values = recordToFullValues(record, table);
|
|
193
191
|
try {
|
|
194
|
-
const rows = await db.drizzle.update(
|
|
195
|
-
.where(identify(table,
|
|
192
|
+
const rows = await db.drizzle.update(target).set(values)
|
|
193
|
+
.where(identify(table, target, ID_FIELD, key)).returning();
|
|
196
194
|
if (rows.length < 1) {
|
|
197
|
-
throw new UnknownRecordError(`${
|
|
195
|
+
throw new UnknownRecordError(`${key}`);
|
|
198
196
|
}
|
|
199
197
|
return resultToRecord(rows[0], table);
|
|
200
198
|
}
|
|
@@ -203,24 +201,24 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
203
201
|
}
|
|
204
202
|
},
|
|
205
203
|
patch: async (record, opts) => {
|
|
204
|
+
refuseTtl(opts);
|
|
206
205
|
const { db, spec: table, entity: target } = await ensure();
|
|
207
|
-
const
|
|
208
|
-
const key = record[field];
|
|
206
|
+
const key = record.id;
|
|
209
207
|
if (key == null) {
|
|
210
|
-
throw new MisshapedRecord(
|
|
208
|
+
throw new MisshapedRecord(ID_FIELD);
|
|
211
209
|
}
|
|
212
210
|
const values = recordToValues(record, table);
|
|
213
211
|
for (const column of table.primaryKey) {
|
|
214
212
|
delete values[table.byColumn[column]?.property ?? column];
|
|
215
213
|
}
|
|
216
214
|
if (Object.keys(values).length < 1) {
|
|
217
|
-
return resource.get(`${key}
|
|
215
|
+
return resource.get(`${key}`);
|
|
218
216
|
}
|
|
219
217
|
try {
|
|
220
|
-
const rows = await db.drizzle.update(
|
|
221
|
-
.where(identify(table,
|
|
218
|
+
const rows = await db.drizzle.update(target).set(values)
|
|
219
|
+
.where(identify(table, target, ID_FIELD, key)).returning();
|
|
222
220
|
if (rows.length < 1) {
|
|
223
|
-
throw new UnknownRecordError(`${
|
|
221
|
+
throw new UnknownRecordError(`${key}`);
|
|
224
222
|
}
|
|
225
223
|
return resultToRecord(rows[0], table);
|
|
226
224
|
}
|
|
@@ -228,40 +226,34 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
228
226
|
throw pgErrorToResourceError(error);
|
|
229
227
|
}
|
|
230
228
|
},
|
|
231
|
-
delete: async (id
|
|
229
|
+
delete: async (id) => {
|
|
232
230
|
const { db, spec: table, entity: from } = await ensure();
|
|
233
|
-
const field = fieldOf(opts) ?? ID_FIELD;
|
|
234
|
-
const key = typeof id === 'object' ? id[field] : id;
|
|
235
|
-
if (key == null) {
|
|
236
|
-
throw new MisshapedRecord(field === ID_FIELD ? ID_FIELD : 'no-field-value');
|
|
237
|
-
}
|
|
238
231
|
/** One statement — mongo's read-then-delete can lose the record between the two. */
|
|
239
|
-
const rows = await db.drizzle.delete(
|
|
240
|
-
.where(identify(table,
|
|
232
|
+
const rows = await db.drizzle.delete(from)
|
|
233
|
+
.where(identify(table, from, ID_FIELD, id)).returning();
|
|
241
234
|
return rows.length < 1 ? null : resultToRecord(rows[0], table);
|
|
242
235
|
},
|
|
243
|
-
|
|
244
|
-
const record = await resource.delete(id
|
|
236
|
+
take: async (id) => {
|
|
237
|
+
const record = await resource.delete(id);
|
|
245
238
|
if (record == null) {
|
|
246
|
-
throw new UnknownRecordError(
|
|
239
|
+
throw new UnknownRecordError(id);
|
|
247
240
|
}
|
|
248
241
|
return record;
|
|
249
242
|
},
|
|
250
243
|
purge: async (criteria) => {
|
|
251
244
|
const { db, spec: table, entity: from } = await ensure();
|
|
252
|
-
const
|
|
253
|
-
if (
|
|
245
|
+
const condition = criteriaToSql(criteria, table, from);
|
|
246
|
+
if (condition == null) {
|
|
254
247
|
/** An empty criteria object here would silently truncate the table. */
|
|
255
248
|
throw new UnsupportedArgumentError('purge:no-criteria');
|
|
256
249
|
}
|
|
257
|
-
const rows = await db.drizzle.delete(
|
|
250
|
+
const rows = await db.drizzle.delete(from).where(condition).returning();
|
|
258
251
|
return rows.length;
|
|
259
252
|
},
|
|
260
253
|
count: async (criteria) => {
|
|
261
254
|
const { db, spec: table, entity: from } = await ensure();
|
|
262
|
-
const options = prepareListOptions(DEFAULT_PAGE_SIZE, criteria);
|
|
263
255
|
const rows = await db.drizzle.select({ total: sql `count(*)::int` })
|
|
264
|
-
.from(
|
|
256
|
+
.from(from).where(criteriaToSql(criteria, table, from));
|
|
265
257
|
return Number(rows[0]?.total ?? 0);
|
|
266
258
|
},
|
|
267
259
|
getDefaults: () => {
|
|
@@ -277,8 +269,8 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
277
269
|
return { ...defaults, [key]: property.default };
|
|
278
270
|
}, {});
|
|
279
271
|
},
|
|
280
|
-
query: async (text, params) => (await raw(text, params)).rows,
|
|
281
|
-
queryOne: async (text, params) => (await raw(text, params)).rows[0] ?? null,
|
|
272
|
+
query: (async (text, params) => (await raw(text, params)).rows),
|
|
273
|
+
queryOne: (async (text, params) => (await raw(text, params)).rows[0] ?? null),
|
|
282
274
|
execute: async (text, params) => (await raw(text, params)).count,
|
|
283
275
|
select: async (text, params) => {
|
|
284
276
|
const { spec: table } = await ensure();
|
|
@@ -335,21 +327,23 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
335
327
|
await postgres.ready();
|
|
336
328
|
return postgres.client(dbAlias);
|
|
337
329
|
},
|
|
330
|
+
/** Chainable — the declaration store is keyed by alias, so this object is the whole state. */
|
|
338
331
|
index: (name, index) => {
|
|
339
332
|
declaration.indexes.push({ ...index, name });
|
|
340
333
|
return resource;
|
|
341
334
|
},
|
|
342
|
-
/**
|
|
335
|
+
/** Self-returning in the interface — the implementation returns that very object. */
|
|
343
336
|
migration: ((name, apply, stage) => {
|
|
344
337
|
declaration.migrations.register(name, apply, stage);
|
|
345
338
|
return resource;
|
|
346
339
|
}),
|
|
347
340
|
migrations: () => declaration.migrations
|
|
348
|
-
}
|
|
341
|
+
};
|
|
342
|
+
const resource = appendContextual(alias, members);
|
|
349
343
|
/**
|
|
350
|
-
* The AJV schema is stored per alias rather than on the object, so
|
|
351
|
-
*
|
|
352
|
-
*
|
|
344
|
+
* The AJV schema is stored per alias rather than on the object, so a second maker run for
|
|
345
|
+
* the same alias (a custom maker, a repeated maker, a spec) picks up the schema the app
|
|
346
|
+
* assigned after construction instead of silently taking the table's structure with it.
|
|
353
347
|
*/
|
|
354
348
|
Object.defineProperty(resource, 'schema', {
|
|
355
349
|
enumerable: true,
|
|
@@ -366,8 +360,7 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
366
360
|
});
|
|
367
361
|
/**
|
|
368
362
|
* Explicit table name override, decoupled from the registration alias — an alias may
|
|
369
|
-
* carry characters no identifier allows.
|
|
370
|
-
* below so it survives a context switch.
|
|
363
|
+
* carry characters no identifier allows.
|
|
371
364
|
*/
|
|
372
365
|
if (tableName != null) {
|
|
373
366
|
resource.name = tableName;
|
|
@@ -382,12 +375,6 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
|
|
|
382
375
|
spec = initialized.spec;
|
|
383
376
|
entity = initialized.entity;
|
|
384
377
|
};
|
|
385
|
-
resource.reinitializeContext = (context) => {
|
|
386
|
-
const replacement = (makeCustomResource?.(dbAlias, serviceAlias)
|
|
387
|
-
?? makePostgresResource(alias, dbAlias, serviceAlias, makeCustomResource, tableName));
|
|
388
|
-
replacement.ctx = context;
|
|
389
|
-
return replacement;
|
|
390
|
-
};
|
|
391
378
|
return resource;
|
|
392
379
|
};
|
|
393
380
|
//# sourceMappingURL=resource.js.map
|
package/build/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { DbLocker,
|
|
1
|
+
import type { DbLocker, LockableResource, MigratableResource, Resource, ResourceDbService, ResourceRecord, WriteOptions } from '@owlmeans/resource';
|
|
2
2
|
import type { AnySchema } from 'ajv';
|
|
3
3
|
import type { Pool, PoolClient, QueryResultRow } from 'pg';
|
|
4
4
|
import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
|
|
5
|
+
import type { PgColumn, PgTable } from 'drizzle-orm/pg-core';
|
|
5
6
|
import type { PgAutoSync, PgIndexMethod, PgReferentialAction } from './consts.js';
|
|
6
7
|
/**
|
|
7
8
|
* The handle {@link PostgresDbService.db} resolves to. Carries the pool alongside the
|
|
@@ -12,9 +13,9 @@ export interface PostgresDb {
|
|
|
12
13
|
/** Drizzle bound to this config alias' pool. */
|
|
13
14
|
drizzle: NodePgDatabase<Record<string, never>>;
|
|
14
15
|
pool: Pool;
|
|
15
|
-
/** The Postgres SCHEMA — i.e. `service.name(alias)
|
|
16
|
+
/** The Postgres SCHEMA this config alias' resources live in — i.e. `service.name(alias)`. */
|
|
16
17
|
schema: string;
|
|
17
|
-
/** The Postgres DATABASE — i.e. `config.meta.database`.
|
|
18
|
+
/** The Postgres DATABASE the pool is connected to — i.e. `config.meta.database`. */
|
|
18
19
|
database: string;
|
|
19
20
|
}
|
|
20
21
|
export interface PostgresDbService extends ResourceDbService<PostgresDb, Pool>, DbLocker<ResourceRecord> {
|
|
@@ -61,7 +62,15 @@ export interface PostgresTx {
|
|
|
61
62
|
/** Fully qualified identifier of a registered resource; omit for the owning resource. */
|
|
62
63
|
ref: (resourceAlias?: string) => string;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
+
/**
|
|
66
|
+
* A `Resource<T>` over one Postgres table.
|
|
67
|
+
*
|
|
68
|
+
* Every method beyond the base contract exists because a table has structure a document
|
|
69
|
+
* store does not: identity supplied by the caller, conflict arbiters, partial writes, and
|
|
70
|
+
* SQL that no criteria object can express. Type the resource once —
|
|
71
|
+
* `context.resource<PostgresResource<Project>>(alias)` — rather than per call.
|
|
72
|
+
*/
|
|
73
|
+
export interface PostgresResource<T extends ResourceRecord> extends Resource<T>, LockableResource<T>, MigratableResource<PostgresTx, PostgresResource<T>> {
|
|
65
74
|
/** Physical table name override. Defaults to the resource alias, sanitized. */
|
|
66
75
|
name?: string;
|
|
67
76
|
/** The AJV schema — single source of truth for the table structure. */
|
|
@@ -73,7 +82,7 @@ export interface PostgresResource<T extends ResourceRecord> extends Resource<T>,
|
|
|
73
82
|
db: () => Promise<PostgresDb>;
|
|
74
83
|
client: () => Promise<Pool>;
|
|
75
84
|
/** Declare an index the JSON schema can't express. Chainable. */
|
|
76
|
-
index:
|
|
85
|
+
index: (name: string, spec: PgIndexSpec) => PostgresResource<T>;
|
|
77
86
|
getDefaults: () => Partial<T>;
|
|
78
87
|
/** Raw rows, no marshalling. */
|
|
79
88
|
query: <Row extends QueryResultRow = QueryResultRow>(text: string, params?: unknown[]) => Promise<Row[]>;
|
|
@@ -81,22 +90,17 @@ export interface PostgresResource<T extends ResourceRecord> extends Resource<T>,
|
|
|
81
90
|
/** Returns the affected row count. */
|
|
82
91
|
execute: (text: string, params?: unknown[]) => Promise<number>;
|
|
83
92
|
/** Rows marshalled back into `T` through the table spec. */
|
|
84
|
-
select:
|
|
85
|
-
selectOne:
|
|
93
|
+
select: (text: string, params?: unknown[]) => Promise<T[]>;
|
|
94
|
+
selectOne: (text: string, params?: unknown[]) => Promise<T | null>;
|
|
86
95
|
/** Fully qualified `"schema"."table"`; pass an alias to reference another resource. */
|
|
87
96
|
ref: (resourceAlias?: string) => string;
|
|
88
97
|
transaction: <R>(fn: (tx: PostgresTx) => Promise<R>) => Promise<R>;
|
|
89
98
|
/** Create with a caller supplied id — `create()` refuses one, mirroring mongo. */
|
|
90
|
-
insert:
|
|
99
|
+
insert: (record: Partial<T>) => Promise<T>;
|
|
91
100
|
/** `INSERT ... ON CONFLICT (...) DO UPDATE`. Defaults to conflicting on the primary key. */
|
|
92
|
-
upsert:
|
|
101
|
+
upsert: (record: Partial<T>, conflict?: string[]) => Promise<T>;
|
|
93
102
|
/** Merge semantics — `update()` replaces the whole record, mirroring mongo's `replaceOne`. */
|
|
94
|
-
patch:
|
|
95
|
-
field?: string;
|
|
96
|
-
}) => Promise<Type>;
|
|
97
|
-
/** Bulk delete by criteria. Returns the deleted row count. */
|
|
98
|
-
purge: (criteria: ListCriteria) => Promise<number>;
|
|
99
|
-
count: (criteria?: ListCriteria | ListOptions) => Promise<number>;
|
|
103
|
+
patch: (record: Partial<T>, opts?: WriteOptions) => Promise<T>;
|
|
100
104
|
}
|
|
101
105
|
/** Compiled, database ready description of a resource's table. */
|
|
102
106
|
export interface TableSpec {
|
|
@@ -219,11 +223,15 @@ export interface PgReferenceSpec {
|
|
|
219
223
|
onUpdate?: PgReferentialAction | `${PgReferentialAction}`;
|
|
220
224
|
}
|
|
221
225
|
/**
|
|
222
|
-
* The Drizzle table
|
|
223
|
-
*
|
|
224
|
-
*
|
|
226
|
+
* The Drizzle table `specToTable` compiles from a {@link TableSpec}.
|
|
227
|
+
*
|
|
228
|
+
* Both halves are load bearing. `PgTable` is what the query builder accepts and what keeps
|
|
229
|
+
* the rows it hands back usable — erasing it to `never` would collapse every result row.
|
|
230
|
+
* The index signature is how a column is reached: the columns are keyed by schema property
|
|
231
|
+
* name and only known at runtime, so `eq(entity[column.property], value)` is a plain lookup
|
|
232
|
+
* rather than a cast.
|
|
225
233
|
*/
|
|
226
|
-
export type PgRuntimeTable = Record<string,
|
|
234
|
+
export type PgRuntimeTable = PgTable & Record<string, PgColumn>;
|
|
227
235
|
/** One column as Postgres currently reports it. */
|
|
228
236
|
export interface LiveColumn {
|
|
229
237
|
name: string;
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Criteria, Sort } from '@owlmeans/resource';
|
|
2
2
|
import type { SQL } from 'drizzle-orm';
|
|
3
3
|
import type { PgRuntimeTable, TableSpec } from '../types.js';
|
|
4
4
|
/**
|
|
5
|
-
* Translate
|
|
5
|
+
* Translate a {@link Criteria} into a WHERE clause. `undefined` means "no constraint at
|
|
6
|
+
* all" — the caller decides whether that is a full scan or a refusal.
|
|
6
7
|
*
|
|
7
8
|
* An unknown key raises rather than being skipped: a typo silently widening a query to
|
|
8
9
|
* the whole table is the failure mode worth being loud about.
|
|
9
10
|
*
|
|
10
11
|
* @throws {UnsupportedArgumentError}
|
|
11
12
|
*/
|
|
12
|
-
export declare const criteriaToSql: (criteria:
|
|
13
|
+
export declare const criteriaToSql: <T>(criteria: Criteria<T> | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL | undefined;
|
|
13
14
|
/**
|
|
14
|
-
* Translate
|
|
15
|
-
* `
|
|
15
|
+
* Translate a {@link Sort} list into ORDER BY. A bare field name is ascending;
|
|
16
|
+
* `{ field, order: 'desc' }` reverses it — the same meaning every backend gives it.
|
|
16
17
|
*
|
|
17
18
|
* The primary key is always appended as a tiebreak. Postgres has no implicit row order, so
|
|
18
19
|
* paginating on a non-unique sort key silently duplicates and skips rows between pages —
|
|
19
20
|
* a difference from mongo that would otherwise surface as a data bug rather than an error.
|
|
20
21
|
*
|
|
22
|
+
* A dotted path is a column this table does not have: criteria can reach into jsonb, ORDER BY
|
|
23
|
+
* cannot, and refusing is better than ordering by something the caller did not name.
|
|
24
|
+
*
|
|
21
25
|
* @throws {UnsupportedArgumentError}
|
|
22
26
|
*/
|
|
23
|
-
export declare const sortToSql: (sort:
|
|
27
|
+
export declare const sortToSql: <T>(sort: Sort<T>[] | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL[];
|
|
24
28
|
//# sourceMappingURL=criteria.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAkB,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAExE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAc,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAyHxE;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,MAAM,SAAS,EAAE,OAAO,cAAc,KACxE,GAAG,GAAG,SAIR,CAAA;AAuED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,SAAS,EAAE,OAAO,cAAc,KAClE,GAAG,EA0BL,CAAA"}
|