@formspec/dsl 0.1.0-alpha.0 → 0.1.0-alpha.10

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 ADDED
@@ -0,0 +1,343 @@
1
+ # @formspec/dsl
2
+
3
+ Type-safe form definition using a fluent builder API. This is the recommended approach for defining forms programmatically, especially when you need runtime form construction or dynamic forms.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @formspec/dsl @formspec/build
9
+ # Or use the umbrella package:
10
+ npm install formspec
11
+ ```
12
+
13
+ ## Requirements
14
+
15
+ This package is ESM-only and requires:
16
+
17
+ ```json
18
+ // package.json
19
+ {
20
+ "type": "module"
21
+ }
22
+ ```
23
+
24
+ ```json
25
+ // tsconfig.json
26
+ {
27
+ "compilerOptions": {
28
+ "module": "NodeNext",
29
+ "moduleResolution": "NodeNext"
30
+ }
31
+ }
32
+ ```
33
+
34
+ ## Quick Start
35
+
36
+ ```typescript
37
+ import { formspec, field, group, when, is, type InferFormSchema } from "@formspec/dsl";
38
+ import { buildFormSchemas } from "@formspec/build";
39
+
40
+ // Define a form with full type safety
41
+ const ContactForm = formspec(
42
+ field.text("name", { label: "Name", required: true }),
43
+ field.text("email", { label: "Email", required: true }),
44
+ field.enum("subject", ["general", "support", "sales"] as const, {
45
+ label: "Subject",
46
+ required: true,
47
+ }),
48
+ field.text("message", { label: "Message", required: true }),
49
+ field.boolean("subscribe", { label: "Subscribe to newsletter" })
50
+ );
51
+
52
+ // Infer TypeScript types from the form definition
53
+ type ContactData = InferFormSchema<typeof ContactForm>;
54
+ // Result: { name: string; email: string; subject: "general" | "support" | "sales"; message: string; subscribe: boolean }
55
+
56
+ // Generate JSON Schema and UI Schema
57
+ const { jsonSchema, uiSchema } = buildFormSchemas(ContactForm);
58
+ ```
59
+
60
+ ## Field Types
61
+
62
+ ### Text Field
63
+
64
+ ```typescript
65
+ field.text("fieldName", {
66
+ label: "Display Label",
67
+ description: "Help text",
68
+ required: true,
69
+ minLength: 1,
70
+ maxLength: 100,
71
+ pattern: "^[a-zA-Z]+$", // Regex pattern
72
+ });
73
+ ```
74
+
75
+ ### Number Field
76
+
77
+ ```typescript
78
+ field.number("age", {
79
+ label: "Age",
80
+ required: true,
81
+ min: 0,
82
+ max: 120,
83
+ });
84
+ ```
85
+
86
+ ### Boolean Field
87
+
88
+ ```typescript
89
+ field.boolean("acceptTerms", {
90
+ label: "I accept the terms and conditions",
91
+ required: true,
92
+ });
93
+ ```
94
+
95
+ ### Enum Field (Dropdown/Select)
96
+
97
+ Use `as const` to preserve literal types for type inference:
98
+
99
+ ```typescript
100
+ // Simple string options
101
+ field.enum("status", ["draft", "published", "archived"] as const, {
102
+ label: "Status",
103
+ required: true,
104
+ });
105
+
106
+ // Options with separate IDs and labels
107
+ field.enum(
108
+ "country",
109
+ [
110
+ { id: "us", label: "United States" },
111
+ { id: "ca", label: "Canada" },
112
+ { id: "uk", label: "United Kingdom" },
113
+ ] as const,
114
+ {
115
+ label: "Country",
116
+ }
117
+ );
118
+ ```
119
+
120
+ **Note:** Use `as const` when passing enum options from a variable. For inline array literals, the `const` type parameter preserves literal types automatically.
121
+
122
+ ### Dynamic Enum Field
123
+
124
+ For dropdowns populated at runtime from an API:
125
+
126
+ ```typescript
127
+ field.dynamicEnum("customerId", "fetch_customers", {
128
+ label: "Customer",
129
+ required: true,
130
+ });
131
+ ```
132
+
133
+ The second argument is a source identifier used with `@formspec/runtime` resolvers.
134
+
135
+ ### Array Field
136
+
137
+ For repeatable field groups:
138
+
139
+ ```typescript
140
+ field.array(
141
+ "lineItems",
142
+ field.text("description", { label: "Description", required: true }),
143
+ field.number("quantity", { label: "Quantity", min: 1 }),
144
+ field.number("price", { label: "Unit Price", min: 0 })
145
+ );
146
+
147
+ // With configuration
148
+ field.arrayWithConfig(
149
+ "contacts",
150
+ { label: "Contact List", minItems: 1, maxItems: 5 },
151
+ field.text("name", { label: "Name" }),
152
+ field.text("phone", { label: "Phone" })
153
+ );
154
+ ```
155
+
156
+ ### Object Field
157
+
158
+ For nested field groups:
159
+
160
+ ```typescript
161
+ field.object(
162
+ "address",
163
+ field.text("street", { label: "Street", required: true }),
164
+ field.text("city", { label: "City", required: true }),
165
+ field.text("zipCode", { label: "ZIP Code", required: true })
166
+ );
167
+ ```
168
+
169
+ ## Grouping
170
+
171
+ Use `group()` to visually organize fields:
172
+
173
+ ```typescript
174
+ const UserForm = formspec(
175
+ group(
176
+ "Personal Information",
177
+ field.text("firstName", { label: "First Name", required: true }),
178
+ field.text("lastName", { label: "Last Name", required: true }),
179
+ field.text("email", { label: "Email", required: true })
180
+ ),
181
+ group(
182
+ "Preferences",
183
+ field.enum("theme", ["light", "dark", "system"] as const, { label: "Theme" }),
184
+ field.boolean("notifications", { label: "Enable notifications" })
185
+ )
186
+ );
187
+ ```
188
+
189
+ ## Conditional Fields
190
+
191
+ Use `when()` and `is()` to show/hide fields based on other field values:
192
+
193
+ ```typescript
194
+ const OrderForm = formspec(
195
+ field.enum("shippingMethod", ["standard", "express", "pickup"] as const, {
196
+ label: "Shipping Method",
197
+ required: true,
198
+ }),
199
+
200
+ // Only show address fields when shipping method is not "pickup"
201
+ when(
202
+ is("shippingMethod", "standard"),
203
+ field.text("address", { label: "Shipping Address", required: true }),
204
+ field.text("city", { label: "City", required: true })
205
+ ),
206
+ when(
207
+ is("shippingMethod", "express"),
208
+ field.text("address", { label: "Shipping Address", required: true }),
209
+ field.text("city", { label: "City", required: true }),
210
+ field.text("phone", { label: "Phone for courier", required: true })
211
+ )
212
+ );
213
+ ```
214
+
215
+ ## Type Inference
216
+
217
+ The library provides powerful type inference utilities:
218
+
219
+ ```typescript
220
+ import { type InferFormSchema, type InferFieldValue } from "@formspec/dsl";
221
+
222
+ const MyForm = formspec(
223
+ field.text("name"),
224
+ field.number("age"),
225
+ field.enum("role", ["admin", "user", "guest"] as const)
226
+ );
227
+
228
+ // Infer the complete form data type
229
+ type FormData = InferFormSchema<typeof MyForm>;
230
+ // { name: string; age: number; role: "admin" | "user" | "guest" }
231
+
232
+ // Access form elements at runtime
233
+ for (const element of MyForm.elements) {
234
+ if (element._type === "field") {
235
+ console.log(element.name, element._field);
236
+ }
237
+ }
238
+ ```
239
+
240
+ ## Validation
241
+
242
+ Validate form definitions at runtime:
243
+
244
+ ```typescript
245
+ import { formspec, field, validateForm, logValidationIssues } from "@formspec/dsl";
246
+
247
+ const form = formspec(
248
+ field.text("email"),
249
+ field.text("email") // Duplicate field name!
250
+ );
251
+
252
+ const result = validateForm(form.elements);
253
+ if (!result.valid) {
254
+ logValidationIssues(result, "MyForm");
255
+ // Logs: [MyForm] ERROR at email: Duplicate field name "email"
256
+ }
257
+
258
+ // Or use formspecWithValidation for automatic checking
259
+ import { formspecWithValidation } from "@formspec/dsl";
260
+
261
+ const validatedForm = formspecWithValidation(
262
+ { name: "MyForm", validate: "throw" },
263
+ field.text("email"),
264
+ field.text("email") // Throws error!
265
+ );
266
+ ```
267
+
268
+ ## Schema Generation
269
+
270
+ Use `@formspec/build` to generate JSON Schema and UI Schema:
271
+
272
+ ```typescript
273
+ import { buildFormSchemas, writeSchemas } from "@formspec/build";
274
+
275
+ // Get schema objects
276
+ const { jsonSchema, uiSchema } = buildFormSchemas(MyForm);
277
+
278
+ // Or write to files
279
+ writeSchemas(MyForm, {
280
+ outDir: "./generated",
281
+ name: "MyForm",
282
+ });
283
+ // Creates:
284
+ // ./generated/MyForm-schema.json
285
+ // ./generated/MyForm-uischema.json
286
+ ```
287
+
288
+ ## When to Use This Package
289
+
290
+ Use `@formspec/dsl` when:
291
+
292
+ - **Forms are defined programmatically** - Building forms from configuration or code
293
+ - **Runtime form construction** - Creating forms dynamically based on user input or API data
294
+ - **Full type inference needed** - Deriving TypeScript types from form definitions
295
+ - **No build step preferred** - Works directly at runtime without CLI codegen
296
+
297
+ Consider `@formspec/decorators` when:
298
+
299
+ - **Class-based forms preferred** - Using TypeScript classes with property decorators
300
+ - **Type inference from existing types** - Leveraging existing TypeScript class types
301
+ - **Static analysis available** - Using the CLI for build-time schema generation
302
+
303
+ ## API Reference
304
+
305
+ ### Functions
306
+
307
+ | Function | Description |
308
+ | ---------------------------------------------- | -------------------------------- |
309
+ | `formspec(...elements)` | Create a form specification |
310
+ | `formspecWithValidation(options, ...elements)` | Create a form with validation |
311
+ | `group(label, ...elements)` | Create a visual field group |
312
+ | `when(predicate, ...elements)` | Create conditional fields |
313
+ | `is(fieldName, value)` | Create an equality predicate |
314
+ | `validateForm(elements)` | Validate form elements |
315
+ | `logValidationIssues(result)` | Log validation issues to console |
316
+
317
+ ### Field Builders
318
+
319
+ | Builder | Description |
320
+ | ----------------------------------------------------- | ------------------------- |
321
+ | `field.text(name, config?)` | Text input field |
322
+ | `field.number(name, config?)` | Numeric input field |
323
+ | `field.boolean(name, config?)` | Checkbox/toggle field |
324
+ | `field.enum(name, options, config?)` | Dropdown/select field |
325
+ | `field.dynamicEnum(name, source, config?)` | API-populated dropdown |
326
+ | `field.dynamicSchema(name, source, config?)` | Dynamic nested schema |
327
+ | `field.array(name, ...items)` | Repeatable field array |
328
+ | `field.arrayWithConfig(name, config, ...items)` | Array with configuration |
329
+ | `field.object(name, ...properties)` | Nested object field |
330
+ | `field.objectWithConfig(name, config, ...properties)` | Object with configuration |
331
+
332
+ ### Type Utilities
333
+
334
+ | Type | Description |
335
+ | ----------------------- | ------------------------------------ |
336
+ | `InferFormSchema<F>` | Infer data type from FormSpec |
337
+ | `InferSchema<Elements>` | Infer data type from element array |
338
+ | `InferFieldValue<F>` | Infer value type from a single field |
339
+ | `ExtractFields<E>` | Extract all fields from an element |
340
+
341
+ ## License
342
+
343
+ UNLICENSED
@@ -56,6 +56,68 @@ describe("field builders", () => {
56
56
  expect(f.label).toBe("Status");
57
57
  expect(f.required).toBe(true);
58
58
  });
59
+ it("should create an enum field with object options", () => {
60
+ const f = field.enum("priority", [
61
+ { id: "low", label: "Low Priority" },
62
+ { id: "medium", label: "Medium Priority" },
63
+ { id: "high", label: "High Priority" },
64
+ ]);
65
+ expect(f._type).toBe("field");
66
+ expect(f._field).toBe("enum");
67
+ expect(f.name).toBe("priority");
68
+ expect(f.options).toEqual([
69
+ { id: "low", label: "Low Priority" },
70
+ { id: "medium", label: "Medium Priority" },
71
+ { id: "high", label: "High Priority" },
72
+ ]);
73
+ });
74
+ it("should include optional config with object options", () => {
75
+ const f = field.enum("priority", [
76
+ { id: "low", label: "Low" },
77
+ { id: "high", label: "High" },
78
+ ], {
79
+ label: "Priority",
80
+ required: true,
81
+ });
82
+ expect(f.label).toBe("Priority");
83
+ expect(f.required).toBe(true);
84
+ });
85
+ it("should handle empty options array", () => {
86
+ const f = field.enum("empty", []);
87
+ expect(f._field).toBe("enum");
88
+ expect(f.options).toEqual([]);
89
+ });
90
+ it("should throw error for mixed string and object options", () => {
91
+ expect(() => {
92
+ // Using 'as any' to bypass type checking for runtime validation test
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ field.enum("mixed", ["string", { id: "obj", label: "Object" }]);
95
+ }).toThrow(/options must be all strings or all objects/);
96
+ });
97
+ it("should throw error for object options missing id", () => {
98
+ expect(() => {
99
+ // @ts-expect-error - intentionally testing invalid object
100
+ field.enum("invalid", [{ label: "No ID" }]);
101
+ }).toThrow(/object options must have string "id" and "label"/);
102
+ });
103
+ it("should throw error for object options missing label", () => {
104
+ expect(() => {
105
+ // @ts-expect-error - intentionally testing invalid object
106
+ field.enum("invalid", [{ id: "missing-label" }]);
107
+ }).toThrow(/object options must have string "id" and "label"/);
108
+ });
109
+ it("should throw error for object options with non-string id", () => {
110
+ expect(() => {
111
+ // @ts-expect-error - intentionally testing invalid object
112
+ field.enum("invalid", [{ id: 123, label: "Number ID" }]);
113
+ }).toThrow(/object options must have string "id" and "label"/);
114
+ });
115
+ it("should throw error for object options with non-string label", () => {
116
+ expect(() => {
117
+ // @ts-expect-error - intentionally testing invalid object
118
+ field.enum("invalid", [{ id: "valid", label: 456 }]);
119
+ }).toThrow(/object options must have string "id" and "label"/);
120
+ });
59
121
  });
60
122
  describe("field.dynamicEnum", () => {
61
123
  it("should create a dynamic enum field with source", () => {
@@ -158,10 +220,9 @@ describe("complex compositions", () => {
158
220
  expect(form.elements).toHaveLength(2);
159
221
  const customerGroup = form.elements[0];
160
222
  expect(customerGroup._type).toBe("group");
161
- if (customerGroup._type === "group") {
162
- expect(customerGroup.elements).toHaveLength(2);
163
- expect(customerGroup.elements[1]._type).toBe("field");
164
- }
223
+ // Type is narrowed after the assertion above, safe to access group properties
224
+ expect(customerGroup.elements).toHaveLength(2);
225
+ expect(customerGroup.elements[1]._type).toBe("field");
165
226
  });
166
227
  });
167
228
  //# sourceMappingURL=builders.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.test.js","sourceRoot":"","sources":["../../src/__tests__/builders.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.test.js","sourceRoot":"","sources":["../../src/__tests__/builders.test.ts"],"names":[],"mappings":"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"}
@@ -17,52 +17,70 @@ expectType({});
17
17
  expectType({});
18
18
  // StaticEnumField should infer to union of options
19
19
  expectType({});
20
+ // StaticEnumField with object options should infer to union of id values
21
+ expectType({});
20
22
  expectType({});
21
23
  expectType({});
22
24
  // =============================================================================
23
25
  // InferSchema tests - Basic fields
24
26
  // =============================================================================
25
27
  // Test single text field
26
- const singleTextField = formspec(field.text("name"));
28
+ const _singleTextField = formspec(field.text("name"));
27
29
  expectType({});
28
30
  // Test multiple basic fields
29
- const multipleFields = formspec(field.text("name"), field.number("age"), field.boolean("active"));
31
+ const _multipleFields = formspec(field.text("name"), field.number("age"), field.boolean("active"));
30
32
  expectType({});
31
33
  // =============================================================================
32
34
  // InferSchema tests - Enum fields
33
35
  // =============================================================================
34
36
  // Test static enum field
35
- const enumForm = formspec(field.enum("status", ["draft", "sent", "paid"]));
37
+ const _enumForm = formspec(field.enum("status", ["draft", "sent", "paid"]));
38
+ expectType({});
39
+ // Test static enum field with object options
40
+ const _objectEnumForm = formspec(field.enum("priority", [
41
+ { id: "low", label: "Low Priority" },
42
+ { id: "high", label: "High Priority" },
43
+ ]));
36
44
  expectType({});
37
45
  // =============================================================================
38
46
  // InferSchema tests - Groups
39
47
  // =============================================================================
40
48
  // Test fields inside groups
41
- const groupForm = formspec(group("Customer", field.text("name"), field.text("email")), field.number("amount"));
49
+ const _groupForm = formspec(group("Customer", field.text("name"), field.text("email")), field.number("amount"));
42
50
  expectType({});
43
51
  // =============================================================================
44
52
  // InferSchema tests - Conditionals
45
53
  // =============================================================================
46
- // Test fields inside conditionals
47
- const conditionalForm = formspec(field.enum("type", ["personal", "business"]), when(is("type", "business"), field.text("company")));
54
+ // Test fields inside conditionals - should be optional
55
+ const _conditionalForm = formspec(field.enum("type", ["personal", "business"]), when(is("type", "business"), field.text("company")));
56
+ // company is optional since it's inside a conditional
57
+ expectType({});
58
+ // Test multiple conditionals - all conditional fields should be optional
59
+ const _multiConditionalForm = formspec(field.enum("accountType", ["personal", "business"]), when(is("accountType", "personal"), field.text("ssn")), when(is("accountType", "business"), field.text("ein"), field.text("companyName")));
60
+ expectType({});
61
+ // Test conditional inside group - still optional
62
+ const _conditionalInGroupForm = formspec(group("Details", field.text("name"), when(is("showExtra", true), field.text("extra"))), field.boolean("showExtra"));
63
+ expectType({});
64
+ // Test group inside conditional - all fields optional
65
+ const _groupInConditionalForm = formspec(field.boolean("showAddress"), when(is("showAddress", true), group("Address", field.text("street"), field.text("city"))));
48
66
  expectType({});
49
67
  // =============================================================================
50
68
  // InferSchema tests - Array fields
51
69
  // =============================================================================
52
70
  // Test array fields
53
- const arrayForm = formspec(field.array("addresses", field.text("street"), field.text("city")));
71
+ const _arrayForm = formspec(field.array("addresses", field.text("street"), field.text("city")));
54
72
  expectType({});
55
73
  // =============================================================================
56
74
  // InferSchema tests - Object fields
57
75
  // =============================================================================
58
76
  // Test object fields
59
- const objectForm = formspec(field.object("address", field.text("street"), field.text("city"), field.text("zip")));
77
+ const _objectForm = formspec(field.object("address", field.text("street"), field.text("city"), field.text("zip")));
60
78
  expectType({});
61
79
  // =============================================================================
62
80
  // InferFormSchema tests
63
81
  // =============================================================================
64
82
  // Test InferFormSchema convenience type
65
- const complexForm = formspec(field.text("name"), field.number("amount"), field.enum("status", ["active", "inactive"]));
83
+ const _complexForm = formspec(field.text("name"), field.number("amount"), field.enum("status", ["active", "inactive"]));
66
84
  expectType({});
67
85
  // =============================================================================
68
86
  // Negative tests - types should NOT match
@@ -1 +1 @@
1
- {"version":3,"file":"inference.test-d.js","sourceRoot":"","sources":["../../src/__tests__/inference.test-d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inference.test-d.js","sourceRoot":"","sources":["../../src/__tests__/inference.test-d.ts"],"names":[],"mappings":"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"}