Skip to content

Commit 8c84939

Browse files
authored
Merge branch 'master' into bugfix/upgrade-deps
2 parents 5150fb8 + 10e1af6 commit 8c84939

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/language/typescript/asyncapi-2.0.0/serializers/schema-object.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
} from '../../common/data/serialized-type';
2424
import {
2525
AllOfSchemaObjectCodec,
26+
ArraySchemaObject,
2627
ConstSchemaObjectCodec,
2728
EnumSchemaObjectCodec,
2829
ObjectSchemaObject,
@@ -36,7 +37,7 @@ import { ReferenceObject, ReferenceObjectCodec } from '../../../../schema/asynca
3637
import { traverseNEAEither } from '../../../../utils/either';
3738
import { constFalse } from 'fp-ts/lib/function';
3839
import { sequenceEither } from '@devexperts/utils/dist/adt/either.utils';
39-
import { none, Option } from 'fp-ts/lib/Option';
40+
import { Option } from 'fp-ts/lib/Option';
4041

4142
export const serializeSchemaObject = (
4243
from: Ref,
@@ -85,7 +86,7 @@ const serializeSchemaObjectWithRecursion = (
8586
return serializeObjectSchemaObject(from, schemaObject, shouldTrackRecursion, name);
8687
}
8788
case 'array': {
88-
return serializeArray(from, schemaObject.items, shouldTrackRecursion, name);
89+
return serializeArray(from, schemaObject, shouldTrackRecursion, name);
8990
}
9091
}
9192
};
@@ -185,12 +186,12 @@ const serializeProperties = (
185186

186187
const serializeArray = (
187188
from: Ref,
188-
items: ReferenceObject | SchemaObject,
189+
schemaObject: ArraySchemaObject,
189190
shouldTrackRecursion: boolean,
190191
name?: string,
191192
): Either<Error, SerializedType> => {
192-
const serialized = ReferenceObjectCodec.is(items)
193-
? pipe(fromString(items.$ref), either.map(getSerializedRefType(from)))
194-
: serializeSchemaObjectWithRecursion(from, items, false);
195-
return pipe(serialized, either.map(getSerializedArrayType(none, name)));
193+
const serialized = ReferenceObjectCodec.is(schemaObject.items)
194+
? pipe(fromString(schemaObject.items.$ref), either.map(getSerializedRefType(from)))
195+
: serializeSchemaObjectWithRecursion(from, schemaObject.items, false);
196+
return pipe(serialized, either.map(getSerializedArrayType(schemaObject.minItems, name)));
196197
};

src/schema/asyncapi-2.0.0/schema-object.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,17 @@ const StringSchemaObjectCodec: Codec<StringSchemaObject> = intersection(
188188
export interface ArraySchemaObject extends BaseSchemaObject {
189189
readonly type: 'array';
190190
readonly items: ReferenceObject | SchemaObject;
191+
readonly maxItems: Option<Natural>;
192+
readonly minItems: Option<Natural>;
191193
}
192194
const ArraySchemaObjectCodec: Codec<ArraySchemaObject> = recursion('ArraySchemaObject', () =>
193195
intersection([
194196
BaseSchemaObjectCodec,
195197
type({
196198
type: literal('array'),
197199
items: union([ReferenceObjectCodec, SchemaObjectCodec]),
200+
maxItems: optionFromNullable(natural),
201+
minItems: optionFromNullable(natural),
198202
}),
199203
]),
200204
);

0 commit comments

Comments
 (0)