Skip to content

Commit ff937aa

Browse files
Anton Koshkinraveclassic
Anton Koshkin
authored andcommitted
feat: implement support of kebab case in property names (#83)
closes #82
1 parent 7cc367e commit ff937aa

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

src/language/typescript/common/data/__tests__/serialized-type.spec.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,17 @@ describe('SerializedType', () => {
5555
assert(
5656
property(string(), serializedTypeArbitrary, boolean(), (name, s, isRequired) => {
5757
const serialized = getSerializedOptionPropertyType(name, isRequired)(s);
58+
const fixedName = (name: string) => (name.includes('-') ? `['${name}']` : name);
5859
const expected = isRequired
59-
? serializedType(`${name}: ${s.type}`, `${name}: ${s.io}`, s.dependencies, s.refs)
60+
? serializedType(
61+
`${fixedName(name)}: ${s.type}`,
62+
`${fixedName(name)}: ${s.io}`,
63+
s.dependencies,
64+
s.refs,
65+
)
6066
: serializedType(
61-
`${name}: Option<${s.type}>`,
62-
`${name}: optionFromNullable(${s.io})`,
67+
`${fixedName(name)}: Option<${s.type}>`,
68+
`${fixedName(name)}: optionFromNullable(${s.io})`,
6369
[
6470
...s.dependencies,
6571
serializedDependency('Option', 'fp-ts/lib/Option'),

src/language/typescript/common/data/serialized-type.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,8 @@ export const getSerializedPropertyType = (
220220
serialized: SerializedType,
221221
): SerializedType =>
222222
serializedType(
223-
`${name}${when(!isRequired, '?')}: ${serialized.type}`,
224-
`${name}: ${serialized.io}`,
223+
`${name.includes('-') ? `['${name}']` : name}${when(!isRequired, '?')}: ${serialized.type}`,
224+
`${name.includes('-') ? `['${name}']` : name}: ${serialized.io}`,
225225
serialized.dependencies,
226226
serialized.refs,
227227
);

test/specs/3.0/demo.yml

+2
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ components:
9999
type: 'string'
100100
self:
101101
$ref: '#/components/schemas/TestAllOf'
102+
kebab-property:
103+
type: string
102104
requestBodies:
103105
RefRequestBody:
104106
description: ref request body

0 commit comments

Comments
 (0)