@apollo-deploy/tesseract 1.5.0 → 1.7.0
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 +127 -33
- package/dist/adapters/kotlin/index.d.ts.map +1 -1
- package/dist/adapters/kotlin/index.js +92 -46
- package/dist/adapters/kotlin/index.js.map +1 -1
- package/dist/collector.d.ts +32 -0
- package/dist/collector.d.ts.map +1 -1
- package/dist/collector.js +22 -2
- package/dist/collector.js.map +1 -1
- package/dist/fastify.d.ts +25 -0
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +22 -13
- package/dist/fastify.js.map +1 -1
- package/dist/pipeline/intake.js +8 -2
- package/dist/pipeline/intake.js.map +1 -1
- package/package.json +1 -1
- package/templates/kotlin/domain.hbs +6 -8
- package/templates/kotlin/transport.hbs +3 -2
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Tesseract
|
|
2
2
|
|
|
3
|
-
Manifest-first SDK generator — turns `sdk-manifold/v1` manifests into production-ready
|
|
3
|
+
Manifest-first SDK generator — turns `sdk-manifold/v1` manifests into production-ready SDKs.
|
|
4
4
|
|
|
5
|
-
Tesseract is **not** an OpenAPI parser. It consumes a purpose-built manifest format designed specifically for SDK generation, producing fully typed, batteries-included
|
|
5
|
+
Tesseract is **not** an OpenAPI parser. It consumes a purpose-built manifest format designed specifically for SDK generation, producing fully typed, batteries-included packages across multiple target languages.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -18,7 +18,7 @@ bun add -g @apollo-deploy/tesseract
|
|
|
18
18
|
tesseract generate -i manifest.json -o ./sdk
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
This reads your manifest and produces a complete npm-ready SDK in `./sdk/`.
|
|
21
|
+
This reads your manifest and produces a complete npm-ready TypeScript SDK in `./sdk/`.
|
|
22
22
|
|
|
23
23
|
## CLI
|
|
24
24
|
|
|
@@ -30,6 +30,7 @@ Generate an SDK from a static manifest file.
|
|
|
30
30
|
|------|----------|-------------|
|
|
31
31
|
| `-i, --input <path>` | Yes | Path to the `sdk-manifold/v1` manifest JSON file |
|
|
32
32
|
| `-o, --output <dir>` | Yes | Output directory for the generated SDK |
|
|
33
|
+
| `-l, --language <lang>` | No | Target language: `typescript` (default), `python`, `ruby`, `php`, `go`, `rust`, `kotlin`, `csharp` |
|
|
33
34
|
| `-n, --name <name>` | No | Override the npm package name |
|
|
34
35
|
| `--package-version <version>` | No | Override the generated package version |
|
|
35
36
|
| `--client-name <name>` | No | Override the generated client class name |
|
|
@@ -49,7 +50,39 @@ Boot an instrumented Fastify app with `TESSERACT_GENERATE=1` to collect annotate
|
|
|
49
50
|
tesseract run dist/app.js
|
|
50
51
|
```
|
|
51
52
|
|
|
52
|
-
The app must register `tesseractPlugin` from `@apollo-deploy/tesseract/fastify`. See [Fastify Integration](#fastify
|
|
53
|
+
The app must register `tesseractPlugin` from `@apollo-deploy/tesseract/fastify`. See [Fastify Integration](#fastify) below.
|
|
54
|
+
|
|
55
|
+
## Target Languages
|
|
56
|
+
|
|
57
|
+
Tesseract ships adapters for multiple target languages. Pass `-l <lang>` to `tesseract generate`, set `language` in `CollectorOptions`, or use `additionalTargets` to emit multiple languages in a single run.
|
|
58
|
+
|
|
59
|
+
| Language | Value | Output |
|
|
60
|
+
|----------|-------|--------|
|
|
61
|
+
| TypeScript | `typescript` | npm-ready package with Axios transport |
|
|
62
|
+
| Python | `python` | pip-ready package |
|
|
63
|
+
| Ruby | `ruby` | gem-ready package |
|
|
64
|
+
| PHP | `php` | Composer package |
|
|
65
|
+
| Go | `go` | Go module |
|
|
66
|
+
| Rust | `rust` | Cargo crate |
|
|
67
|
+
| Kotlin | `kotlin` | Gradle project with Ktor + kotlinx.serialization |
|
|
68
|
+
| C# | `csharp` | NuGet package |
|
|
69
|
+
|
|
70
|
+
### Multiple targets in one run
|
|
71
|
+
|
|
72
|
+
Use `additionalTargets` on any collector or the Fastify plugin to emit multiple languages simultaneously without running the generator twice:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
const collector = new SDKCollector({
|
|
76
|
+
info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
77
|
+
output: './sdk/typescript', // primary — TypeScript
|
|
78
|
+
additionalTargets: [
|
|
79
|
+
{ language: 'kotlin', output: './sdk/java' },
|
|
80
|
+
{ language: 'python', output: './sdk/python', packageName: 'my-api' },
|
|
81
|
+
],
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Each additional target inherits `clientType`, `packageName`, `packageVersion`, and `sdkStyle` from the primary options unless overridden per-target.
|
|
53
86
|
|
|
54
87
|
## Input: The Manifest
|
|
55
88
|
|
|
@@ -124,17 +157,13 @@ Tesseract ships adapters for every major Node.js API framework. Each adapter is
|
|
|
124
157
|
| **NestJS** | `@apollo-deploy/tesseract/nestjs` |
|
|
125
158
|
| **Generic / any framework** | `import { SDKCollector } from '@apollo-deploy/tesseract'` |
|
|
126
159
|
|
|
127
|
-
All
|
|
128
|
-
|
|
129
|
-
1. Create an `SDKCollector` (or framework-specific subclass) with your API metadata.
|
|
130
|
-
2. Register domains and routes with the collector alongside your framework route definitions.
|
|
131
|
-
3. Call `collector.tryGenerate()` (or let a plugin do it) — it only runs when `TESSERACT_GENERATE=1`.
|
|
160
|
+
All adapters share the same `CollectorOptions` interface, which means `language` and `additionalTargets` work identically across every framework.
|
|
132
161
|
|
|
133
162
|
---
|
|
134
163
|
|
|
135
164
|
### Fastify
|
|
136
165
|
|
|
137
|
-
The Fastify adapter hooks into `onRoute` to collect routes automatically at boot time — no manual registration needed.
|
|
166
|
+
The Fastify adapter hooks into `onRoute` to collect routes automatically at boot time — no manual registration needed. Internally it delegates to `SDKCollector`, so all `CollectorOptions` including `language` and `additionalTargets` are supported.
|
|
138
167
|
|
|
139
168
|
```ts
|
|
140
169
|
// app.ts
|
|
@@ -143,6 +172,10 @@ import { tesseractPlugin } from '@apollo-deploy/tesseract/fastify';
|
|
|
143
172
|
app.register(tesseractPlugin, {
|
|
144
173
|
info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
145
174
|
output: './packages/api-sdk',
|
|
175
|
+
// Generate a Kotlin SDK alongside the primary TypeScript one:
|
|
176
|
+
additionalTargets: [
|
|
177
|
+
{ language: 'kotlin', output: './sdk/java' },
|
|
178
|
+
],
|
|
146
179
|
// Optional: import types from a shared package instead of regenerating them
|
|
147
180
|
schemaPackage: { name: '@my-org/schemas', version: '^2.0.0' },
|
|
148
181
|
sdkStyle: 'functional', // or 'class'
|
|
@@ -209,6 +242,9 @@ const app = express();
|
|
|
209
242
|
const collector = new ExpressSDKCollector({
|
|
210
243
|
info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
211
244
|
output: './packages/api-sdk',
|
|
245
|
+
additionalTargets: [
|
|
246
|
+
{ language: 'kotlin', output: './sdk/java' },
|
|
247
|
+
],
|
|
212
248
|
});
|
|
213
249
|
|
|
214
250
|
collector.domain('/users', { domain: 'users', description: 'User management' });
|
|
@@ -357,6 +393,9 @@ async function bootstrap() {
|
|
|
357
393
|
const collector = new SDKCollector({
|
|
358
394
|
info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
359
395
|
output: './packages/api-sdk',
|
|
396
|
+
additionalTargets: [
|
|
397
|
+
{ language: 'kotlin', output: './sdk/java' },
|
|
398
|
+
],
|
|
360
399
|
});
|
|
361
400
|
collectFromNestControllers([UsersController], collector);
|
|
362
401
|
await collector.generate();
|
|
@@ -385,6 +424,10 @@ import { SDKCollector } from '@apollo-deploy/tesseract';
|
|
|
385
424
|
const collector = new SDKCollector({
|
|
386
425
|
info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
387
426
|
output: './packages/api-sdk',
|
|
427
|
+
additionalTargets: [
|
|
428
|
+
{ language: 'kotlin', output: './sdk/java' },
|
|
429
|
+
{ language: 'python', output: './sdk/python', packageName: 'my-api' },
|
|
430
|
+
],
|
|
388
431
|
});
|
|
389
432
|
|
|
390
433
|
collector.domain('/users', { domain: 'users', description: 'User management' });
|
|
@@ -397,7 +440,9 @@ if (await collector.tryGenerate()) process.exit(0);
|
|
|
397
440
|
|
|
398
441
|
## Output
|
|
399
442
|
|
|
400
|
-
Tesseract generates a complete, publishable
|
|
443
|
+
Tesseract generates a complete, publishable package. Structure varies by `sdkStyle` and target language.
|
|
444
|
+
|
|
445
|
+
### TypeScript (default)
|
|
401
446
|
|
|
402
447
|
**Functional style** (default — `createMyClient(config)`):
|
|
403
448
|
|
|
@@ -408,27 +453,51 @@ sdk/
|
|
|
408
453
|
├── README.md
|
|
409
454
|
├── index.ts
|
|
410
455
|
└── src/
|
|
411
|
-
├── client.ts
|
|
456
|
+
├── client.ts
|
|
412
457
|
├── transport/
|
|
413
|
-
│ ├── axios.ts
|
|
414
|
-
│ └── sse.ts
|
|
458
|
+
│ ├── axios.ts
|
|
459
|
+
│ └── sse.ts
|
|
415
460
|
├── domain/
|
|
416
|
-
│
|
|
417
|
-
│ └── ...
|
|
461
|
+
│ └── users.ts
|
|
418
462
|
├── types/
|
|
419
|
-
│ ├── models.ts
|
|
420
|
-
│ ├── common.ts
|
|
421
|
-
│ ├── errors.ts
|
|
422
|
-
│ └── index.ts
|
|
463
|
+
│ ├── models.ts
|
|
464
|
+
│ ├── common.ts
|
|
465
|
+
│ ├── errors.ts
|
|
466
|
+
│ └── index.ts
|
|
423
467
|
├── utils/
|
|
424
|
-
│ └── query.ts
|
|
468
|
+
│ └── query.ts
|
|
425
469
|
└── webhooks/
|
|
426
|
-
└── handler.ts
|
|
470
|
+
└── handler.ts
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Class style** (`--sdk-style class` — `new MySDK('api_key', options?)`): generates `client-class.ts`, `domain-class/` files, and a matching `index.ts`.
|
|
474
|
+
|
|
475
|
+
### Kotlin
|
|
476
|
+
|
|
477
|
+
Generates a Gradle project using Ktor HTTP client, kotlinx.serialization, and coroutines:
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
sdk/java/
|
|
481
|
+
├── build.gradle.kts
|
|
482
|
+
├── settings.gradle.kts
|
|
483
|
+
├── gradle.properties
|
|
484
|
+
├── gradle/wrapper/gradle-wrapper.properties
|
|
485
|
+
├── .gitignore
|
|
486
|
+
├── README.md
|
|
487
|
+
└── src/main/kotlin/<package>/
|
|
488
|
+
├── Client.kt
|
|
489
|
+
├── internal/Transport.kt
|
|
490
|
+
├── exceptions/SdkException.kt
|
|
491
|
+
├── models/Types.kt
|
|
492
|
+
└── api/
|
|
493
|
+
└── UsersAPI.kt
|
|
427
494
|
```
|
|
428
495
|
|
|
429
|
-
|
|
496
|
+
### Other languages
|
|
497
|
+
|
|
498
|
+
Python, Ruby, PHP, Go, Rust, and C# each generate idiomatic project scaffolding with appropriate package manager files and typed client code.
|
|
430
499
|
|
|
431
|
-
### Generated SDK Features
|
|
500
|
+
### Generated TypeScript SDK Features
|
|
432
501
|
|
|
433
502
|
- **Typed client** with grouped domain methods
|
|
434
503
|
- **Automatic retries** with exponential backoff, jitter, and customizable retry logic
|
|
@@ -442,7 +511,7 @@ sdk/
|
|
|
442
511
|
- **AbortSignal support** for request cancellation
|
|
443
512
|
- **Per-request overrides** — timeout, headers, retry config
|
|
444
513
|
|
|
445
|
-
### Example Usage of Generated SDK
|
|
514
|
+
### Example Usage of Generated TypeScript SDK
|
|
446
515
|
|
|
447
516
|
```typescript
|
|
448
517
|
import { createMyApiClient } from './sdk';
|
|
@@ -500,7 +569,7 @@ Tesseract uses a dual strategy:
|
|
|
500
569
|
- **[ts-morph](https://ts-morph.com/)** (AST-based) for type definitions — interfaces, enums, type aliases
|
|
501
570
|
- **[Handlebars](https://handlebarsjs.com/)** templates for everything else — client, transport, domain methods, utilities
|
|
502
571
|
|
|
503
|
-
|
|
572
|
+
TypeScript output is formatted with Prettier.
|
|
504
573
|
|
|
505
574
|
## Programmatic API
|
|
506
575
|
|
|
@@ -510,15 +579,13 @@ import { generate } from '@apollo-deploy/tesseract';
|
|
|
510
579
|
await generate({
|
|
511
580
|
input: './manifest.json',
|
|
512
581
|
output: './sdk',
|
|
513
|
-
language: '
|
|
582
|
+
language: 'kotlin',
|
|
514
583
|
packageName: '@my-org/api-sdk',
|
|
515
584
|
packageVersion: '1.2.3',
|
|
516
|
-
clientName: 'MyApi',
|
|
517
|
-
baseUrl: 'https://api.example.com',
|
|
518
585
|
});
|
|
519
586
|
```
|
|
520
587
|
|
|
521
|
-
You can also pass a pre-parsed manifest object
|
|
588
|
+
You can also pass a pre-parsed manifest object:
|
|
522
589
|
|
|
523
590
|
```typescript
|
|
524
591
|
import { generate } from '@apollo-deploy/tesseract';
|
|
@@ -526,7 +593,7 @@ import type { BackendManifest } from '@apollo-deploy/tesseract';
|
|
|
526
593
|
|
|
527
594
|
const manifest: BackendManifest = { /* ... */ };
|
|
528
595
|
|
|
529
|
-
await generate({ manifest, output: './sdk' });
|
|
596
|
+
await generate({ manifest, output: './sdk', language: 'kotlin' });
|
|
530
597
|
```
|
|
531
598
|
|
|
532
599
|
### Configuration
|
|
@@ -538,8 +605,8 @@ Either `input` or `manifest` must be provided.
|
|
|
538
605
|
| `input` | `string?` | Path to the manifest file. Required if `manifest` is not provided. |
|
|
539
606
|
| `manifest` | `BackendManifest?` | Pre-parsed manifest object. Alternative to `input`. |
|
|
540
607
|
| `output` | `string` | Output directory |
|
|
541
|
-
| `language` | `
|
|
542
|
-
| `packageName` | `string?` | Override npm
|
|
608
|
+
| `language` | `TargetLanguage?` | Target language (default: `typescript`). One of: `typescript`, `python`, `ruby`, `php`, `go`, `rust`, `kotlin`, `csharp` |
|
|
609
|
+
| `packageName` | `string?` | Override npm/package name |
|
|
543
610
|
| `packageVersion` | `string?` | Override generated package version; defaults to `info.version` from the manifest |
|
|
544
611
|
| `clientName` | `string?` | Override client class name |
|
|
545
612
|
| `baseUrl` | `string?` | Override default base URL |
|
|
@@ -550,6 +617,33 @@ Either `input` or `manifest` must be provided.
|
|
|
550
617
|
| `check` | `boolean?` | Compare output without writing |
|
|
551
618
|
| `prettier` | `boolean?` | Toggle formatting (default: `true`) |
|
|
552
619
|
|
|
620
|
+
### `CollectorOptions`
|
|
621
|
+
|
|
622
|
+
Shared by all framework adapters and `SDKCollector`. Extends the programmatic API config with `additionalTargets`.
|
|
623
|
+
|
|
624
|
+
| Option | Type | Description |
|
|
625
|
+
|--------|------|-------------|
|
|
626
|
+
| `info` | `object` | API metadata: `title`, `version`, `baseUrl?`, `description?` |
|
|
627
|
+
| `output` | `string` | Primary output directory |
|
|
628
|
+
| `language` | `TargetLanguage?` | Primary target language (default: `typescript`) |
|
|
629
|
+
| `additionalTargets` | `AdditionalTarget[]?` | Extra languages to emit alongside the primary output |
|
|
630
|
+
| `schemaPackage` | `object?` | External type package: `name`, `version?`, `importPath?` |
|
|
631
|
+
| `sdkStyle` | `'functional' \| 'class'?` | SDK style |
|
|
632
|
+
| `clientType` | `'internal' \| 'public'?` | Client type |
|
|
633
|
+
| `packageName` | `string?` | Override package name |
|
|
634
|
+
| `packageVersion` | `string?` | Override package version |
|
|
635
|
+
|
|
636
|
+
Each `AdditionalTarget` entry:
|
|
637
|
+
|
|
638
|
+
| Field | Type | Description |
|
|
639
|
+
|-------|------|-------------|
|
|
640
|
+
| `language` | `TargetLanguage` | Required. Target language for this output |
|
|
641
|
+
| `output` | `string` | Required. Output directory |
|
|
642
|
+
| `packageName` | `string?` | Overrides primary `packageName` for this target |
|
|
643
|
+
| `packageVersion` | `string?` | Overrides primary `packageVersion` for this target |
|
|
644
|
+
| `clientType` | `'internal' \| 'public'?` | Overrides primary `clientType` for this target |
|
|
645
|
+
| `sdkStyle` | `'functional' \| 'class'?` | Overrides primary `sdkStyle` for this target |
|
|
646
|
+
|
|
553
647
|
## Requirements
|
|
554
648
|
|
|
555
649
|
- Node.js ≥ 18 or Bun ≥ 1.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/kotlin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/kotlin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA4I5D,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,QAAQ,YAAY;IAEvB,IAAI,CACR,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;CAyJvB"}
|
|
@@ -19,63 +19,109 @@ const KOTLIN_TYPE_MAP = {
|
|
|
19
19
|
void: "Unit",
|
|
20
20
|
null: "Nothing?",
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Split a union/intersection string on `sep` only at the top level —
|
|
24
|
+
* i.e. not inside `<…>` or `(…)` brackets.
|
|
25
|
+
*/
|
|
26
|
+
function splitTopLevel(t, sep) {
|
|
27
|
+
const parts = [];
|
|
28
|
+
let depth = 0;
|
|
29
|
+
let start = 0;
|
|
30
|
+
for (let i = 0; i <= t.length - sep.length; i++) {
|
|
31
|
+
const ch = t[i];
|
|
32
|
+
if (ch === "<" || ch === "(")
|
|
33
|
+
depth++;
|
|
34
|
+
else if (ch === ">" || ch === ")")
|
|
35
|
+
depth--;
|
|
36
|
+
else if (depth === 0 && t.slice(i, i + sep.length) === sep) {
|
|
37
|
+
parts.push(t.slice(start, i).trim());
|
|
38
|
+
start = i + sep.length;
|
|
39
|
+
i += sep.length - 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
parts.push(t.slice(start).trim());
|
|
43
|
+
return parts;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract the single top-level generic argument from `Foo<...>`.
|
|
47
|
+
* Returns null if the string doesn't match that shape.
|
|
48
|
+
*/
|
|
49
|
+
function genericArg(t, prefix) {
|
|
50
|
+
if (!t.startsWith(prefix + "<") || !t.endsWith(">"))
|
|
51
|
+
return null;
|
|
52
|
+
return t.slice(prefix.length + 1, -1);
|
|
53
|
+
}
|
|
54
|
+
const JSON_ELEMENT = "kotlinx.serialization.json.JsonElement";
|
|
22
55
|
function kotlinType(tsType) {
|
|
23
56
|
const t = tsType.trim();
|
|
24
57
|
if (KOTLIN_TYPE_MAP[t]) {
|
|
25
58
|
return KOTLIN_TYPE_MAP[t];
|
|
26
59
|
}
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return `${kotlinType(nullMatch[1])}?`;
|
|
60
|
+
// Parenthesized — strip outer parens first
|
|
61
|
+
if (t.startsWith("(") && t.endsWith(")")) {
|
|
62
|
+
return kotlinType(t.slice(1, -1));
|
|
31
63
|
}
|
|
32
|
-
//
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
|
|
64
|
+
// ── Union `A | B | …` — split at top level only ──────────────────────────
|
|
65
|
+
const unionParts = splitTopLevel(t, " | ");
|
|
66
|
+
if (unionParts.length > 1) {
|
|
67
|
+
const nonNull = unionParts.filter((p) => p !== "null");
|
|
68
|
+
const hasNull = nonNull.length < unionParts.length;
|
|
69
|
+
// Any union containing 2+ distinct non-null members where at least one
|
|
70
|
+
// is a non-primitive → collapse to JsonElement (no Kotlin equivalent).
|
|
71
|
+
const primitives = new Set(["string", "number", "integer", "boolean"]);
|
|
72
|
+
const isSimplePrimitive = (p) => primitives.has(p) || !!KOTLIN_TYPE_MAP[p];
|
|
73
|
+
// A quoted literal like `"placed"` or `42` — an inline enum value
|
|
74
|
+
const isLiteral = (p) => (p.startsWith('"') && p.endsWith('"')) ||
|
|
75
|
+
(p.startsWith("'") && p.endsWith("'")) ||
|
|
76
|
+
/^-?\d+(\.\d+)?$/.test(p);
|
|
77
|
+
const hasComplex = nonNull.some((p) => !isSimplePrimitive(p) && !isLiteral(p));
|
|
78
|
+
const hasPrimitive = nonNull.some((p) => primitives.has(p));
|
|
79
|
+
const allLiterals = nonNull.length > 0 && nonNull.every(isLiteral);
|
|
80
|
+
let result;
|
|
81
|
+
if (nonNull.length === 1) {
|
|
82
|
+
// Only one real type, rest were null → make nullable
|
|
83
|
+
result = kotlinType(nonNull[0]);
|
|
84
|
+
}
|
|
85
|
+
else if (allLiterals) {
|
|
86
|
+
// All parts are string/number literals (inline enum) → String in Kotlin
|
|
87
|
+
result = nonNull.some((p) => /^-?\d/.test(p)) ? "Double" : "String";
|
|
88
|
+
}
|
|
89
|
+
else if (hasPrimitive && hasComplex) {
|
|
90
|
+
// Mixed primitive + complex — no safe Kotlin type, use JsonElement
|
|
91
|
+
result = JSON_ELEMENT;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// All primitives or all known mapped types — join as sealed approximation
|
|
95
|
+
result = nonNull.map((p) => kotlinType(p)).join("Or").replace(/\s/g, "");
|
|
96
|
+
}
|
|
97
|
+
return hasNull ? `${result}?` : result;
|
|
36
98
|
}
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return `Map<${kotlinType(recMatch[1])}, kotlinx.serialization.json.JsonElement>`;
|
|
99
|
+
// ── Intersection `A & B` — split at top level only ───────────────────────
|
|
100
|
+
const interParts = splitTopLevel(t, " & ");
|
|
101
|
+
if (interParts.length > 1) {
|
|
102
|
+
// Intersections can't be represented faithfully — collapse to JsonElement
|
|
103
|
+
return JSON_ELEMENT;
|
|
43
104
|
}
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
105
|
+
// ── Generic wrappers ──────────────────────────────────────────────────────
|
|
106
|
+
// Array<T> → List<T>
|
|
107
|
+
const arrInner = genericArg(t, "Array");
|
|
108
|
+
if (arrInner !== null) {
|
|
109
|
+
return `List<${kotlinType(arrInner)}>`;
|
|
48
110
|
}
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
111
|
+
// Record<K, V> — values are structurally open, collapse value to JsonElement
|
|
112
|
+
if (t.startsWith("Record<") && t.endsWith(">")) {
|
|
113
|
+
const inner = t.slice("Record<".length, -1);
|
|
114
|
+
const [key] = splitTopLevel(inner, ", ");
|
|
115
|
+
return `Map<${kotlinType(key)}, ${JSON_ELEMENT}>`;
|
|
53
116
|
}
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const parts = t.split(" | ").map((p) => p.trim());
|
|
61
|
-
const primitives = new Set(["string", "number", "integer", "boolean"]);
|
|
62
|
-
const hasPrimitive = parts.some((p) => primitives.has(p));
|
|
63
|
-
const hasComplex = parts.some((p) => !primitives.has(p) &&
|
|
64
|
-
p !== "null" &&
|
|
65
|
-
!KOTLIN_TYPE_MAP[p]);
|
|
66
|
-
if (hasPrimitive && hasComplex) {
|
|
67
|
-
return "kotlinx.serialization.json.JsonElement";
|
|
117
|
+
// Map<K, V> (two-arg) or Map<V> (one-arg shorthand → Map<String, V>)
|
|
118
|
+
if (t.startsWith("Map<") && t.endsWith(">")) {
|
|
119
|
+
const inner = t.slice("Map<".length, -1);
|
|
120
|
+
const mapParts = splitTopLevel(inner, ", ");
|
|
121
|
+
if (mapParts.length >= 2) {
|
|
122
|
+
return `Map<${kotlinType(mapParts[0])}, ${kotlinType(mapParts.slice(1).join(", "))}>`;
|
|
68
123
|
}
|
|
69
|
-
|
|
70
|
-
return mapped.join("Or").replace(/\s/g, "");
|
|
71
|
-
}
|
|
72
|
-
// Intersection type — approximate
|
|
73
|
-
if (t.includes(" & ")) {
|
|
74
|
-
return t.replace(/\s*&\s*/g, "And").replace(/\s/g, "");
|
|
75
|
-
}
|
|
76
|
-
// Parenthesized
|
|
77
|
-
if (t.startsWith("(") && t.endsWith(")")) {
|
|
78
|
-
return kotlinType(t.slice(1, -1));
|
|
124
|
+
return `Map<String, ${kotlinType(inner)}>`;
|
|
79
125
|
}
|
|
80
126
|
return t;
|
|
81
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/kotlin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,UAAU,MAAM,YAAY,CAAC;AAMpC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE3F,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,wCAAwC;IAC7C,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/kotlin/index.ts"],"names":[],"mappings":"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"}
|
package/dist/collector.d.ts
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import type { BackendManifest, ManifestRouteSchema } from './types/manifest.js';
|
|
30
30
|
import type { SDKModuleConfig, SDKRouteConfig } from './types/sdk-module.js';
|
|
31
|
+
import type { TargetLanguage } from './types/ir.js';
|
|
31
32
|
export interface CollectorOptions {
|
|
32
33
|
/** API metadata written into the generated package.json and README. */
|
|
33
34
|
info: {
|
|
@@ -57,6 +58,37 @@ export interface CollectorOptions {
|
|
|
57
58
|
packageName?: string;
|
|
58
59
|
/** Override the generated package version. */
|
|
59
60
|
packageVersion?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Target SDK language for the primary output. Defaults to `'typescript'`.
|
|
63
|
+
* Use `additionalTargets` to emit multiple languages simultaneously.
|
|
64
|
+
*/
|
|
65
|
+
language?: TargetLanguage;
|
|
66
|
+
/**
|
|
67
|
+
* Additional SDK targets to generate alongside the primary output.
|
|
68
|
+
*
|
|
69
|
+
* Each entry runs a full generation pass with its own language adapter and
|
|
70
|
+
* output directory. The primary SDK is unaffected.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* const collector = new SDKCollector({
|
|
75
|
+
* info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
76
|
+
* output: './packages/api-sdk',
|
|
77
|
+
* additionalTargets: [
|
|
78
|
+
* { language: 'kotlin', output: './sdk/java' },
|
|
79
|
+
* { language: 'python', output: './sdk/python', packageName: 'my-api' },
|
|
80
|
+
* ],
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
additionalTargets?: Array<{
|
|
85
|
+
language: TargetLanguage;
|
|
86
|
+
output: string;
|
|
87
|
+
packageName?: string;
|
|
88
|
+
packageVersion?: string;
|
|
89
|
+
clientType?: 'internal' | 'public';
|
|
90
|
+
sdkStyle?: 'functional' | 'class';
|
|
91
|
+
}>;
|
|
60
92
|
}
|
|
61
93
|
export interface CollectorRouteConfig {
|
|
62
94
|
/** JSON Schemas for params, querystring, body, headers, and response. */
|
package/dist/collector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
|
package/dist/collector.js
CHANGED
|
@@ -79,14 +79,33 @@ export class SDKCollector {
|
|
|
79
79
|
async generate() {
|
|
80
80
|
const { generate } = await import('./index.js');
|
|
81
81
|
const manifest = this.buildManifest();
|
|
82
|
-
|
|
82
|
+
const primary = await generate({
|
|
83
83
|
manifest,
|
|
84
84
|
output: this.opts.output,
|
|
85
|
+
language: this.opts.language,
|
|
85
86
|
clientType: this.opts.clientType,
|
|
86
87
|
packageName: this.opts.packageName,
|
|
87
88
|
packageVersion: this.opts.packageVersion,
|
|
88
89
|
sdkStyle: this.opts.sdkStyle,
|
|
89
90
|
});
|
|
91
|
+
for (const target of this.opts.additionalTargets ?? []) {
|
|
92
|
+
const extra = await generate({
|
|
93
|
+
manifest,
|
|
94
|
+
output: target.output,
|
|
95
|
+
language: target.language,
|
|
96
|
+
clientType: target.clientType ?? this.opts.clientType,
|
|
97
|
+
packageName: target.packageName ?? this.opts.packageName,
|
|
98
|
+
packageVersion: target.packageVersion ?? this.opts.packageVersion,
|
|
99
|
+
sdkStyle: target.sdkStyle ?? this.opts.sdkStyle,
|
|
100
|
+
});
|
|
101
|
+
// Merge warnings and counts back into the primary result so callers
|
|
102
|
+
// get a single aggregated result regardless of target count.
|
|
103
|
+
primary.filesWritten += extra.filesWritten;
|
|
104
|
+
primary.filesSkipped += extra.filesSkipped;
|
|
105
|
+
primary.warnings.push(...extra.warnings);
|
|
106
|
+
primary.changedFiles.push(...extra.changedFiles);
|
|
107
|
+
}
|
|
108
|
+
return primary;
|
|
90
109
|
}
|
|
91
110
|
/**
|
|
92
111
|
* Check if `TESSERACT_GENERATE=1` is set and generate the SDK if so.
|
|
@@ -107,7 +126,8 @@ export class SDKCollector {
|
|
|
107
126
|
for (const w of result.warnings)
|
|
108
127
|
console.warn(` ⚠ ${w}`);
|
|
109
128
|
}
|
|
110
|
-
|
|
129
|
+
const targets = [this.opts.output, ...(this.opts.additionalTargets ?? []).map((t) => t.output)];
|
|
130
|
+
console.log(`[tesseract] ✓ ${result.filesWritten} files written → ${targets.join(', ')}`);
|
|
111
131
|
return true;
|
|
112
132
|
}
|
|
113
133
|
}
|
package/dist/collector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
|
package/dist/fastify.d.ts
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import type { FastifyInstance, FastifyPluginAsync } from 'fastify';
|
|
21
21
|
import type { SDKModuleConfig, SDKRouteConfig } from './types/sdk-module.js';
|
|
22
|
+
import type { TargetLanguage } from './types/ir.js';
|
|
23
|
+
import type { CollectorOptions } from './collector.js';
|
|
22
24
|
declare module 'fastify' {
|
|
23
25
|
interface RouteOptions {
|
|
24
26
|
/** SDK generation configuration for this route. Sibling to `schema`. */
|
|
@@ -104,6 +106,29 @@ export interface TesseractPluginOptions {
|
|
|
104
106
|
packageVersion?: string;
|
|
105
107
|
/** `'functional'` (default) or `'class'` (Resend-style `new MySDK('key')`). */
|
|
106
108
|
sdkStyle?: 'functional' | 'class';
|
|
109
|
+
/**
|
|
110
|
+
* Additional SDK targets to generate alongside the primary output.
|
|
111
|
+
*
|
|
112
|
+
* Each entry runs a full generation pass with its own language adapter and
|
|
113
|
+
* output directory. The primary SDK is unaffected.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* app.register(tesseractPlugin, {
|
|
118
|
+
* info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
|
|
119
|
+
* output: './packages/api-sdk',
|
|
120
|
+
* additionalTargets: [
|
|
121
|
+
* { language: 'kotlin', output: './sdk/java' },
|
|
122
|
+
* { language: 'python', output: './sdk/python', packageName: 'my-api' },
|
|
123
|
+
* ],
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
additionalTargets?: CollectorOptions['additionalTargets'];
|
|
128
|
+
/**
|
|
129
|
+
* Target SDK language. Defaults to `'typescript'` when omitted.
|
|
130
|
+
*/
|
|
131
|
+
language?: TargetLanguage;
|
|
107
132
|
}
|
|
108
133
|
/**
|
|
109
134
|
* Declare SDK domain metadata for the current Fastify plugin scope.
|
package/dist/fastify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,YAAY;QACpB,wEAAwE;QACxE,GAAG,CAAC,EAAE,cAAc,CAAC;KACtB;IACD,UAAU,qBAAqB;QAC7B,wEAAwE;QACxE,GAAG,CAAC,EAAE,cAAc,CAAC;KACtB;CACF;AAYD,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/C;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACnC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAClC;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC1D;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,IAAI,CAGN;AASD,kEAAkE;AAClE,UAAU,iBAAiB;IACzB,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAClD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AA8ND;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,4CAG1B,CAAC"}
|
package/dist/fastify.js
CHANGED
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import fp from 'fastify-plugin';
|
|
21
21
|
import { _domainRegistry } from './types/sdk-module.js';
|
|
22
|
-
import { buildManifestFromRoutes } from './collector.js';
|
|
23
22
|
// ── Domain registration helper ────────────────────────────────────────────────
|
|
24
23
|
/**
|
|
25
24
|
* Declare SDK domain metadata for the current Fastify plugin scope.
|
|
@@ -216,20 +215,30 @@ const _tesseractPlugin = async (fastify, opts) => {
|
|
|
216
215
|
// zod not available — schemas stay as-is (JSON Schema passed directly)
|
|
217
216
|
}
|
|
218
217
|
}
|
|
219
|
-
|
|
218
|
+
// Build a collector from the resolved routes so we can delegate to
|
|
219
|
+
// collector.generate() — this gives us additionalTargets support for free.
|
|
220
|
+
const { SDKCollector } = await import('./collector.js');
|
|
221
|
+
const collector = new SDKCollector({
|
|
222
|
+
info: opts.info,
|
|
223
|
+
output: opts.output,
|
|
224
|
+
language: opts.language,
|
|
225
|
+
schemaPackage: opts.schemaPackage,
|
|
226
|
+
clientType: opts.clientType,
|
|
227
|
+
packageName: opts.packageName,
|
|
228
|
+
packageVersion: opts.packageVersion,
|
|
229
|
+
sdkStyle: opts.sdkStyle,
|
|
230
|
+
additionalTargets: opts.additionalTargets,
|
|
231
|
+
});
|
|
232
|
+
for (const [prefix, domainConfig] of _domainRegistry) {
|
|
233
|
+
collector.domain(prefix, domainConfig);
|
|
234
|
+
}
|
|
235
|
+
for (const r of resolvedRoutes) {
|
|
236
|
+
collector.route(r.url, r.method, { sdk: r.sdk, schema: r.schema, sse: r.sse });
|
|
237
|
+
}
|
|
238
|
+
const manifest = collector.buildManifest();
|
|
220
239
|
console.log(`\n[tesseract] ${manifest.domains.length} domain(s), ${collectedRoutes.length} route(s) → ${opts.output}`);
|
|
221
|
-
// Dynamic import keeps the generation pipeline out of the user's app bundle
|
|
222
|
-
// when TESSERACT_GENERATE is not set (the plugin returns early above).
|
|
223
240
|
try {
|
|
224
|
-
const
|
|
225
|
-
const result = await generate({
|
|
226
|
-
manifest,
|
|
227
|
-
output: opts.output,
|
|
228
|
-
clientType: opts.clientType,
|
|
229
|
-
packageName: opts.packageName,
|
|
230
|
-
packageVersion: opts.packageVersion,
|
|
231
|
-
sdkStyle: opts.sdkStyle,
|
|
232
|
-
});
|
|
241
|
+
const result = await collector.generate();
|
|
233
242
|
for (const w of result.warnings) {
|
|
234
243
|
console.warn(` ⚠ ${w}`);
|
|
235
244
|
}
|
package/dist/fastify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.js","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"fastify.js","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/intake.js
CHANGED
|
@@ -296,8 +296,14 @@ export function jsonSchemaToType(schema) {
|
|
|
296
296
|
}
|
|
297
297
|
// ── Group / operation building ───────────────────────────────────────────────
|
|
298
298
|
function isComplexInlineSchema(s) {
|
|
299
|
-
if (s.type === "object")
|
|
299
|
+
if (s.type === "object") {
|
|
300
|
+
// An object with only additionalProperties (no explicit `properties`) is
|
|
301
|
+
// representable as an inline `Record<string, V>` type — no need to hoist it
|
|
302
|
+
// into a named inline schema, which would lose the response type entirely.
|
|
303
|
+
if (!s.properties && s.additionalProperties)
|
|
304
|
+
return false;
|
|
300
305
|
return true;
|
|
306
|
+
}
|
|
301
307
|
if (Array.isArray(s.allOf))
|
|
302
308
|
return true;
|
|
303
309
|
// anyOf / oneOf that is just `SomeRef | null` is not complex — emit inline
|
|
@@ -387,7 +393,7 @@ function buildOperation(route, groupName, domainPrefix) {
|
|
|
387
393
|
statusCode = sc;
|
|
388
394
|
const rs = successSchema;
|
|
389
395
|
if (rs.type === "null" ||
|
|
390
|
-
(rs.type === "object" && !rs.properties && !rs.$ref)) {
|
|
396
|
+
(rs.type === "object" && !rs.properties && !rs.$ref && !rs.additionalProperties)) {
|
|
391
397
|
responseType = "void";
|
|
392
398
|
}
|
|
393
399
|
else if (typeof rs.$ref !== "string" && isComplexInlineSchema(rs)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../src/pipeline/intake.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../src/pipeline/intake.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -31,19 +31,17 @@ class {{interfaceName}}(
|
|
|
31
31
|
{{#if requestBody}}
|
|
32
32
|
body: {{{requestBody.kotlinType}}},
|
|
33
33
|
{{/if}}
|
|
34
|
-
{{#
|
|
35
|
-
|
|
36
|
-
{{/
|
|
34
|
+
{{#each _queryParams}}
|
|
35
|
+
{{name}}: {{{kotlinType type}}}? = null,
|
|
36
|
+
{{/each}}
|
|
37
37
|
): {{{kotlinResponseType}}} {
|
|
38
|
-
val path = "{{path}}"
|
|
38
|
+
val path = "{{path}}"
|
|
39
39
|
|
|
40
40
|
{{#if (hasQueryParams this)}}
|
|
41
41
|
val queryMap = mutableMapOf<String, String?>()
|
|
42
42
|
{{#each _queryParams}}
|
|
43
|
-
queryMap["{{originalName}}"] =
|
|
43
|
+
if ({{name}} != null) queryMap["{{originalName}}"] = {{name}}.toString()
|
|
44
44
|
{{/each}}
|
|
45
|
-
{{else if queryType}}
|
|
46
|
-
val queryMap: Map<String, String?>? = null // TODO: serialize query type
|
|
47
45
|
{{else}}
|
|
48
46
|
val queryMap: Map<String, String?>? = null
|
|
49
47
|
{{/if}}
|
|
@@ -63,7 +61,7 @@ class {{interfaceName}}(
|
|
|
63
61
|
{{/if}}
|
|
64
62
|
|
|
65
63
|
return transport.execute<{{{kotlinResponseType}}}>(
|
|
66
|
-
method = HttpMethod.{{httpMethod}},
|
|
64
|
+
method = HttpMethod.{{pascalCase httpMethod}},
|
|
67
65
|
path = path,
|
|
68
66
|
query = queryMap,
|
|
69
67
|
body = {{#if requestBody}}body{{else}}null{{/if}},
|
|
@@ -37,6 +37,7 @@ data class TransportConfig(
|
|
|
37
37
|
class Transport(
|
|
38
38
|
private val config: TransportConfig
|
|
39
39
|
) {
|
|
40
|
+
@PublishedApi
|
|
40
41
|
internal val json = Json {
|
|
41
42
|
ignoreUnknownKeys = true
|
|
42
43
|
isLenient = true
|
|
@@ -206,14 +207,14 @@ class Transport(
|
|
|
206
207
|
?: jsonBody["error"]?.let { err ->
|
|
207
208
|
when (err) {
|
|
208
209
|
is JsonObject -> err["code"]?.jsonPrimitive?.content
|
|
209
|
-
else -> err.jsonPrimitive
|
|
210
|
+
else -> err.jsonPrimitive.content
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
213
|
message = jsonBody["message"]?.jsonPrimitive?.content
|
|
213
214
|
?: jsonBody["error"]?.let { err ->
|
|
214
215
|
when (err) {
|
|
215
216
|
is JsonObject -> err["message"]?.jsonPrimitive?.content
|
|
216
|
-
else -> err.jsonPrimitive
|
|
217
|
+
else -> err.jsonPrimitive.content
|
|
217
218
|
}
|
|
218
219
|
}
|
|
219
220
|
?: message
|