@liminalfunctions/framework 1.0.61 → 1.0.62

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.
@@ -105,7 +105,13 @@ function parse_enum(def) {
105
105
  }
106
106
  function parse_record(def, indent_level, loop_detector, skip_once) {
107
107
  let retval = ['{'];
108
- let key_phrase = `[key: ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
108
+ let key_phrase = '';
109
+ if (def.keyType.def.type === 'enum') {
110
+ key_phrase = `[key in ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
111
+ }
112
+ else {
113
+ key_phrase = `[key: ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
114
+ }
109
115
  let type_value = parse_zod(def.valueType, indent_level + 1, loop_detector, skip_once);
110
116
  if (type_value.length > 1) {
111
117
  retval.push(indent(indent_level + 1, `${key_phrase} ${type_value[0]}`));
@@ -1 +1 @@
1
- {"version":3,"file":"type_from_zod.js","sourceRoot":"","sources":["../../../src/code_generation/utils/type_from_zod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type_from_zod.js","sourceRoot":"","sources":["../../../src/code_generation/utils/type_from_zod.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liminalfunctions/framework",
3
- "version": "1.0.61",
3
+ "version": "1.0.62",
4
4
  "main": "./dist/index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -127,8 +127,17 @@ function parse_enum(def: z.core.$ZodEnumDef): any {
127
127
 
128
128
  function parse_record(def: z.core.$ZodRecordDef, indent_level: number, loop_detector: Map<any, validator_group>, skip_once: z.core.$ZodTypeDef): any {
129
129
  let retval = ['{']
130
+ let key_phrase = '';
131
+
130
132
  //@ts-ignore
131
- let key_phrase = `[key: ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
133
+ if(def.keyType.def.type === 'enum') {
134
+ //@ts-ignore
135
+ key_phrase = `[key in ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
136
+ } else {
137
+ //@ts-ignore
138
+ key_phrase = `[key: ${parse_zod(def.keyType, indent_level + 1, loop_detector, skip_once)}]:`;
139
+ }
140
+
132
141
 
133
142
  //@ts-ignore
134
143
  let type_value = parse_zod(def.valueType, indent_level + 1, loop_detector, skip_once)
@@ -523,6 +523,28 @@ describe('Client Library Generation: Basic Types', function () {
523
523
  )
524
524
  });
525
525
 
526
+ it(`should be able to generate a plain object containing a record that uses an enum as a key`, async function () {
527
+ const validate_test_collection = z.object({
528
+ _id: z_mongodb_id,
529
+ test: z.record(z.enum(['test', 'jest', 'grankle']), z.string())
530
+ });
531
+
532
+ let test_collection = new F_Collection('test_collection', 'test_collection', validate_test_collection);
533
+
534
+ let proto_registry = new F_Collection_Registry();
535
+ let registry = proto_registry.register(test_collection);
536
+
537
+ await generate_client_library('./test/tmp', registry);
538
+
539
+ assert.equal(
540
+ remove_whitespace(await readFile('./test/tmp/src/types/test_collection.ts', { encoding: 'utf-8' })),
541
+ remove_whitespace(`export type test_collection = {
542
+ "_id": string
543
+ "test": {[key in ("test" | "jest" | "grankle")]: string}
544
+ }`)
545
+ )
546
+ });
547
+
526
548
 
527
549
  it(`should be able to generate a plain object containing an object record`, async function () {
528
550
  const validate_test_collection = z.object({