Skip to content

Commit 036467a

Browse files
authored
Merge branch 'master' into asyncapi-fix-message-examples
2 parents 47a1ad3 + 10e1af6 commit 036467a

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
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
);

yarn.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5323,9 +5323,9 @@ tmp@^0.0.33:
53235323
os-tmpdir "~1.0.2"
53245324

53255325
5326-
version "1.0.4"
5327-
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
5328-
integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
5326+
version "1.0.5"
5327+
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
5328+
integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
53295329

53305330
to-fast-properties@^2.0.0:
53315331
version "2.0.0"

0 commit comments

Comments
 (0)