@voxgig/sdkgen 0.43.0 → 0.45.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/bin/voxgig-sdkgen +1 -1
- package/dist/cmp/ReadmeEntity.js +9 -153
- package/dist/cmp/ReadmeEntity.js.map +1 -1
- package/dist/cmp/ReadmeIntro.js +9 -14
- package/dist/cmp/ReadmeIntro.js.map +1 -1
- package/dist/cmp/ReadmeModel.js +6 -4
- package/dist/cmp/ReadmeModel.js.map +1 -1
- package/dist/cmp/ReadmeOptions.js +9 -61
- package/dist/cmp/ReadmeOptions.js.map +1 -1
- package/dist/cmp/ReadmeRef.js +10 -1328
- package/dist/cmp/ReadmeRef.js.map +1 -1
- package/dist/sdkgen.d.ts +2 -2
- package/dist/sdkgen.js +2 -1
- package/dist/sdkgen.js.map +1 -1
- package/dist/utility.d.ts +2 -1
- package/dist/utility.js +9 -0
- package/dist/utility.js.map +1 -1
- package/package.json +1 -1
- package/project/.sdk/src/cmp/go/Config_go.ts +9 -4
- package/project/.sdk/src/cmp/go/Gitignore_go.ts +47 -0
- package/project/.sdk/src/cmp/go/Main_go.ts +3 -0
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +138 -0
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +6 -3
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +18 -0
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +6 -3
- package/project/.sdk/src/cmp/go/ReadmeOptions_go.ts +58 -0
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +11 -7
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +354 -0
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +6 -4
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +18 -8
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +105 -54
- package/project/.sdk/src/cmp/js/Config_js.ts +18 -0
- package/project/.sdk/src/cmp/js/Gitignore_js.ts +35 -0
- package/project/.sdk/src/cmp/js/Main_js.ts +3 -0
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +138 -0
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +11 -6
- package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +18 -0
- package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +6 -3
- package/project/.sdk/src/cmp/js/ReadmeOptions_js.ts +58 -0
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +6 -4
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +384 -0
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +6 -4
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +23 -12
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +107 -74
- package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +1 -5
- package/project/.sdk/src/cmp/lua/Config_lua.ts +9 -4
- package/project/.sdk/src/cmp/lua/Gitignore_lua.ts +39 -0
- package/project/.sdk/src/cmp/lua/Main_lua.ts +3 -0
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +138 -0
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +6 -3
- package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +18 -0
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +6 -3
- package/project/.sdk/src/cmp/lua/ReadmeOptions_lua.ts +58 -0
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +6 -4
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +360 -0
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +6 -4
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +18 -8
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +95 -51
- package/project/.sdk/src/cmp/php/Config_php.ts +10 -8
- package/project/.sdk/src/cmp/php/Gitignore_php.ts +33 -0
- package/project/.sdk/src/cmp/php/Main_php.ts +3 -0
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +138 -0
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +6 -3
- package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +18 -0
- package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +6 -3
- package/project/.sdk/src/cmp/php/ReadmeOptions_php.ts +58 -0
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +6 -4
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +358 -0
- package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +6 -4
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +18 -8
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +101 -54
- package/project/.sdk/src/cmp/py/Config_py.ts +9 -4
- package/project/.sdk/src/cmp/py/Gitignore_py.ts +55 -0
- package/project/.sdk/src/cmp/py/Main_py.ts +3 -0
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +138 -0
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +6 -3
- package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +18 -0
- package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +6 -3
- package/project/.sdk/src/cmp/py/ReadmeOptions_py.ts +58 -0
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +9 -6
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +356 -0
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +9 -6
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +18 -8
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +100 -50
- package/project/.sdk/src/cmp/rb/Config_rb.ts +9 -4
- package/project/.sdk/src/cmp/rb/Gitignore_rb.ts +38 -0
- package/project/.sdk/src/cmp/rb/Main_rb.ts +3 -0
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +138 -0
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +6 -3
- package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +18 -0
- package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +6 -3
- package/project/.sdk/src/cmp/rb/ReadmeOptions_rb.ts +58 -0
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +6 -4
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +361 -0
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +6 -4
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +18 -8
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +95 -51
- package/project/.sdk/src/cmp/ts/Config_ts.ts +18 -0
- package/project/.sdk/src/cmp/ts/Gitignore_ts.ts +37 -0
- package/project/.sdk/src/cmp/ts/Main_ts.ts +3 -0
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +138 -0
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +11 -6
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +18 -0
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +9 -5
- package/project/.sdk/src/cmp/ts/ReadmeOptions_ts.ts +58 -0
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +6 -4
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +384 -0
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +6 -4
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +68 -20
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +109 -74
- package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +1 -5
- package/project/.sdk/tm/go/utility/prepare_auth.go +15 -1
- package/project/.sdk/tm/js/src/utility/PrepareAuthUtility.js +7 -1
- package/project/.sdk/tm/lua/utility/prepare_auth.lua +9 -1
- package/project/.sdk/tm/php/utility/PrepareAuth.php +11 -1
- package/project/.sdk/tm/py/utility/prepare_auth.py +10 -1
- package/project/.sdk/tm/rb/utility/prepare_auth.rb +8 -1
- package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +7 -8
- package/project/.sdk/tm/ts/src/utility/PrepareAuthUtility.ts +7 -1
- package/src/cmp/ReadmeEntity.ts +11 -178
- package/src/cmp/ReadmeIntro.ts +11 -25
- package/src/cmp/ReadmeModel.ts +7 -5
- package/src/cmp/ReadmeOptions.ts +12 -74
- package/src/cmp/ReadmeRef.ts +11 -1372
- package/src/sdkgen.ts +2 -1
- package/src/utility.ts +12 -0
- /package/project/.sdk/tm/go/utility/{make_target.go → make_point.go} +0 -0
package/src/cmp/ReadmeEntity.ts
CHANGED
|
@@ -1,192 +1,25 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp
|
|
2
|
+
import { cmp } from 'jostraca'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
KIT,
|
|
6
|
-
getModelPath
|
|
7
|
-
} from '../types'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const OP_DESC: Record<string, { method: string, goMethod: string, desc: string }> = {
|
|
11
|
-
load: { method: 'load(match)', goMethod: 'Load(match, ctrl)', desc: 'Load a single entity by match criteria.' },
|
|
12
|
-
list: { method: 'list(match)', goMethod: 'List(match, ctrl)', desc: 'List entities matching the criteria.' },
|
|
13
|
-
create: { method: 'create(data)', goMethod: 'Create(data, ctrl)', desc: 'Create a new entity with the given data.' },
|
|
14
|
-
update: { method: 'update(data)', goMethod: 'Update(data, ctrl)', desc: 'Update an existing entity.' },
|
|
15
|
-
remove: { method: 'remove(match)', goMethod: 'Remove(match, ctrl)', desc: 'Remove the matching entity.' },
|
|
16
|
-
}
|
|
4
|
+
import { requirePath } from '../utility'
|
|
17
5
|
|
|
18
6
|
|
|
7
|
+
// Per-language Entities section lives in
|
|
8
|
+
// `project/.sdk/src/cmp/<lang>/ReadmeEntity_<lang>.ts`.
|
|
9
|
+
// Each language emits its own create-instance call style and
|
|
10
|
+
// op-method spelling (Go's `Load(match, ctrl)` vs TS's `load(match)`).
|
|
19
11
|
const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
20
|
-
const { target } = props
|
|
21
|
-
const { model } = props.ctx$
|
|
12
|
+
const { target, ctx$ } = props
|
|
22
13
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
const lang = isGo ? 'go' : 'ts'
|
|
14
|
+
const ReadmeEntity_sdk =
|
|
15
|
+
requirePath(ctx$, `./cmp/${target.name}/ReadmeEntity_${target.name}`, { ignore: true })
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (0 === publishedEntities.length) {
|
|
31
|
-
return
|
|
17
|
+
if (ReadmeEntity_sdk) {
|
|
18
|
+
ReadmeEntity_sdk['ReadmeEntity']({ target })
|
|
32
19
|
}
|
|
33
|
-
|
|
34
|
-
Content(`
|
|
35
|
-
|
|
36
|
-
## Entities
|
|
37
|
-
|
|
38
|
-
`)
|
|
39
|
-
|
|
40
|
-
publishedEntities.map((entity: any) => {
|
|
41
|
-
const opnames = Object.keys(entity.op || {})
|
|
42
|
-
const fields = entity.fields || []
|
|
43
|
-
|
|
44
|
-
Content(`
|
|
45
|
-
### ${entity.Name}
|
|
46
|
-
|
|
47
|
-
`)
|
|
48
|
-
|
|
49
|
-
if (entity.short) {
|
|
50
|
-
Content(`${entity.short}
|
|
51
|
-
|
|
52
|
-
`)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (isGo) {
|
|
56
|
-
Content(`Create an instance: \`${entity.name} := client.${entity.Name}(nil)\`
|
|
57
|
-
|
|
58
|
-
`)
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
Content(`Create an instance: \`const ${entity.name} = client.${entity.Name}()\`
|
|
62
|
-
|
|
63
|
-
`)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Operations table
|
|
67
|
-
if (opnames.length > 0) {
|
|
68
|
-
Content(`#### Operations
|
|
69
|
-
|
|
70
|
-
| Method | Description |
|
|
71
|
-
| --- | --- |
|
|
72
|
-
`)
|
|
73
|
-
opnames.map((opname: string) => {
|
|
74
|
-
const info = OP_DESC[opname]
|
|
75
|
-
if (info) {
|
|
76
|
-
const method = isGo ? info.goMethod : info.method
|
|
77
|
-
Content(`| \`${method}\` | ${info.desc} |
|
|
78
|
-
`)
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
Content(`
|
|
83
|
-
`)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Fields table
|
|
87
|
-
if (fields.length > 0) {
|
|
88
|
-
Content(`#### Fields
|
|
89
|
-
|
|
90
|
-
| Field | Type | Description |
|
|
91
|
-
| --- | --- | --- |
|
|
92
|
-
`)
|
|
93
|
-
|
|
94
|
-
each(fields, (field: any) => {
|
|
95
|
-
const desc = field.short || ''
|
|
96
|
-
Content(`| \`${field.name}\` | \`${field.type || 'any'}\` | ${desc} |
|
|
97
|
-
`)
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
Content(`
|
|
101
|
-
`)
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Example usage
|
|
105
|
-
if (isGo) {
|
|
106
|
-
if (opnames.includes('load')) {
|
|
107
|
-
Content(`#### Example: Load
|
|
108
|
-
|
|
109
|
-
\`\`\`go
|
|
110
|
-
result, err := client.${entity.Name}(nil).Load(map[string]any{"id": "${entity.name}_id"}, nil)
|
|
111
|
-
\`\`\`
|
|
112
|
-
|
|
113
|
-
`)
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (opnames.includes('list')) {
|
|
117
|
-
Content(`#### Example: List
|
|
118
|
-
|
|
119
|
-
\`\`\`go
|
|
120
|
-
results, err := client.${entity.Name}(nil).List(nil, nil)
|
|
121
|
-
\`\`\`
|
|
122
|
-
|
|
123
|
-
`)
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (opnames.includes('create')) {
|
|
127
|
-
Content(`#### Example: Create
|
|
128
|
-
|
|
129
|
-
\`\`\`go
|
|
130
|
-
result, err := client.${entity.Name}(nil).Create(map[string]any{
|
|
131
|
-
`)
|
|
132
|
-
each(fields, (field: any) => {
|
|
133
|
-
if ('id' !== field.name && field.req) {
|
|
134
|
-
Content(` "${field.name}": /* ${field.type || 'value'} */,
|
|
135
|
-
`)
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
Content(`}, nil)
|
|
139
|
-
\`\`\`
|
|
140
|
-
|
|
141
|
-
`)
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
if (opnames.includes('load')) {
|
|
146
|
-
Content(`#### Example: Load
|
|
147
|
-
|
|
148
|
-
\`\`\`ts
|
|
149
|
-
const ${entity.name} = await client.${entity.Name}().load({ id: '${entity.name}_id' })
|
|
150
|
-
\`\`\`
|
|
151
|
-
|
|
152
|
-
`)
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
if (opnames.includes('list')) {
|
|
156
|
-
Content(`#### Example: List
|
|
157
|
-
|
|
158
|
-
\`\`\`ts
|
|
159
|
-
const ${entity.name}s = await client.${entity.Name}().list()
|
|
160
|
-
\`\`\`
|
|
161
|
-
|
|
162
|
-
`)
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (opnames.includes('create')) {
|
|
166
|
-
Content(`#### Example: Create
|
|
167
|
-
|
|
168
|
-
\`\`\`ts
|
|
169
|
-
const ${entity.name} = await client.${entity.Name}().create({
|
|
170
|
-
`)
|
|
171
|
-
each(fields, (field: any) => {
|
|
172
|
-
if ('id' !== field.name && field.req) {
|
|
173
|
-
Content(` ${field.name}: /* ${field.type || 'value'} */,
|
|
174
|
-
`)
|
|
175
|
-
}
|
|
176
|
-
})
|
|
177
|
-
Content(`})
|
|
178
|
-
\`\`\`
|
|
179
|
-
|
|
180
|
-
`)
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
})
|
|
185
|
-
|
|
186
20
|
})
|
|
187
21
|
|
|
188
22
|
|
|
189
|
-
|
|
190
23
|
export {
|
|
191
24
|
ReadmeEntity
|
|
192
25
|
}
|
package/src/cmp/ReadmeIntro.ts
CHANGED
|
@@ -1,38 +1,24 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp
|
|
2
|
+
import { cmp } from 'jostraca'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
KIT,
|
|
6
|
-
getModelPath
|
|
7
|
-
} from '../types'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const TARGET_INTRO: Record<string, string> = {
|
|
11
|
-
ts: 'Provides a type-safe,\nentity-oriented interface with full async/await support.',
|
|
12
|
-
go: 'Provides an entity-oriented interface\nusing standard Go conventions \u2014 no generics required, data flows as\n`map[string]any`.',
|
|
13
|
-
js: 'Provides an entity-oriented\ninterface with full async/await support.',
|
|
14
|
-
}
|
|
4
|
+
import { requirePath } from '../utility'
|
|
15
5
|
|
|
16
6
|
|
|
7
|
+
// Per-language intro lives in `project/.sdk/src/cmp/<lang>/ReadmeIntro_<lang>.ts`.
|
|
8
|
+
// Each language declares its own tagline and stylistic emphasis (Go's
|
|
9
|
+
// `map[string]any` data-flow note, TS's async/await emphasis, etc.).
|
|
17
10
|
const ReadmeIntro = cmp(function ReadmeIntro(props: any) {
|
|
18
|
-
const { target } = props
|
|
19
|
-
const { model } = props.ctx$
|
|
20
|
-
|
|
21
|
-
const desc = model.main.def.desc || ''
|
|
22
|
-
|
|
23
|
-
const targetIntro = TARGET_INTRO[target.name] || 'Provides an entity-oriented interface.'
|
|
11
|
+
const { target, ctx$ } = props
|
|
24
12
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
The ${target.title} SDK for the ${model.Name} API. ${targetIntro}
|
|
28
|
-
|
|
29
|
-
`)
|
|
13
|
+
const ReadmeIntro_sdk =
|
|
14
|
+
requirePath(ctx$, `./cmp/${target.name}/ReadmeIntro_${target.name}`, { ignore: true })
|
|
30
15
|
|
|
16
|
+
if (ReadmeIntro_sdk) {
|
|
17
|
+
ReadmeIntro_sdk['ReadmeIntro']({ target })
|
|
18
|
+
}
|
|
31
19
|
})
|
|
32
20
|
|
|
33
21
|
|
|
34
|
-
|
|
35
|
-
|
|
36
22
|
export {
|
|
37
23
|
ReadmeIntro
|
|
38
24
|
}
|
package/src/cmp/ReadmeModel.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getModelPath
|
|
7
7
|
} from '../types'
|
|
8
8
|
|
|
9
|
-
import { requirePath } from '../utility'
|
|
9
|
+
import { requirePath, isAuthActive } from '../utility'
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
const ReadmeModel = cmp(function ReadmeModel(props: any) {
|
|
@@ -30,13 +30,16 @@ const ReadmeModel = cmp(function ReadmeModel(props: any) {
|
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
32
|
// Fallback: generic reference summary
|
|
33
|
-
ReadmeModelGeneric({ target, model, entityList })
|
|
33
|
+
ReadmeModelGeneric({ target, model, entityList, authActive: isAuthActive(model) })
|
|
34
34
|
}
|
|
35
35
|
})
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
const ReadmeModelGeneric = cmp(function ReadmeModelGeneric(props: any) {
|
|
39
|
-
const { target, model, entityList } = props
|
|
39
|
+
const { target, model, entityList, authActive } = props
|
|
40
|
+
const apikeyRow = authActive
|
|
41
|
+
? '| `apikey` | `string` | API key for authentication. |\n'
|
|
42
|
+
: ''
|
|
40
43
|
|
|
41
44
|
Content(`### ${model.Name}SDK
|
|
42
45
|
|
|
@@ -44,8 +47,7 @@ const ReadmeModelGeneric = cmp(function ReadmeModelGeneric(props: any) {
|
|
|
44
47
|
|
|
45
48
|
| Option | Type | Description |
|
|
46
49
|
| --- | --- | --- |
|
|
47
|
-
| \`
|
|
48
|
-
| \`base\` | \`string\` | Base URL of the API server. |
|
|
50
|
+
${apikeyRow}| \`base\` | \`string\` | Base URL of the API server. |
|
|
49
51
|
| \`prefix\` | \`string\` | URL path prefix prepended to all requests. |
|
|
50
52
|
| \`suffix\` | \`string\` | URL path suffix appended to all requests. |
|
|
51
53
|
| \`feature\` | \`object\` | Feature activation flags. |
|
package/src/cmp/ReadmeOptions.ts
CHANGED
|
@@ -1,87 +1,25 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp
|
|
2
|
+
import { cmp } from 'jostraca'
|
|
3
3
|
|
|
4
|
+
import { requirePath } from '../utility'
|
|
4
5
|
|
|
5
|
-
const ReadmeOptions = cmp(function ReadmeOptions(props: any) {
|
|
6
|
-
const { target } = props
|
|
7
|
-
const { model } = props.ctx$
|
|
8
|
-
|
|
9
|
-
const isGo = target.name === 'go'
|
|
10
|
-
|
|
11
|
-
const publishedOptions = each(target.options)
|
|
12
|
-
.filter((option: any) => option.publish)
|
|
13
|
-
|
|
14
|
-
if (0 === publishedOptions.length) {
|
|
15
|
-
return
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
Content(`
|
|
19
|
-
|
|
20
|
-
## Options
|
|
21
|
-
|
|
22
|
-
Pass options when creating a client instance:
|
|
23
|
-
|
|
24
|
-
`)
|
|
25
|
-
|
|
26
|
-
if (isGo) {
|
|
27
|
-
Content(`\`\`\`go
|
|
28
|
-
client := sdk.New${model.const.Name}SDK(map[string]any{
|
|
29
|
-
`)
|
|
30
6
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Content(` // "${option.name}": ${option.kind === 'string' ? '"..."' : '...'},
|
|
38
|
-
`)
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
Content(`})
|
|
43
|
-
\`\`\`
|
|
44
|
-
|
|
45
|
-
`)
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
Content(`\`\`\`ts
|
|
49
|
-
const client = new ${model.Name}SDK({
|
|
50
|
-
`)
|
|
51
|
-
|
|
52
|
-
publishedOptions.map((option: any) => {
|
|
53
|
-
if ('apikey' === option.name) {
|
|
54
|
-
Content(` ${option.name}: process.env.${model.NAME}_APIKEY,
|
|
55
|
-
`)
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
Content(` // ${option.name}: ${option.kind === 'string' ? "'...'" : '...'},
|
|
59
|
-
`)
|
|
60
|
-
}
|
|
61
|
-
})
|
|
7
|
+
// Per-language Options block lives in
|
|
8
|
+
// `project/.sdk/src/cmp/<lang>/ReadmeOptions_<lang>.ts`.
|
|
9
|
+
// Each language emits its own constructor-call shape and option-table
|
|
10
|
+
// formatting; they share the data source (target.options).
|
|
11
|
+
const ReadmeOptions = cmp(function ReadmeOptions(props: any) {
|
|
12
|
+
const { target, ctx$ } = props
|
|
62
13
|
|
|
63
|
-
|
|
64
|
-
|
|
14
|
+
const ReadmeOptions_sdk =
|
|
15
|
+
requirePath(ctx$, `./cmp/${target.name}/ReadmeOptions_${target.name}`, { ignore: true })
|
|
65
16
|
|
|
66
|
-
|
|
17
|
+
if (ReadmeOptions_sdk) {
|
|
18
|
+
ReadmeOptions_sdk['ReadmeOptions']({ target })
|
|
67
19
|
}
|
|
68
|
-
|
|
69
|
-
Content(`| Option | Type | Description |
|
|
70
|
-
| --- | --- | --- |
|
|
71
|
-
`)
|
|
72
|
-
|
|
73
|
-
publishedOptions.map((option: any) => {
|
|
74
|
-
Content(`| \`${option.name}\` | \`${option.kind}\` | ${option.short} |
|
|
75
|
-
`)
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
Content(`
|
|
79
|
-
`)
|
|
80
|
-
|
|
81
20
|
})
|
|
82
21
|
|
|
83
22
|
|
|
84
|
-
|
|
85
23
|
export {
|
|
86
24
|
ReadmeOptions
|
|
87
25
|
}
|