on-zero 0.16.16 → 0.16.17
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/cjs/createZeroClient.httpAuth.test.cjs +5 -3
- package/dist/cjs/createZeroClient.httpAuth.test.native.js +3 -3
- package/dist/cjs/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +21 -14
- package/dist/cjs/generate-helpers.native.js +50 -27
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-helpers.test.cjs +146 -0
- package/dist/cjs/generate-helpers.test.native.js +149 -0
- package/dist/cjs/generate-helpers.test.native.js.map +1 -1
- package/dist/cjs/generate-lite.cjs +3 -3
- package/dist/cjs/generate-lite.native.js +5 -3
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +56 -0
- package/dist/cjs/generate-lite.test.native.js +60 -0
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +37 -26
- package/dist/cjs/generate.native.js +58 -26
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +109 -0
- package/dist/cjs/generate.test.native.js +115 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +22 -11
- package/dist/cjs/mutations.native.js +42 -10
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.cjs +228 -0
- package/dist/cjs/mutations.test.native.js +259 -0
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.mjs +5 -3
- package/dist/esm/createZeroClient.httpAuth.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.native.js +3 -3
- package/dist/esm/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +21 -15
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +50 -28
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-helpers.test.mjs +122 -0
- package/dist/esm/generate-helpers.test.mjs.map +1 -1
- package/dist/esm/generate-helpers.test.native.js +125 -0
- package/dist/esm/generate-helpers.test.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs +4 -4
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +6 -4
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +56 -0
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +60 -0
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +38 -27
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +59 -27
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +86 -1
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +92 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/mutations.mjs +22 -11
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +42 -10
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.mjs +229 -1
- package/dist/esm/mutations.test.mjs.map +1 -1
- package/dist/esm/mutations.test.native.js +260 -1
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.httpAuth.test.ts +4 -5
- package/src/generate-helpers.test.ts +124 -0
- package/src/generate-helpers.ts +43 -27
- package/src/generate-lite.test.ts +53 -0
- package/src/generate-lite.ts +16 -9
- package/src/generate.test.ts +92 -0
- package/src/generate.ts +60 -33
- package/src/mutations.test.ts +216 -1
- package/src/mutations.ts +39 -39
- package/types/generate-helpers.d.ts +3 -1
- package/types/generate-helpers.d.ts.map +1 -1
- package/types/generate-lite.d.ts +1 -0
- package/types/generate-lite.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/mutations.d.ts +5 -2
- package/types/mutations.d.ts.map +1 -1
package/src/mutations.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IS_SERVER_RUNTIME } from './helpers/platform'
|
|
2
1
|
import { setMutationsPermissions } from './modelRegistry'
|
|
2
|
+
import { getSchema, getZQL } from './state'
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
5
|
MutatorContext,
|
|
@@ -37,7 +37,8 @@ function proxyRegistry(): Map<string, any> {
|
|
|
37
37
|
// returns the SAME proxy object on subsequent calls so HMR works
|
|
38
38
|
function getOrCreateMutationProxy<T extends Record<string, Function>>(
|
|
39
39
|
tableName: string,
|
|
40
|
-
implementations: T
|
|
40
|
+
implementations: T,
|
|
41
|
+
crud = true
|
|
41
42
|
): T {
|
|
42
43
|
// merge with any prior registration for this table: multiple modules may
|
|
43
44
|
// register mutators on the same table (a seed.ts alongside the table's own
|
|
@@ -45,6 +46,11 @@ function getOrCreateMutationProxy<T extends Record<string, Function>>(
|
|
|
45
46
|
// wholesale drops whichever module registered first. per-key replacement
|
|
46
47
|
// still supports HMR updates of edited handlers.
|
|
47
48
|
const prior = mutationRegistry().get(tableName)
|
|
49
|
+
if (prior && !crud) {
|
|
50
|
+
for (const action of ['insert', 'update', 'delete', 'upsert']) {
|
|
51
|
+
if (!(action in implementations)) delete prior[action]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
48
54
|
mutationRegistry().set(
|
|
49
55
|
tableName,
|
|
50
56
|
prior ? { ...prior, ...implementations } : implementations
|
|
@@ -84,19 +90,6 @@ function getOrCreateMutationProxy<T extends Record<string, Function>>(
|
|
|
84
90
|
type MutationBuilder<Obj = any> = (ctx: MutatorContext, obj?: Obj) => Promise<void>
|
|
85
91
|
type MutationBuilders = Record<string, MutationBuilder>
|
|
86
92
|
|
|
87
|
-
// start of adding custom can.write(message) style
|
|
88
|
-
|
|
89
|
-
// type PermissionedMutationBuilder<Permissions extends PermissionsWhere, Obj = any> = (
|
|
90
|
-
// ctx: MutatorContext & {
|
|
91
|
-
// can: any
|
|
92
|
-
// },
|
|
93
|
-
// obj?: Obj
|
|
94
|
-
// ) => Promise<void>
|
|
95
|
-
// type PermissionedMutationBuilders<Permissions extends PermissionsWhere> = Record<
|
|
96
|
-
// string,
|
|
97
|
-
// PermissionedMutationBuilder<Permissions>
|
|
98
|
-
// >
|
|
99
|
-
|
|
100
93
|
type GenericTable = TableBuilderWithColumns<any>
|
|
101
94
|
|
|
102
95
|
type CRUDMutations<Table extends GenericTable> = {
|
|
@@ -108,6 +101,8 @@ type CRUDMutations<Table extends GenericTable> = {
|
|
|
108
101
|
|
|
109
102
|
type CRUDNames = 'insert' | 'upsert' | 'update' | 'delete'
|
|
110
103
|
|
|
104
|
+
type MutationOptions<CRUD extends boolean = boolean> = { crud?: CRUD }
|
|
105
|
+
|
|
111
106
|
type MutationsWithCRUD<Table extends GenericTable, Mutations extends MutationBuilders> = {
|
|
112
107
|
[Key in CRUDNames | keyof Mutations]: Key extends keyof Mutations
|
|
113
108
|
? Mutations[Key]
|
|
@@ -127,11 +122,13 @@ export function mutations<
|
|
|
127
122
|
Table extends GenericTable,
|
|
128
123
|
Permissions extends Where,
|
|
129
124
|
Mutations extends MutationBuilders,
|
|
125
|
+
CRUD extends boolean = true,
|
|
130
126
|
>(
|
|
131
127
|
table: Table,
|
|
132
128
|
permissions: Permissions,
|
|
133
|
-
mutations: Mutations
|
|
134
|
-
|
|
129
|
+
mutations: Mutations,
|
|
130
|
+
options?: MutationOptions<CRUD>
|
|
131
|
+
): CRUD extends false ? Mutations : MutationsWithCRUD<Table, Mutations>
|
|
135
132
|
// string-based overloads (for drizzle-zero derived schemas where table builders aren't available)
|
|
136
133
|
export function mutations<TName extends TableName, Permissions extends Where>(
|
|
137
134
|
tableName: TName,
|
|
@@ -141,18 +138,23 @@ export function mutations<
|
|
|
141
138
|
TName extends TableName,
|
|
142
139
|
Permissions extends Where,
|
|
143
140
|
Mutations extends MutationBuilders,
|
|
141
|
+
CRUD extends boolean = true,
|
|
144
142
|
>(
|
|
145
143
|
tableName: TName,
|
|
146
144
|
permissions: Permissions,
|
|
147
|
-
mutations: Mutations
|
|
148
|
-
|
|
145
|
+
mutations: Mutations,
|
|
146
|
+
options?: MutationOptions<CRUD>
|
|
147
|
+
): CRUD extends false
|
|
148
|
+
? Mutations
|
|
149
|
+
: MutationsWithCRUD<SchemaTableBuilder<TName>, Mutations>
|
|
149
150
|
export function mutations<
|
|
150
151
|
Table extends GenericTable,
|
|
151
152
|
Mutations extends Record<string, MutationBuilder>,
|
|
152
153
|
>(
|
|
153
154
|
table: Table | string | Mutations,
|
|
154
155
|
permissions?: Where,
|
|
155
|
-
mutations?: Mutations
|
|
156
|
+
mutations?: Mutations,
|
|
157
|
+
options?: MutationOptions
|
|
156
158
|
): Mutations {
|
|
157
159
|
if (permissions) {
|
|
158
160
|
const tableName =
|
|
@@ -160,35 +162,35 @@ export function mutations<
|
|
|
160
162
|
? (table as TableName)
|
|
161
163
|
: ((table as Table).schema.name as TableName)
|
|
162
164
|
|
|
165
|
+
setMutationsPermissions(tableName, permissions)
|
|
166
|
+
if (options?.crud === false) {
|
|
167
|
+
return getOrCreateMutationProxy(tableName, mutations ?? {}, false) as Mutations
|
|
168
|
+
}
|
|
169
|
+
|
|
163
170
|
const createCRUDMutation = (action: CRUDNames) => {
|
|
164
171
|
const customMutation = mutations?.[action]
|
|
165
172
|
if (customMutation) return customMutation
|
|
166
173
|
|
|
167
174
|
return async (ctx: MutatorContext, obj: any) => {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const runServerPermissionCheck = async () => {
|
|
177
|
-
// only validate on the server
|
|
178
|
-
if (IS_SERVER_RUNTIME) {
|
|
175
|
+
// bound can checks authoritative writes, including browser-hosted servers.
|
|
176
|
+
// optimistic clients skip the existence read because their cache is partial.
|
|
177
|
+
if (action === 'upsert' && ctx.environment === 'server') {
|
|
178
|
+
let existing = getZQL()[tableName]
|
|
179
|
+
for (const key of getSchema().tables[tableName].primaryKey) {
|
|
180
|
+
existing = existing.where(key, obj[key])
|
|
181
|
+
}
|
|
182
|
+
if (await ctx.tx.run(existing.one())) {
|
|
179
183
|
await ctx.can(permissions, obj)
|
|
180
184
|
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
if (action !== 'insert' && action !== 'upsert') {
|
|
184
|
-
await runServerPermissionCheck()
|
|
185
|
+
} else if (action === 'update' || action === 'delete') {
|
|
186
|
+
await ctx.can(permissions, obj)
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
type TableName = keyof typeof ctx.tx.mutate // weird type foo because we declare this module and then type check
|
|
188
190
|
await ctx.tx.mutate[tableName as TableName]
|
|
189
191
|
|
|
190
|
-
if (action
|
|
191
|
-
await
|
|
192
|
+
if (action !== 'delete') {
|
|
193
|
+
await ctx.can(permissions, obj)
|
|
192
194
|
}
|
|
193
195
|
}
|
|
194
196
|
}
|
|
@@ -206,8 +208,6 @@ export function mutations<
|
|
|
206
208
|
...crudMutations,
|
|
207
209
|
} as any as Mutations
|
|
208
210
|
|
|
209
|
-
setMutationsPermissions(tableName, permissions)
|
|
210
|
-
|
|
211
211
|
// return proxy for HMR support - allows swapping implementations at runtime
|
|
212
212
|
return getOrCreateMutationProxy(tableName, finalMutations)
|
|
213
213
|
}
|
|
@@ -65,7 +65,9 @@ export declare function generateSyncedQueriesFile(queries: Array<{
|
|
|
65
65
|
sourceFile: string;
|
|
66
66
|
}>): string;
|
|
67
67
|
export declare function columnTypeToValibot(col: SchemaColumn): string;
|
|
68
|
-
export declare
|
|
68
|
+
export declare const CRUD_MUTATION_NAMES: readonly ["insert", "update", "delete", "upsert"];
|
|
69
|
+
export type CRUDMutationName = (typeof CRUD_MUTATION_NAMES)[number];
|
|
70
|
+
export declare function schemaColumnsToValibot(columns: Record<string, SchemaColumn>, primaryKeys: string[], mode: CRUDMutationName): string;
|
|
69
71
|
export declare function extractValibotExpression(valibotCode: string): string;
|
|
70
72
|
export declare function parseColumnType(initText: string): SchemaColumn;
|
|
71
73
|
export declare function generateSyncedMutationsFile(modelMutations: ModelMutations[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-helpers.d.ts","sourceRoot":"","sources":["../src/generate-helpers.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IAEZ,SAAS,EAAE,MAAM,CAAA;IAEjB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"generate-helpers.d.ts","sourceRoot":"","sources":["../src/generate-helpers.ts"],"names":[],"mappings":"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"}
|
package/types/generate-lite.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-lite.d.ts","sourceRoot":"","sources":["../src/generate-lite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-lite.d.ts","sourceRoot":"","sources":["../src/generate-lite.ts"],"names":[],"mappings":"AAoCA,MAAM,MAAM,kBAAkB,GAAG;IAI/B,SAAS,EAAE,MAAM,CAAA;IAEjB,QAAQ,EAAE,KAAK,CAAC;QAEd,IAAI,EAAE,MAAM,CAAA;QAMZ,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAC7B,CAAC,CAAA;IAKF,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAM7B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,EAAE,CAAA;IAGrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAE5B,IAAI,EAAE,MAAM,CAAA;IAIZ,SAAS,EAAE,MAAM,CAAA;IAIjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAG5B,YAAY,EAAE,MAAM,EAAE,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QACE,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KACzB,CACF,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG;IAG3B,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IAExB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAG1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IAExB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB,UAAU,CAAC,EAAE,cAAc,CAAA;IAE3B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAID,MAAM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAA;AAElF,MAAM,MAAM,mBAAmB,GAAG;IAGhC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAG7B,GAAG,EAAE,MAAM,CAAA;IAEX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAG/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAI7B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAgSD,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAoZ1E"}
|
package/types/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA6oBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;CACnE,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6F3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QACE,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CACF,CAAA;IACD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AA0BD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ1B;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsFlB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA4ZhF;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCA+ChD"}
|
package/types/mutations.d.ts
CHANGED
|
@@ -11,13 +11,16 @@ type CRUDMutations<Table extends GenericTable> = {
|
|
|
11
11
|
delete: MutationBuilder<TableUpdateRow<Table>>;
|
|
12
12
|
};
|
|
13
13
|
type CRUDNames = 'insert' | 'upsert' | 'update' | 'delete';
|
|
14
|
+
type MutationOptions<CRUD extends boolean = boolean> = {
|
|
15
|
+
crud?: CRUD;
|
|
16
|
+
};
|
|
14
17
|
type MutationsWithCRUD<Table extends GenericTable, Mutations extends MutationBuilders> = {
|
|
15
18
|
[Key in CRUDNames | keyof Mutations]: Key extends keyof Mutations ? Mutations[Key] : Key extends keyof CRUDMutations<any> ? CRUDMutations<Table>[Key] : never;
|
|
16
19
|
};
|
|
17
20
|
export declare function mutations<Mutations extends MutationBuilders>(mutations: Mutations): Mutations;
|
|
18
21
|
export declare function mutations<Table extends GenericTable, Permissions extends Where>(table: Table, permissions: Permissions): MutationsWithCRUD<Table, {}>;
|
|
19
|
-
export declare function mutations<Table extends GenericTable, Permissions extends Where, Mutations extends MutationBuilders>(table: Table, permissions: Permissions, mutations: Mutations): MutationsWithCRUD<Table, Mutations>;
|
|
22
|
+
export declare function mutations<Table extends GenericTable, Permissions extends Where, Mutations extends MutationBuilders, CRUD extends boolean = true>(table: Table, permissions: Permissions, mutations: Mutations, options?: MutationOptions<CRUD>): CRUD extends false ? Mutations : MutationsWithCRUD<Table, Mutations>;
|
|
20
23
|
export declare function mutations<TName extends TableName, Permissions extends Where>(tableName: TName, permissions: Permissions): MutationsWithCRUD<SchemaTableBuilder<TName>, {}>;
|
|
21
|
-
export declare function mutations<TName extends TableName, Permissions extends Where, Mutations extends MutationBuilders>(tableName: TName, permissions: Permissions, mutations: Mutations): MutationsWithCRUD<SchemaTableBuilder<TName>, Mutations>;
|
|
24
|
+
export declare function mutations<TName extends TableName, Permissions extends Where, Mutations extends MutationBuilders, CRUD extends boolean = true>(tableName: TName, permissions: Permissions, mutations: Mutations, options?: MutationOptions<CRUD>): CRUD extends false ? Mutations : MutationsWithCRUD<SchemaTableBuilder<TName>, Mutations>;
|
|
22
25
|
export {};
|
|
23
26
|
//# sourceMappingURL=mutations.d.ts.map
|
package/types/mutations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,cAAc,EACd,KAAK,EACN,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG7D,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAAI,uBAAuB,CACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CACxB,CAAA;
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"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"}
|