neoorm 0.9.0 → 0.9.2
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/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/table.d.ts +86 -16
- package/dist/schema/table.d.ts.map +1 -1
- package/dist/schema/table.js +32 -7
- package/dist/schema/table.js.map +1 -1
- package/docs/examples.md +3 -3
- package/docs/schema.md +8 -3
- package/package.json +1 -1
package/dist/schema/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export { many, manyToMany } from "./many-to-many.js";
|
|
|
17
17
|
export type { FkBuilder, FkDeferrable, FkMeta, OnDeleteAction, OnUpdateAction, } from "./relation.js";
|
|
18
18
|
export { fk } from "./relation.js";
|
|
19
19
|
export type { InlineM2MInverseRelations, InlineM2MInverseWhereMap, InlineM2MInverseWriteMap, InlineM2MRelations, InlineM2MWhereMap, InlineM2MWriteMap, InverseRelations, JunctionM2MRelations, NestedCreateInput, OutgoingFkRelations, RelationCreateMap, RelationUpdateMap, SqlNameToAccessor, } from "./relation-types.js";
|
|
20
|
-
export type { BloomIndexOptions, ColumnDef, ColumnNaming, ColumnRefs, ForeignKeyBuilder, ForeignKeyDef, IndexDef, IndexExpr, IndexKeyInput, IndexMethod, IndexWherePredicate, PrimaryKeyDef, ScalarColumnKeys, TableDef, TableExtra, TableOptions, } from "./table.js";
|
|
20
|
+
export type { BloomIndexOptions, ColumnDef, ColumnKey, ColumnNaming, ColumnRef, ColumnRefs, ForeignKeyBuilder, ForeignKeyDef, IndexBuilder, IndexDef, IndexExpr, IndexKeyInput, IndexMethod, IndexScopeHelpers, IndexWhereInput, IndexWherePredicate, IndexWhereValue, PrimaryKeyDef, ScalarColumnKeys, TableDef, TableExtra, TableOptions, TableScope, } from "./table.js";
|
|
21
21
|
export { expr, foreignKey, index, primaryKey, table, unique } from "./table.js";
|
|
22
22
|
export { clearTableRegistry } from "./table-registry.js";
|
|
23
23
|
export type { AggregateArgs, ApplyOmit, ApplySelect, ColumnWhereInput, ComparableFilter, ConnectInput, ConnectOrCreateItem, CountArgs, CountSelect, CreateArgs, CreateInput, CreateManyAndReturnArgs, CreateManyArgs, CreateManyInput, CursorInput, DeleteArgs, DeleteManyAndReturnArgs, DeleteManyArgs, ExistsArgs, FindByIdArgs, FindFirstArgs, FindManyArgs, FindOrCreateArgs, FindOrCreateResult, FindUniqueArgs, GroupByArgs, GroupByHaving, GroupByOrderBy, HiddenKeys, InferAggregateResult, InferCountResult, InferFindResult, InferGroupByResult, InferInsertRow, InferMutationResult, InferPkFields, InferSelectRow, InferWithResult, JsonFilter, LogicalWhereInput, ManyRelationFilter, NumericHaving, NumericUpdateOps, OmitInput, OrderByInput, OrderDirection, PaginateArgs, PaginateResult, PluginColumnWhereOperators, QueryMode, RelationAccessors, RelationCountInput, RelationWhereMap, RelationWriteInput, ScalarPkName, ScalarSetOp, SchemaTables, SearchTsParser, SearchTsQuery, SelectInput, StringFilter, StripCapable, StripOmitKeys, StripResult, UniqueWhere, UpdateArgs, UpdateInput, UpdateManyAndReturnArgs, UpdateManyArgs, UpsertArgs, WhereInput, WhereOperators, WithInclude, WithInput, WithInputMap, WithRelationOptions, } from "./types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EACX,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,EACL,EAAE,EACF,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,GAAG,GACH,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACX,uBAAuB,EACvB,eAAe,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,cAAc,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,YAAY,EACX,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,EACL,EAAE,EACF,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,GAAG,GACH,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,EACL,EAAE,EACF,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,GAAG,GACH,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAyCnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/schema/table.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ColumnBuilder, ColumnMeta } from "./column.js";
|
|
2
|
+
import type { InferColumnValue } from "./column-where.js";
|
|
2
3
|
import type { ManyToManyExtra } from "./many-to-many.js";
|
|
3
4
|
import type { FkBuilder, FkDeferrable, OnDeleteAction, OnUpdateAction } from "./relation.js";
|
|
4
5
|
export type ColumnDef = ColumnBuilder<unknown> | FkBuilder | ManyToManyExtra;
|
|
@@ -97,7 +98,7 @@ export type ColumnNaming = "snakeCase" | "camelCase";
|
|
|
97
98
|
/** Options for {@link table}. */
|
|
98
99
|
export type TableOptions<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>, TExtras extends readonly TableExtra[] = readonly TableExtra[]> = {
|
|
99
100
|
columnNaming?: ColumnNaming;
|
|
100
|
-
extras?: (t:
|
|
101
|
+
extras?: (t: TableScope<TColumns>) => TExtras;
|
|
101
102
|
};
|
|
102
103
|
export type TableDef<TName extends string = string, TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>, TTargetRef extends string = string, TExtras extends readonly TableExtra[] = readonly TableExtra[]> = {
|
|
103
104
|
readonly _tableName: TName;
|
|
@@ -108,8 +109,60 @@ export type TableDef<TName extends string = string, TColumns extends Record<stri
|
|
|
108
109
|
readonly _columnNaming?: ColumnNaming;
|
|
109
110
|
};
|
|
110
111
|
export type ColumnRefs<TColumns extends Record<string, ColumnDef>> = {
|
|
111
|
-
readonly [K in keyof TColumns]: K & string
|
|
112
|
+
readonly [K in keyof TColumns]: K & string & {
|
|
113
|
+
readonly __colName?: K & string;
|
|
114
|
+
readonly __tableCols?: TColumns;
|
|
115
|
+
};
|
|
112
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* Branded column-name ref. Runtime is still a plain string; the phantom
|
|
119
|
+
* `__tableCols` lets top-level `index()` / `unique()` infer the table's
|
|
120
|
+
* columns from `t.col` args so `.where()` gets key completion.
|
|
121
|
+
*/
|
|
122
|
+
export type ColumnRef<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>> = string & {
|
|
123
|
+
readonly __tableCols?: TColumns;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Column-name key for index/PK/FK declarations. Without table context
|
|
127
|
+
* (default columns) any string is accepted; once `TColumns` is inferred
|
|
128
|
+
* from `t.col` refs, only real column names validate so typos error.
|
|
129
|
+
* Expression keys stay separate (`IndexExpr` in each signature).
|
|
130
|
+
*/
|
|
131
|
+
export type ColumnKey<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>> = Extract<keyof TColumns & string, string> & {
|
|
132
|
+
readonly __tableCols?: TColumns;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Per-column value for a partial-index predicate.
|
|
136
|
+
* Scalar columns keep their precise types (including string-literal unions
|
|
137
|
+
* for enums) so IDEs autocomplete values; anything else (dates, json,
|
|
138
|
+
* bigint, …) falls back to the primitive union `compileIndexWhere`
|
|
139
|
+
* supports at runtime.
|
|
140
|
+
*/
|
|
141
|
+
export type IndexWhereValue<TCol extends ColumnDef> = InferColumnValue<TCol, Record<string, TableDef>> extends infer V ? [V] extends [boolean | number | string | null] ? V | null : boolean | number | string | null : never;
|
|
142
|
+
/**
|
|
143
|
+
* Equality-only predicate for partial indexes.
|
|
144
|
+
* Keys come from the table's columns, so IDEs get autocomplete. Matches
|
|
145
|
+
* what `compileIndexWhere` supports at runtime (`= / IS NULL` joined by
|
|
146
|
+
* `AND`); no `OR` / operator bags.
|
|
147
|
+
*/
|
|
148
|
+
export type IndexWhereInput<TColumns extends Record<string, ColumnDef>> = {
|
|
149
|
+
[K in ScalarColumnKeys<TColumns>]?: IndexWhereValue<TColumns[K]>;
|
|
150
|
+
};
|
|
151
|
+
type IndexScopeKeys<TColumns extends Record<string, ColumnDef>> = readonly (Extract<keyof TColumns & string, string> | IndexExpr)[];
|
|
152
|
+
/**
|
|
153
|
+
* `index()` / `unique()` bound to the enclosing `table()` so `.where()`
|
|
154
|
+
* is typed. Exposed as `t.index` / `t.unique` on the extras scope.
|
|
155
|
+
* Omitted when the table has a column with the same name (use the
|
|
156
|
+
* top-level `index()` / `unique()` instead, which infers the same typed
|
|
157
|
+
* predicate from `t.col` keys).
|
|
158
|
+
*/
|
|
159
|
+
export type IndexScopeHelpers<TColumns extends Record<string, ColumnDef>> = ("index" extends Extract<keyof TColumns, string> ? Record<never, never> : {
|
|
160
|
+
index(...keys: IndexScopeKeys<TColumns>): IndexBuilder<TColumns>;
|
|
161
|
+
}) & ("unique" extends Extract<keyof TColumns, string> ? Record<never, never> : {
|
|
162
|
+
unique(...keys: IndexScopeKeys<TColumns>): IndexBuilder<TColumns>;
|
|
163
|
+
});
|
|
164
|
+
/** Extras-callback scope: column refs plus typed `t.index` / `t.unique`. */
|
|
165
|
+
export type TableScope<TColumns extends Record<string, ColumnDef>> = ColumnRefs<TColumns> & IndexScopeHelpers<TColumns>;
|
|
113
166
|
/**
|
|
114
167
|
* `WITH` storage options for `USING bloom` indexes.
|
|
115
168
|
*
|
|
@@ -121,7 +174,7 @@ export type BloomIndexOptions = {
|
|
|
121
174
|
length?: number;
|
|
122
175
|
cols?: readonly number[];
|
|
123
176
|
};
|
|
124
|
-
export type IndexBuilder = {
|
|
177
|
+
export type IndexBuilder<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>> = {
|
|
125
178
|
readonly kind: "index";
|
|
126
179
|
readonly keys: readonly IndexKeyInput[];
|
|
127
180
|
readonly columns: readonly string[];
|
|
@@ -129,30 +182,47 @@ export type IndexBuilder = {
|
|
|
129
182
|
readonly _using?: IndexMethod;
|
|
130
183
|
readonly _opclass?: string;
|
|
131
184
|
readonly _with?: BloomIndexOptions;
|
|
132
|
-
using(method: IndexMethod): IndexBuilder
|
|
133
|
-
ops(opclass: string): IndexBuilder
|
|
185
|
+
using(method: IndexMethod): IndexBuilder<TColumns>;
|
|
186
|
+
ops(opclass: string): IndexBuilder<TColumns>;
|
|
134
187
|
/** Bloom `WITH` options (requires `.using("bloom")`). */
|
|
135
|
-
with(options: BloomIndexOptions): IndexBuilder
|
|
188
|
+
with(options: BloomIndexOptions): IndexBuilder<TColumns>;
|
|
136
189
|
/** Partial index: only index rows matching the predicate. */
|
|
137
|
-
where(predicate:
|
|
190
|
+
where(predicate: IndexWhereInput<TColumns>): IndexDef;
|
|
138
191
|
};
|
|
139
192
|
export declare function isIndexExpr(value: unknown): value is IndexExpr;
|
|
140
193
|
/** SQL expression index key (`lower(email)`), not a column identifier. */
|
|
141
194
|
export declare function expr(sql: string): IndexExpr;
|
|
142
|
-
/**
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Create a non-unique index on one or more columns (use in table extras).
|
|
197
|
+
* When keys come from the extras scope (`t.col`), the table's columns are
|
|
198
|
+
* inferred: `.where()` gets key completion and unknown key names error.
|
|
199
|
+
* Raw strings stay untyped.
|
|
200
|
+
*/
|
|
201
|
+
export declare function index<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>>(...keys: readonly (ColumnKey<TColumns> | IndexExpr)[]): IndexBuilder<TColumns>;
|
|
202
|
+
/**
|
|
203
|
+
* Create a unique index on one or more columns (use in table extras).
|
|
204
|
+
* Supports `.where()` for partial uniques; when keys come from the extras
|
|
205
|
+
* scope (`t.col`), the predicate is typed and unknown key names error.
|
|
206
|
+
* Raw strings stay untyped.
|
|
207
|
+
*/
|
|
208
|
+
export declare function unique<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>>(...keys: readonly (ColumnKey<TColumns> | IndexExpr)[]): IndexBuilder<TColumns>;
|
|
209
|
+
/** Strip column-ref brands back to plain string literals. */
|
|
210
|
+
type UnbrandColumnNames<T extends readonly string[]> = {
|
|
211
|
+
[I in keyof T]: T[I] extends {
|
|
212
|
+
readonly __colName?: infer N extends string;
|
|
213
|
+
} ? N : T[I];
|
|
214
|
+
};
|
|
146
215
|
/** Declare a composite primary key (use in table extras). */
|
|
147
|
-
export declare function primaryKey<
|
|
216
|
+
export declare function primaryKey<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>, const T extends readonly string[] = readonly []>(...columns: T & readonly ColumnKey<TColumns>[]): {
|
|
148
217
|
kind: "primaryKey";
|
|
149
|
-
columns:
|
|
218
|
+
columns: UnbrandColumnNames<T>;
|
|
150
219
|
};
|
|
151
220
|
/**
|
|
152
221
|
* Declare a composite foreign-key constraint as a first-class relation
|
|
153
222
|
* (use in table extras). Local columns must not also be `fk()`.
|
|
223
|
+
* Keys from the extras scope (`t.col`) are validated against the table.
|
|
154
224
|
*/
|
|
155
|
-
export declare function foreignKey(...columns: readonly
|
|
225
|
+
export declare function foreignKey<TColumns extends Record<string, ColumnDef> = Record<string, ColumnDef>>(...columns: readonly ColumnKey<TColumns>[]): ForeignKeyBuilder<"", "", "">;
|
|
156
226
|
/**
|
|
157
227
|
* Define a table and its columns.
|
|
158
228
|
*
|
|
@@ -168,8 +238,8 @@ export declare function foreignKey(...columns: readonly string[]): ForeignKeyBui
|
|
|
168
238
|
* }),
|
|
169
239
|
* ```
|
|
170
240
|
*/
|
|
171
|
-
export declare function table<TColumns extends Record<string, ColumnDef>, TExtras extends readonly TableExtra[] = readonly []>(columns: TColumns, config?: ((t:
|
|
172
|
-
export declare function table<TName extends string, TColumns extends Record<string, ColumnDef>, TExtras extends readonly TableExtra[] = readonly []>(sqlName: TName, columns: TColumns, config?: ((t:
|
|
241
|
+
export declare function table<TColumns extends Record<string, ColumnDef>, TExtras extends readonly TableExtra[] = readonly []>(columns: TColumns, config?: ((t: TableScope<TColumns>) => TExtras) | TableOptions<TColumns, TExtras>): TableDef<"", TColumns, `.${PkColumnName<TColumns>}`, TExtras> & TableColumns<"", TColumns>;
|
|
242
|
+
export declare function table<TName extends string, TColumns extends Record<string, ColumnDef>, TExtras extends readonly TableExtra[] = readonly []>(sqlName: TName, columns: TColumns, config?: ((t: TableScope<TColumns>) => TExtras) | TableOptions<TColumns, TExtras>): TableDef<TName, TColumns, `${TName}.${PkColumnName<TColumns>}`, TExtras> & TableColumns<TName, TColumns>;
|
|
173
243
|
export declare function findPrimaryKeyColumn(columns: Record<string, ColumnDef>): string | undefined;
|
|
174
244
|
export {};
|
|
175
245
|
//# sourceMappingURL=table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/schema/table.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/schema/table.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/table.js
CHANGED
|
@@ -52,17 +52,30 @@ function createIndexBuilder(state) {
|
|
|
52
52
|
},
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Create a non-unique index on one or more columns (use in table extras).
|
|
57
|
+
* When keys come from the extras scope (`t.col`), the table's columns are
|
|
58
|
+
* inferred: `.where()` gets key completion and unknown key names error.
|
|
59
|
+
* Raw strings stay untyped.
|
|
60
|
+
*/
|
|
56
61
|
export function index(...keys) {
|
|
57
62
|
return createIndexBuilder({ keys, unique: false });
|
|
58
63
|
}
|
|
59
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Create a unique index on one or more columns (use in table extras).
|
|
66
|
+
* Supports `.where()` for partial uniques; when keys come from the extras
|
|
67
|
+
* scope (`t.col`), the predicate is typed and unknown key names error.
|
|
68
|
+
* Raw strings stay untyped.
|
|
69
|
+
*/
|
|
60
70
|
export function unique(...keys) {
|
|
61
71
|
return createIndexBuilder({ keys, unique: true });
|
|
62
72
|
}
|
|
63
73
|
/** Declare a composite primary key (use in table extras). */
|
|
64
74
|
export function primaryKey(...columns) {
|
|
65
|
-
return {
|
|
75
|
+
return {
|
|
76
|
+
kind: "primaryKey",
|
|
77
|
+
columns: columns,
|
|
78
|
+
};
|
|
66
79
|
}
|
|
67
80
|
function createForeignKeyBuilder(state) {
|
|
68
81
|
return {
|
|
@@ -108,6 +121,7 @@ function createForeignKeyBuilder(state) {
|
|
|
108
121
|
/**
|
|
109
122
|
* Declare a composite foreign-key constraint as a first-class relation
|
|
110
123
|
* (use in table extras). Local columns must not also be `fk()`.
|
|
124
|
+
* Keys from the extras scope (`t.col`) are validated against the table.
|
|
111
125
|
*/
|
|
112
126
|
export function foreignKey(...columns) {
|
|
113
127
|
return createForeignKeyBuilder({
|
|
@@ -160,16 +174,27 @@ function buildTableDef(sqlName, columns, extras, columnNaming) {
|
|
|
160
174
|
return Object.assign(def, columns);
|
|
161
175
|
}
|
|
162
176
|
export function table(first, second, third) {
|
|
177
|
+
// Extras scope: column-name refs plus `t.index` / `t.unique` helpers that
|
|
178
|
+
// return table-typed builders (typed `.where()`). The helpers are only
|
|
179
|
+
// attached when they don't shadow a same-named column.
|
|
180
|
+
const toScope = (columnMap) => {
|
|
181
|
+
const scope = Object.fromEntries(Object.keys(columnMap).map((k) => [k, k]));
|
|
182
|
+
if (!("index" in scope)) {
|
|
183
|
+
scope.index = index;
|
|
184
|
+
}
|
|
185
|
+
if (!("unique" in scope)) {
|
|
186
|
+
scope.unique = unique;
|
|
187
|
+
}
|
|
188
|
+
return scope;
|
|
189
|
+
};
|
|
163
190
|
if (typeof first === "string" && isColumnMap(second)) {
|
|
164
|
-
const
|
|
165
|
-
const extras = resolveExtras(refs, third);
|
|
191
|
+
const extras = resolveExtras(toScope(second), third);
|
|
166
192
|
return buildTableDef(first, second, extras, configColumnNaming(third));
|
|
167
193
|
}
|
|
168
194
|
if (!isColumnMap(first)) {
|
|
169
195
|
throw schemaError(SchemaErrorCode.invalid_column, "table() expects a column map as the first argument, or a SQL name followed by a column map");
|
|
170
196
|
}
|
|
171
|
-
const
|
|
172
|
-
const extras = resolveExtras(refs, second);
|
|
197
|
+
const extras = resolveExtras(toScope(first), second);
|
|
173
198
|
return buildTableDef("", first, extras, configColumnNaming(second));
|
|
174
199
|
}
|
|
175
200
|
export function findPrimaryKeyColumn(columns) {
|
package/dist/schema/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/schema/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/schema/table.ts"],"names":[],"mappings":"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"}
|
package/docs/examples.md
CHANGED
|
@@ -506,7 +506,7 @@ See [Plugins](plugins.md).
|
|
|
506
506
|
Composite unique constraint and partial unique (soft-delete emails):
|
|
507
507
|
|
|
508
508
|
```ts
|
|
509
|
-
import { bool, fk, id,
|
|
509
|
+
import { bool, fk, id, table, text, unique } from "neoorm/schema";
|
|
510
510
|
|
|
511
511
|
posts: table(
|
|
512
512
|
{
|
|
@@ -517,7 +517,7 @@ posts: table(
|
|
|
517
517
|
},
|
|
518
518
|
(t) => [
|
|
519
519
|
unique(t.authorId, t.title),
|
|
520
|
-
index(t.title).where({ published: true }),
|
|
520
|
+
t.index(t.title).where({ published: true }),
|
|
521
521
|
],
|
|
522
522
|
),
|
|
523
523
|
|
|
@@ -527,7 +527,7 @@ users: table(
|
|
|
527
527
|
email: text().notNull(),
|
|
528
528
|
deleted: bool().notNull().default(false),
|
|
529
529
|
},
|
|
530
|
-
(t) => [unique(t.email).where({ deleted: false })],
|
|
530
|
+
(t) => [t.unique(t.email).where({ deleted: false })],
|
|
531
531
|
),
|
|
532
532
|
```
|
|
533
533
|
|
package/docs/schema.md
CHANGED
|
@@ -279,7 +279,7 @@ posts: table(
|
|
|
279
279
|
),
|
|
280
280
|
```
|
|
281
281
|
|
|
282
|
-
Helpers: `unique(...cols)`, `index(...cols)`, `primaryKey(...cols)`, `expr("sql")`. `unique()` and `index()` support `.using()`, `.ops()`, `.with()` (bloom only), and `.where()` for partial indexes.
|
|
282
|
+
Helpers: `unique(...cols)`, `index(...cols)`, `primaryKey(...cols)`, `expr("sql")`. `unique()` and `index()` support `.using()`, `.ops()`, `.with()` (bloom only), and `.where()` for partial indexes. Key names from the extras scope (`t.col`) are validated against the table's columns; raw strings are unchecked.
|
|
283
283
|
|
|
284
284
|
### Index methods and expressions
|
|
285
285
|
|
|
@@ -305,11 +305,16 @@ Bloom indexes (Postgres only) are tuned with `.with({ length, cols })`: `cols` m
|
|
|
305
305
|
|
|
306
306
|
```ts
|
|
307
307
|
(t) => [
|
|
308
|
-
index(t.title).where({ published: true }),
|
|
309
|
-
unique(t.email).where({ deleted: false }),
|
|
308
|
+
t.index(t.title).where({ published: true }),
|
|
309
|
+
t.unique(t.email).where({ deleted: false }),
|
|
310
310
|
],
|
|
311
311
|
```
|
|
312
312
|
|
|
313
|
+
Use `t.index` / `t.unique` or the top-level `index()` / `unique()` with
|
|
314
|
+
`t.col` keys — in both cases the `where` predicate is typed: keys and scalar
|
|
315
|
+
values autocomplete from the table's columns. Raw-string keys
|
|
316
|
+
(`unique("email")`) still accept `.where()` with an untyped predicate.
|
|
317
|
+
|
|
313
318
|
Equality map of column refs → values; compiled to `WHERE "published" = true` (or `= 1` on SQLite). Partial uniques emit as `CREATE UNIQUE INDEX ... WHERE ...`, not table-level `UNIQUE (...)`. They are valid `findUnique` / `upsert` / `findOrCreate` targets: `where` uses the indexed columns, and the index predicate is applied automatically (`AND` on lookups, `ON CONFLICT (…) WHERE …` on Postgres and SQLite).
|
|
314
319
|
|
|
315
320
|
## Many-to-many
|