zodvex 0.7.1 → 0.7.2-beta.1
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/cli/index.js +186 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/codegen/index.js +137 -14
- package/dist/codegen/index.js.map +1 -1
- package/dist/core/index.js +56 -10
- package/dist/core/index.js.map +1 -1
- package/dist/index.js +56 -10
- package/dist/index.js.map +1 -1
- package/dist/internal/db.d.ts +14 -11
- package/dist/internal/db.d.ts.map +1 -1
- package/dist/internal/meta.d.ts +11 -0
- package/dist/internal/meta.d.ts.map +1 -1
- package/dist/internal/model.d.ts +21 -0
- package/dist/internal/model.d.ts.map +1 -1
- package/dist/internal/zx.d.ts +14 -0
- package/dist/internal/zx.d.ts.map +1 -1
- package/dist/labs/index.js +29 -4
- package/dist/labs/index.js.map +1 -1
- package/dist/legacy/index.js +13 -2
- package/dist/legacy/index.js.map +1 -1
- package/dist/mini/index.js +58 -12
- package/dist/mini/index.js.map +1 -1
- package/dist/mini/server/index.js +37 -27
- package/dist/mini/server/index.js.map +1 -1
- package/dist/public/cli/commands.d.ts +12 -0
- package/dist/public/cli/commands.d.ts.map +1 -1
- package/dist/public/codegen/discover.d.ts +8 -0
- package/dist/public/codegen/discover.d.ts.map +1 -1
- package/dist/public/codegen/generate.d.ts.map +1 -1
- package/dist/public/mini/model.d.ts +6 -0
- package/dist/public/mini/model.d.ts.map +1 -1
- package/dist/public/mini/zx.d.ts +2 -0
- package/dist/public/mini/zx.d.ts.map +1 -1
- package/dist/public/model.d.ts +6 -0
- package/dist/public/model.d.ts.map +1 -1
- package/dist/server/index.js +37 -27
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/db.ts +33 -52
- package/src/internal/meta.ts +26 -0
- package/src/internal/model.ts +76 -9
- package/src/internal/zx.ts +18 -2
- package/src/public/cli/commands.ts +35 -6
- package/src/public/codegen/discover.ts +9 -1
- package/src/public/codegen/generate.ts +203 -15
- package/src/public/mini/model.ts +6 -0
- package/src/public/mini/zx.ts +3 -2
- package/src/public/model.ts +6 -0
package/dist/core/index.js
CHANGED
|
@@ -818,6 +818,15 @@ function readMeta(target) {
|
|
|
818
818
|
}
|
|
819
819
|
return target[META_KEY];
|
|
820
820
|
}
|
|
821
|
+
var CODEC_BRAND_KEY = "__zodvexCodecBrand";
|
|
822
|
+
function attachCodecBrand(target, brand) {
|
|
823
|
+
Object.defineProperty(target, CODEC_BRAND_KEY, {
|
|
824
|
+
value: brand,
|
|
825
|
+
enumerable: false,
|
|
826
|
+
writable: false,
|
|
827
|
+
configurable: false
|
|
828
|
+
});
|
|
829
|
+
}
|
|
821
830
|
|
|
822
831
|
// src/public/codegen/extractCodec.ts
|
|
823
832
|
function findCodec(schema) {
|
|
@@ -885,8 +894,10 @@ function id(tableName) {
|
|
|
885
894
|
branded._tableName = tableName;
|
|
886
895
|
return branded;
|
|
887
896
|
}
|
|
888
|
-
function codec(wire, runtime, transforms) {
|
|
889
|
-
|
|
897
|
+
function codec(wire, runtime, transforms, opts) {
|
|
898
|
+
const built = zodvexCodec(wire, runtime, transforms);
|
|
899
|
+
if (opts?.brand) attachCodecBrand(built, opts.brand);
|
|
900
|
+
return built;
|
|
890
901
|
}
|
|
891
902
|
function sharedWeakMap(name) {
|
|
892
903
|
const key = /* @__PURE__ */ Symbol.for(`zodvex.zx.cache.${name}`);
|
|
@@ -1143,7 +1154,18 @@ function createSchemaBundle(name, inputSchema) {
|
|
|
1143
1154
|
}
|
|
1144
1155
|
|
|
1145
1156
|
// src/internal/model.ts
|
|
1146
|
-
function
|
|
1157
|
+
function lazyValidator(fields, userSchema) {
|
|
1158
|
+
let cached;
|
|
1159
|
+
return {
|
|
1160
|
+
get: () => {
|
|
1161
|
+
if (cached) return cached;
|
|
1162
|
+
cached = userSchema ?? z.object(fields);
|
|
1163
|
+
return cached;
|
|
1164
|
+
}
|
|
1165
|
+
};
|
|
1166
|
+
}
|
|
1167
|
+
function createModel(name, fields, schema, definitionSource, indexes = {}, searchIndexes = {}, vectorIndexes = {}, userSchema = null) {
|
|
1168
|
+
const validatorCache = lazyValidator(fields, userSchema);
|
|
1147
1169
|
const model = {
|
|
1148
1170
|
name,
|
|
1149
1171
|
fields,
|
|
@@ -1151,6 +1173,9 @@ function createModel(name, fields, schema, definitionSource, indexes = {}, searc
|
|
|
1151
1173
|
indexes,
|
|
1152
1174
|
searchIndexes,
|
|
1153
1175
|
vectorIndexes,
|
|
1176
|
+
get validator() {
|
|
1177
|
+
return validatorCache.get();
|
|
1178
|
+
},
|
|
1154
1179
|
index(indexName, indexFields) {
|
|
1155
1180
|
return createModel(
|
|
1156
1181
|
name,
|
|
@@ -1159,7 +1184,8 @@ function createModel(name, fields, schema, definitionSource, indexes = {}, searc
|
|
|
1159
1184
|
definitionSource,
|
|
1160
1185
|
{ ...indexes, [indexName]: [...indexFields, "_creationTime"] },
|
|
1161
1186
|
searchIndexes,
|
|
1162
|
-
vectorIndexes
|
|
1187
|
+
vectorIndexes,
|
|
1188
|
+
userSchema
|
|
1163
1189
|
);
|
|
1164
1190
|
},
|
|
1165
1191
|
searchIndex(indexName, config) {
|
|
@@ -1170,26 +1196,37 @@ function createModel(name, fields, schema, definitionSource, indexes = {}, searc
|
|
|
1170
1196
|
definitionSource,
|
|
1171
1197
|
indexes,
|
|
1172
1198
|
{ ...searchIndexes, [indexName]: config },
|
|
1173
|
-
vectorIndexes
|
|
1199
|
+
vectorIndexes,
|
|
1200
|
+
userSchema
|
|
1174
1201
|
);
|
|
1175
1202
|
},
|
|
1176
1203
|
vectorIndex(indexName, config) {
|
|
1177
|
-
return createModel(
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1204
|
+
return createModel(
|
|
1205
|
+
name,
|
|
1206
|
+
fields,
|
|
1207
|
+
schema,
|
|
1208
|
+
definitionSource,
|
|
1209
|
+
indexes,
|
|
1210
|
+
searchIndexes,
|
|
1211
|
+
{ ...vectorIndexes, [indexName]: config },
|
|
1212
|
+
userSchema
|
|
1213
|
+
);
|
|
1181
1214
|
}
|
|
1182
1215
|
};
|
|
1183
1216
|
attachMeta(model, { type: "model", tableName: name, definitionSource, schemas: schema });
|
|
1184
1217
|
return model;
|
|
1185
1218
|
}
|
|
1186
1219
|
function createSlimModel(name, fields, userSchema, definitionSource, indexes = {}, searchIndexes = {}, vectorIndexes = {}) {
|
|
1220
|
+
const validatorCache = lazyValidator(fields, userSchema);
|
|
1187
1221
|
const model = {
|
|
1188
1222
|
name,
|
|
1189
1223
|
fields,
|
|
1190
1224
|
indexes,
|
|
1191
1225
|
searchIndexes,
|
|
1192
1226
|
vectorIndexes,
|
|
1227
|
+
get validator() {
|
|
1228
|
+
return validatorCache.get();
|
|
1229
|
+
},
|
|
1193
1230
|
index(indexName, indexFields) {
|
|
1194
1231
|
return createSlimModel(
|
|
1195
1232
|
name,
|
|
@@ -1229,7 +1266,16 @@ function defineZodModel(name, fieldsOrSchema, options) {
|
|
|
1229
1266
|
if (slim) {
|
|
1230
1267
|
return createSlimModel(name, {}, fieldsOrSchema, "schema");
|
|
1231
1268
|
}
|
|
1232
|
-
return createModel(
|
|
1269
|
+
return createModel(
|
|
1270
|
+
name,
|
|
1271
|
+
{},
|
|
1272
|
+
createSchemaBundle(name, fieldsOrSchema),
|
|
1273
|
+
"schema",
|
|
1274
|
+
void 0,
|
|
1275
|
+
void 0,
|
|
1276
|
+
void 0,
|
|
1277
|
+
fieldsOrSchema
|
|
1278
|
+
);
|
|
1233
1279
|
}
|
|
1234
1280
|
const fields = fieldsOrSchema;
|
|
1235
1281
|
if (slim) {
|