@fougere/adapter-sql 0.6.0-alpha.0 → 0.7.0-alpha.0
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 +2 -2
- package/dist/adapter.schema.json +16 -0
- package/dist/check.d.ts +2 -27
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +2 -27
- package/dist/check.js.map +1 -1
- package/dist/crud.d.ts +15 -81
- package/dist/crud.d.ts.map +1 -1
- package/dist/crud.js +21 -98
- package/dist/crud.js.map +1 -1
- package/dist/ddl.d.ts +8 -53
- package/dist/ddl.d.ts.map +1 -1
- package/dist/ddl.js +16 -55
- package/dist/ddl.js.map +1 -1
- package/dist/dialect.d.ts +7 -50
- package/dist/dialect.d.ts.map +1 -1
- package/dist/dialect.js +2 -5
- package/dist/dialect.js.map +1 -1
- package/dist/diff.d.ts +6 -44
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +20 -50
- package/dist/diff.js.map +1 -1
- package/dist/fields.d.ts +10 -9
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +8 -1
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/order.d.ts +23 -0
- package/dist/order.d.ts.map +1 -0
- package/dist/order.js +40 -0
- package/dist/order.js.map +1 -0
- package/dist/query.d.ts +2 -17
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +1 -11
- package/dist/query.js.map +1 -1
- package/dist/setup.d.ts +6 -36
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +2 -16
- package/dist/setup.js.map +1 -1
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +2 -17
- package/dist/sqlite.js.map +1 -1
- package/dist/step.d.ts +4 -33
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +11 -46
- package/dist/step.js.map +1 -1
- package/dist/table.d.ts +15 -77
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +34 -146
- package/dist/table.js.map +1 -1
- package/dist/values.d.ts +1 -17
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +2 -7
- package/dist/values.js.map +1 -1
- package/package.json +4 -4
- package/src/adapter.schema.json +16 -0
- package/src/check.ts +2 -27
- package/src/crud.ts +22 -99
- package/src/ddl.ts +14 -55
- package/src/dialect.ts +7 -50
- package/src/diff.ts +18 -50
- package/src/fields.ts +17 -8
- package/src/index.ts +3 -3
- package/src/order.ts +63 -0
- package/src/query.ts +2 -17
- package/src/setup.ts +7 -43
- package/src/sqlite.ts +2 -17
- package/src/step.ts +12 -54
- package/src/table.ts +42 -185
- package/src/values.ts +3 -24
package/src/values.ts
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The values a driver accepts, and the values an entity declares.
|
|
3
|
-
*
|
|
4
|
-
* A driver binds numbers, strings, buffers and null — nothing else. An entity declares
|
|
5
|
-
* booleans, dates, lists and objects. Something has to sit between the two, and until
|
|
6
|
-
* now nothing did: `done: bool()` threw at insert ("SQLite3 can only bind numbers,
|
|
7
|
-
* strings, bigints, buffers, and null"), a `date()` could only be written as the ISO
|
|
8
|
-
* string its own type forbids, and both came back as whatever the column held.
|
|
9
|
-
*
|
|
10
|
-
* The pair below is derived from the column's shape alone — no new declaration, no axis
|
|
11
|
-
* to read. It lives in the storage adapter because that is where the driver's limits are
|
|
12
|
-
* known; the entity keeps saying `boolean` and `Date`.
|
|
13
|
-
*
|
|
14
|
-
* Drivers differ in how much they already do (Postgres hands back real booleans and
|
|
15
|
-
* Dates, SQLite hands back 0/1 and text), so every read guards on what it actually got
|
|
16
|
-
* instead of assuming.
|
|
17
|
-
*/
|
|
1
|
+
/** The values a driver accepts, and the values an entity declares. */
|
|
18
2
|
import type { ColumnShape } from './table.js';
|
|
19
3
|
|
|
20
4
|
export interface ValueCodec {
|
|
@@ -46,13 +30,8 @@ const json: ValueCodec = {
|
|
|
46
30
|
};
|
|
47
31
|
|
|
48
32
|
/**
|
|
49
|
-
* A driver may answer a number as a BigInt — Postgres does it for `count(*)` and for
|
|
50
|
-
*
|
|
51
|
-
* what comes back.
|
|
52
|
-
*
|
|
53
|
-
* Out of range it REFUSES rather than rounding. `Number(9007199254740993n)` is
|
|
54
|
-
* `9007199254740992` — a wrong answer, silently, and the row would look fine. A value
|
|
55
|
-
* that large is a real identifier somewhere, and its field should say `text()`.
|
|
33
|
+
* A driver may answer a number as a BigInt — Postgres does it for `count(*)` and for `bigint`
|
|
34
|
+
* columns, DuckDB for every count.
|
|
56
35
|
*/
|
|
57
36
|
const numeric: ValueCodec = {
|
|
58
37
|
write: (v) => (typeof v === 'bigint' ? fits(v) : v),
|