@macroforge/mcp-server 0.1.24 → 0.1.26
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/tools/docs-loader.d.ts +3 -0
- package/dist/tools/docs-loader.d.ts.map +1 -1
- package/dist/tools/docs-loader.js +4 -0
- package/dist/tools/docs-loader.js.map +1 -1
- package/dist/tools/index.js +60 -3
- package/dist/tools/index.js.map +1 -1
- package/docs/builtin-macros/deserialize/all-options.md +33 -0
- package/docs/builtin-macros/deserialize/combining-with-serialize.md +27 -0
- package/docs/builtin-macros/deserialize/enum-support.md +31 -0
- package/docs/builtin-macros/deserialize/error-handling.md +24 -0
- package/docs/builtin-macros/deserialize/interface-support.md +18 -0
- package/docs/builtin-macros/deserialize/overview.md +16 -0
- package/docs/builtin-macros/deserialize/runtime-validation.md +51 -0
- package/docs/builtin-macros/deserialize/serde-options.md +83 -0
- package/docs/builtin-macros/deserialize/type-alias-support.md +26 -0
- package/docs/custom-macros/rust-setup.md +6 -6
- package/docs/custom-macros/ts-macro-derive/accessing-field-data.md +53 -0
- package/docs/custom-macros/ts-macro-derive/adding-imports.md +21 -0
- package/docs/custom-macros/ts-macro-derive/attribute-options.md +50 -0
- package/docs/custom-macros/ts-macro-derive/complete-example.md +51 -0
- package/docs/custom-macros/ts-macro-derive/deriveinput-structure.md +61 -0
- package/docs/custom-macros/ts-macro-derive/overview.md +15 -0
- package/docs/custom-macros/ts-macro-derive/parsing-input.md +27 -0
- package/docs/custom-macros/ts-macro-derive/returning-errors.md +21 -0
- package/docs/custom-macros/ts-quote/backtick-template-literals.md +29 -0
- package/docs/custom-macros/ts-quote/comments-and.md +66 -0
- package/docs/custom-macros/ts-quote/complete-example-json-derive-macro.md +131 -0
- package/docs/custom-macros/ts-quote/conditionals-ifif.md +46 -0
- package/docs/custom-macros/ts-quote/identifier-concatenation-content.md +42 -0
- package/docs/custom-macros/ts-quote/iteration-for.md +60 -0
- package/docs/custom-macros/ts-quote/match-expressions-match.md +58 -0
- package/docs/custom-macros/ts-quote/overview.md +13 -0
- package/docs/custom-macros/ts-quote/pattern-matching-if-let.md +33 -0
- package/docs/custom-macros/ts-quote/quick-reference.md +83 -0
- package/docs/custom-macros/ts-quote/side-effects-do.md +23 -0
- package/docs/custom-macros/ts-quote/string-interpolation-text-expr.md +30 -0
- package/docs/custom-macros/ts-quote/tsstream-injection-typescript.md +61 -0
- package/docs/custom-macros/ts-quote/while-loops-while.md +81 -0
- package/docs/sections.json +322 -3
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-loader.d.ts","sourceRoot":"","sources":["../../src/tools/docs-loader.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"docs-loader.d.ts","sourceRoot":"","sources":["../../src/tools/docs-loader.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,EAAE,CA0BxC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAoBlF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAW7E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CA0C5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAOtF"}
|
|
@@ -16,6 +16,10 @@ export function loadSections() {
|
|
|
16
16
|
const sectionsData = JSON.parse(readFileSync(sectionsPath, 'utf-8'));
|
|
17
17
|
// Load content for each section
|
|
18
18
|
for (const section of sectionsData) {
|
|
19
|
+
// For chunked parent sections, we don't load content - it will be handled specially
|
|
20
|
+
if (section.is_chunked) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
19
23
|
const contentPath = join(docsDir, section.path);
|
|
20
24
|
if (existsSync(contentPath)) {
|
|
21
25
|
section.content = readFileSync(contentPath, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-loader.js","sourceRoot":"","sources":["../../src/tools/docs-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"docs-loader.js","sourceRoot":"","sources":["../../src/tools/docs-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -166,9 +166,12 @@ Use with a name parameter to get info for a specific macro or decorator.`,
|
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
168
|
* Handle list-sections tool call
|
|
169
|
+
* Filters out sub-chunks to show only top-level sections
|
|
169
170
|
*/
|
|
170
171
|
function handleListSections() {
|
|
171
|
-
|
|
172
|
+
// Filter out sub-chunks (sections with parent_id) - only show top-level sections
|
|
173
|
+
const topLevelSections = sections.filter((s) => !s.parent_id);
|
|
174
|
+
const formatted = topLevelSections
|
|
172
175
|
.map((s) => `* title: [${s.title}], use_cases: [${s.use_cases}], path: [${s.path}], category: [${s.category_title}]`)
|
|
173
176
|
.join('\n');
|
|
174
177
|
return {
|
|
@@ -182,6 +185,7 @@ function handleListSections() {
|
|
|
182
185
|
}
|
|
183
186
|
/**
|
|
184
187
|
* Handle get-documentation tool call
|
|
188
|
+
* For chunked sections, returns the first chunk with a list of available sub-chunks
|
|
185
189
|
*/
|
|
186
190
|
function handleGetDocumentation(args) {
|
|
187
191
|
const sectionNames = Array.isArray(args.section) ? args.section : [args.section];
|
|
@@ -189,13 +193,66 @@ function handleGetDocumentation(args) {
|
|
|
189
193
|
for (const name of sectionNames) {
|
|
190
194
|
const section = getSection(sections, name);
|
|
191
195
|
if (section) {
|
|
192
|
-
|
|
196
|
+
// Check if this is a chunked section
|
|
197
|
+
if (section.is_chunked && section.chunk_ids && section.chunk_ids.length > 0) {
|
|
198
|
+
// Get the first chunk
|
|
199
|
+
const firstChunkId = section.chunk_ids[0];
|
|
200
|
+
const firstChunk = sections.find((s) => s.id === firstChunkId);
|
|
201
|
+
if (firstChunk) {
|
|
202
|
+
let result = `# ${section.title}\n\n${firstChunk.content}`;
|
|
203
|
+
// Add list of other available chunks
|
|
204
|
+
if (section.chunk_ids.length > 1) {
|
|
205
|
+
const otherChunks = section.chunk_ids.slice(1);
|
|
206
|
+
const chunkList = otherChunks
|
|
207
|
+
.map((id) => {
|
|
208
|
+
const chunk = sections.find((s) => s.id === id);
|
|
209
|
+
return chunk ? `- \`${id}\`: ${chunk.title.replace(`${section.title}: `, '')}` : null;
|
|
210
|
+
})
|
|
211
|
+
.filter(Boolean)
|
|
212
|
+
.join('\n');
|
|
213
|
+
result += `\n\n---\n\n**This section has additional chunks available:**\n${chunkList}\n\nRequest specific chunks with \`get-documentation\` for more details.`;
|
|
214
|
+
}
|
|
215
|
+
results.push(result);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
results.push(`# ${section.title}\n\nChunked content not found.`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Regular section - return content directly
|
|
223
|
+
results.push(`# ${section.title}\n\n${section.content}`);
|
|
224
|
+
}
|
|
193
225
|
}
|
|
194
226
|
else {
|
|
195
227
|
// Try fuzzy search
|
|
196
228
|
const matches = searchSections(sections, name);
|
|
197
229
|
if (matches.length > 0) {
|
|
198
|
-
|
|
230
|
+
const match = matches[0];
|
|
231
|
+
// Handle chunked sections in fuzzy match too
|
|
232
|
+
if (match.is_chunked && match.chunk_ids && match.chunk_ids.length > 0) {
|
|
233
|
+
const firstChunk = sections.find((s) => s.id === match.chunk_ids[0]);
|
|
234
|
+
if (firstChunk) {
|
|
235
|
+
let result = `# ${match.title}\n\n${firstChunk.content}`;
|
|
236
|
+
if (match.chunk_ids.length > 1) {
|
|
237
|
+
const otherChunks = match.chunk_ids.slice(1);
|
|
238
|
+
const chunkList = otherChunks
|
|
239
|
+
.map((id) => {
|
|
240
|
+
const chunk = sections.find((s) => s.id === id);
|
|
241
|
+
return chunk ? `- \`${id}\`: ${chunk.title.replace(`${match.title}: `, '')}` : null;
|
|
242
|
+
})
|
|
243
|
+
.filter(Boolean)
|
|
244
|
+
.join('\n');
|
|
245
|
+
result += `\n\n---\n\n**This section has additional chunks available:**\n${chunkList}\n\nRequest specific chunks with \`get-documentation\` for more details.`;
|
|
246
|
+
}
|
|
247
|
+
results.push(result);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
results.push(`# ${match.title}\n\n${match.content}`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
results.push(`# ${match.title}\n\n${match.content}`);
|
|
255
|
+
}
|
|
199
256
|
}
|
|
200
257
|
else {
|
|
201
258
|
results.push(`Documentation for "${name}" not found.`);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## All Options
|
|
2
|
+
|
|
3
|
+
### Container Options (on class/interface)
|
|
4
|
+
|
|
5
|
+
| `rename_all`
|
|
6
|
+
| `string`
|
|
7
|
+
| Apply naming convention to all fields
|
|
8
|
+
|
|
9
|
+
| `deny_unknown_fields`
|
|
10
|
+
| `boolean`
|
|
11
|
+
| Throw error if JSON has unknown keys
|
|
12
|
+
|
|
13
|
+
### Field Options (on properties)
|
|
14
|
+
|
|
15
|
+
| `rename`
|
|
16
|
+
| `string`
|
|
17
|
+
| Use a different JSON key
|
|
18
|
+
|
|
19
|
+
| `skip`
|
|
20
|
+
| `boolean`
|
|
21
|
+
| Exclude from serialization and deserialization
|
|
22
|
+
|
|
23
|
+
| `skip_deserializing`
|
|
24
|
+
| `boolean`
|
|
25
|
+
| Exclude from deserialization only
|
|
26
|
+
|
|
27
|
+
| `default`
|
|
28
|
+
| `boolean | string`
|
|
29
|
+
| Use TypeScript default or custom expression if missing
|
|
30
|
+
|
|
31
|
+
| `flatten`
|
|
32
|
+
| `boolean`
|
|
33
|
+
| Merge nested object fields from parent
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
## Combining with Serialize
|
|
2
|
+
|
|
3
|
+
Use both Serialize and Deserialize for complete JSON round-trip support:
|
|
4
|
+
|
|
5
|
+
<InteractiveMacro code={`/** @derive(Serialize, Deserialize) */
|
|
6
|
+
/** @serde({ rename_all: "camelCase" }) */
|
|
7
|
+
class UserProfile {
|
|
8
|
+
user_name: string;
|
|
9
|
+
created_at: Date;
|
|
10
|
+
is_active: boolean;
|
|
11
|
+
}`} />
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Create and serialize
|
|
15
|
+
const profile = new UserProfile();
|
|
16
|
+
profile.user_name = "Alice";
|
|
17
|
+
profile.created_at = new Date();
|
|
18
|
+
profile.is_active = true;
|
|
19
|
+
|
|
20
|
+
const json = JSON.stringify(profile);
|
|
21
|
+
// {"userName":"Alice","createdAt":"2024-...","isActive":true}
|
|
22
|
+
|
|
23
|
+
// Deserialize back
|
|
24
|
+
const restored = UserProfile.fromJSON(JSON.parse(json));
|
|
25
|
+
console.log(restored.user_name); // "Alice"
|
|
26
|
+
console.log(restored.created_at instanceof Date); // true
|
|
27
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## Enum Support
|
|
2
|
+
|
|
3
|
+
Deserialize also works with enums. The `fromJSON` function validates that the input matches one of the enum values:
|
|
4
|
+
|
|
5
|
+
<MacroExample before={data.examples.enum.before} after={data.examples.enum.after} />
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
const status = Status.fromJSON("active");
|
|
9
|
+
console.log(status); // Status.Active
|
|
10
|
+
|
|
11
|
+
// Invalid values throw an error
|
|
12
|
+
try {
|
|
13
|
+
Status.fromJSON("invalid");
|
|
14
|
+
} catch (e) {
|
|
15
|
+
console.log(e.message); // "Invalid Status value: invalid"
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Works with numeric enums too:
|
|
20
|
+
|
|
21
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
22
|
+
enum Priority {
|
|
23
|
+
Low = 1,
|
|
24
|
+
Medium = 2,
|
|
25
|
+
High = 3,
|
|
26
|
+
}`} />
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
const priority = Priority.fromJSON(3);
|
|
30
|
+
console.log(priority); // Priority.High
|
|
31
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
## Error Handling
|
|
2
|
+
|
|
3
|
+
Handle deserialization errors gracefully:
|
|
4
|
+
|
|
5
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
6
|
+
class User {
|
|
7
|
+
name: string;
|
|
8
|
+
email: string;
|
|
9
|
+
}`} />
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
function parseUser(json: unknown): User | null {
|
|
13
|
+
try {
|
|
14
|
+
return User.fromJSON(json);
|
|
15
|
+
} catch (error) {
|
|
16
|
+
console.error("Failed to parse user:", error.message);
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const user = parseUser({ name: "Alice" });
|
|
22
|
+
// Logs: Failed to parse user: User.fromJSON: missing required field "email"
|
|
23
|
+
// Returns: null
|
|
24
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## Interface Support
|
|
2
|
+
|
|
3
|
+
Deserialize also works with interfaces. For interfaces, a namespace is generated with `is` (type guard) and `fromJSON` functions:
|
|
4
|
+
|
|
5
|
+
<MacroExample before={data.examples.interface.before} after={data.examples.interface.after} />
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
const json = { status: 200, message: "OK", timestamp: "2024-01-15T10:30:00.000Z" };
|
|
9
|
+
|
|
10
|
+
// Type guard
|
|
11
|
+
if (ApiResponse.is(json)) {
|
|
12
|
+
console.log(json.status); // TypeScript knows this is ApiResponse
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Deserialize with validation
|
|
16
|
+
const response = ApiResponse.fromJSON(json);
|
|
17
|
+
console.log(response.timestamp instanceof Date); // true
|
|
18
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Deserialize
|
|
2
|
+
|
|
3
|
+
*The `Deserialize` macro generates a static `fromJSON()` method that parses JSON data into your class with runtime validation and automatic type conversion.*
|
|
4
|
+
|
|
5
|
+
## Basic Usage
|
|
6
|
+
|
|
7
|
+
<MacroExample before={data.examples.basic.before} after={data.examples.basic.after} />
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const json = '{"name":"Alice","age":30,"createdAt":"2024-01-15T10:30:00.000Z"}';
|
|
11
|
+
const user = User.fromJSON(JSON.parse(json));
|
|
12
|
+
|
|
13
|
+
console.log(user.name); // "Alice"
|
|
14
|
+
console.log(user.age); // 30
|
|
15
|
+
console.log(user.createdAt instanceof Date); // true
|
|
16
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
## Runtime Validation
|
|
2
|
+
|
|
3
|
+
Deserialize validates the input data and throws descriptive errors:
|
|
4
|
+
|
|
5
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
6
|
+
class User {
|
|
7
|
+
name: string;
|
|
8
|
+
email: string;
|
|
9
|
+
}`} />
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// Missing required field
|
|
13
|
+
User.fromJSON({ name: "Alice" });
|
|
14
|
+
// Error: User.fromJSON: missing required field "email"
|
|
15
|
+
|
|
16
|
+
// Wrong type
|
|
17
|
+
User.fromJSON("not an object");
|
|
18
|
+
// Error: User.fromJSON: expected an object, got string
|
|
19
|
+
|
|
20
|
+
// Array instead of object
|
|
21
|
+
User.fromJSON([1, 2, 3]);
|
|
22
|
+
// Error: User.fromJSON: expected an object, got array
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Automatic Type Conversion
|
|
26
|
+
|
|
27
|
+
Deserialize automatically converts JSON types to their TypeScript equivalents:
|
|
28
|
+
|
|
29
|
+
| string/number/boolean
|
|
30
|
+
| `string`/`number`/`boolean`
|
|
31
|
+
| Direct assignment
|
|
32
|
+
|
|
33
|
+
| ISO string
|
|
34
|
+
| `Date`
|
|
35
|
+
| `new Date(string)`
|
|
36
|
+
|
|
37
|
+
| array
|
|
38
|
+
| `T[]`
|
|
39
|
+
| Maps items with auto-detection
|
|
40
|
+
|
|
41
|
+
| object
|
|
42
|
+
| `Map<K, V>`
|
|
43
|
+
| `new Map(Object.entries())`
|
|
44
|
+
|
|
45
|
+
| array
|
|
46
|
+
| `Set<T>`
|
|
47
|
+
| `new Set(array)`
|
|
48
|
+
|
|
49
|
+
| object
|
|
50
|
+
| Nested class
|
|
51
|
+
| Calls `fromJSON()` if available
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
## Serde Options
|
|
2
|
+
|
|
3
|
+
Use the `@serde` decorator to customize deserialization:
|
|
4
|
+
|
|
5
|
+
### Renaming Fields
|
|
6
|
+
|
|
7
|
+
<MacroExample before={data.examples.rename.before} after={data.examples.rename.after} />
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const user = User.fromJSON({ user_id: "123", full_name: "Alice" });
|
|
11
|
+
console.log(user.id); // "123"
|
|
12
|
+
console.log(user.name); // "Alice"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Default Values
|
|
16
|
+
|
|
17
|
+
<MacroExample before={data.examples.default.before} after={data.examples.default.after} />
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
const config = Config.fromJSON({ host: "localhost" });
|
|
21
|
+
console.log(config.port); // "3000"
|
|
22
|
+
console.log(config.debug); // false
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Skipping Fields
|
|
26
|
+
|
|
27
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
28
|
+
class User {
|
|
29
|
+
name: string;
|
|
30
|
+
email: string;
|
|
31
|
+
|
|
32
|
+
/** @serde({ skip: true }) */
|
|
33
|
+
cachedData: unknown;
|
|
34
|
+
|
|
35
|
+
/** @serde({ skip_deserializing: true }) */
|
|
36
|
+
computedField: string;
|
|
37
|
+
}`} />
|
|
38
|
+
|
|
39
|
+
<Alert type="tip" title="skip vs skip_deserializing">
|
|
40
|
+
Use `skip: true` to exclude from both serialization and deserialization.
|
|
41
|
+
Use `skip_deserializing: true` to only skip during deserialization.
|
|
42
|
+
</Alert>
|
|
43
|
+
|
|
44
|
+
### Deny Unknown Fields
|
|
45
|
+
|
|
46
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
47
|
+
/** @serde({ deny_unknown_fields: true }) */
|
|
48
|
+
class StrictUser {
|
|
49
|
+
name: string;
|
|
50
|
+
email: string;
|
|
51
|
+
}`} />
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// This will throw an error
|
|
55
|
+
StrictUser.fromJSON({ name: "Alice", email: "a@b.com", extra: "field" });
|
|
56
|
+
// Error: StrictUser.fromJSON: unknown field "extra"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Flatten Nested Objects
|
|
60
|
+
|
|
61
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
62
|
+
class Address {
|
|
63
|
+
city: string;
|
|
64
|
+
zip: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** @derive(Deserialize) */
|
|
68
|
+
class User {
|
|
69
|
+
name: string;
|
|
70
|
+
|
|
71
|
+
/** @serde({ flatten: true }) */
|
|
72
|
+
address: Address;
|
|
73
|
+
}`} />
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// Flat JSON structure
|
|
77
|
+
const user = User.fromJSON({
|
|
78
|
+
name: "Alice",
|
|
79
|
+
city: "NYC",
|
|
80
|
+
zip: "10001"
|
|
81
|
+
});
|
|
82
|
+
console.log(user.address.city); // "NYC"
|
|
83
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## Type Alias Support
|
|
2
|
+
|
|
3
|
+
Deserialize works with type aliases. For object types, validation and type conversion is applied:
|
|
4
|
+
|
|
5
|
+
<MacroExample before={data.examples.typeAlias.before} after={data.examples.typeAlias.after} />
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
const json = {
|
|
9
|
+
id: "123",
|
|
10
|
+
name: "Alice",
|
|
11
|
+
createdAt: "2024-01-15T00:00:00.000Z"
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const profile = UserProfile.fromJSON(json);
|
|
15
|
+
console.log(profile.createdAt instanceof Date); // true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
For union types, basic validation is applied:
|
|
19
|
+
|
|
20
|
+
<InteractiveMacro code={`/** @derive(Deserialize) */
|
|
21
|
+
type ApiStatus = "loading" | "success" | "error";`} />
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
const status = ApiStatus.fromJSON("success");
|
|
25
|
+
console.log(status); // "success"
|
|
26
|
+
```
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
|
-
- Rust toolchain (1.
|
|
7
|
+
- Rust toolchain (1.88 or later)
|
|
8
8
|
|
|
9
|
-
- Node.js
|
|
9
|
+
- Node.js 24 or later
|
|
10
10
|
|
|
11
|
-
- NAPI-RS CLI: `
|
|
11
|
+
- NAPI-RS CLI: `cargo install macroforge_ts`
|
|
12
12
|
|
|
13
13
|
## Create the Project
|
|
14
14
|
|
|
@@ -30,7 +30,7 @@ Update your `Cargo.toml` with the required dependencies:
|
|
|
30
30
|
[package]
|
|
31
31
|
name = "my-macros"
|
|
32
32
|
version = "0.1.0"
|
|
33
|
-
edition = "
|
|
33
|
+
edition = "2024"
|
|
34
34
|
|
|
35
35
|
[lib]
|
|
36
36
|
crate-type = ["cdylib"]
|
|
@@ -140,6 +140,6 @@ npm run build
|
|
|
140
140
|
|
|
141
141
|
## Next Steps
|
|
142
142
|
|
|
143
|
-
-
|
|
143
|
+
- <a href="{base}/docs/custom-macros/ts-macro-derive" >Learn the #[ts_macro_derive] attribute</a >
|
|
144
144
|
|
|
145
|
-
-
|
|
145
|
+
- <a href="{base}/docs/custom-macros/ts-quote" >Master the template syntax</a >
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## Accessing Field Data
|
|
2
|
+
|
|
3
|
+
### Class Fields (FieldIR)
|
|
4
|
+
|
|
5
|
+
```rust
|
|
6
|
+
struct FieldIR {
|
|
7
|
+
pub name: String, // Field name
|
|
8
|
+
pub span: SpanIR, // Field span
|
|
9
|
+
pub ts_type: String, // TypeScript type annotation
|
|
10
|
+
pub optional: bool, // Whether field has ?
|
|
11
|
+
pub readonly: bool, // Whether field is readonly
|
|
12
|
+
pub visibility: Visibility, // Public, Protected, Private
|
|
13
|
+
pub decorators: Vec<DecoratorIR>, // Field decorators
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Interface Fields (InterfaceFieldIR)
|
|
18
|
+
|
|
19
|
+
```rust
|
|
20
|
+
struct InterfaceFieldIR {
|
|
21
|
+
pub name: String,
|
|
22
|
+
pub span: SpanIR,
|
|
23
|
+
pub ts_type: String,
|
|
24
|
+
pub optional: bool,
|
|
25
|
+
pub readonly: bool,
|
|
26
|
+
pub decorators: Vec<DecoratorIR>,
|
|
27
|
+
// Note: No visibility field (interfaces are always public)
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Enum Variants (EnumVariantIR)
|
|
32
|
+
|
|
33
|
+
```rust
|
|
34
|
+
struct EnumVariantIR {
|
|
35
|
+
pub name: String,
|
|
36
|
+
pub span: SpanIR,
|
|
37
|
+
pub value: EnumValue, // Auto, String(String), or Number(f64)
|
|
38
|
+
pub decorators: Vec<DecoratorIR>,
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Decorator Structure
|
|
43
|
+
|
|
44
|
+
```rust
|
|
45
|
+
struct DecoratorIR {
|
|
46
|
+
pub name: String, // e.g., "serde"
|
|
47
|
+
pub args_src: String, // Raw args text, e.g., "skip, rename: 'id'"
|
|
48
|
+
pub span: SpanIR,
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
>
|
|
53
|
+
> To check for decorators, iterate through `field.decorators` and check `decorator.name`. For parsing options, you can write helper functions like the built-in macros do.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## Adding Imports
|
|
2
|
+
|
|
3
|
+
If your macro generates code that requires imports, use the `add_import` method on `TsStream`:
|
|
4
|
+
|
|
5
|
+
```rust
|
|
6
|
+
// Add an import to be inserted at the top of the file
|
|
7
|
+
let mut output = body! {
|
|
8
|
+
validate(): ValidationResult {
|
|
9
|
+
return validateFields(this);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// This will add: import { validateFields, ValidationResult } from "my-validation-lib";
|
|
14
|
+
output.add_import("validateFields", "my-validation-lib");
|
|
15
|
+
output.add_import("ValidationResult", "my-validation-lib");
|
|
16
|
+
|
|
17
|
+
Ok(output)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
>
|
|
21
|
+
> Imports are automatically deduplicated. If the same import already exists in the file, it won't be added again.
|