Skip to content

Commit a3fdeb3

Browse files
committed
Add variants to interfaces as well
1 parent cae7ca6 commit a3fdeb3

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

specification/compiler/model/build-model.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ import {
5050
modelProperty,
5151
modelType,
5252
modelTypeAlias,
53-
parseVariantNameTag
53+
parseVariantNameTag,
54+
parseVariantsTag
5455
} from './utils'
5556

5657
const specsFolder = join(__dirname, '..', '..', 'specs')
@@ -263,6 +264,12 @@ function compileClassOrInterfaceDeclaration (declaration: ClassDeclaration | Int
263264
type.variantName = variant
264265
}
265266

267+
const variants = parseVariantsTag(declaration.getJsDocs())
268+
if (variants != null) {
269+
assert(variants.kind === 'container', 'Interfaces can only use `container` vairant kind')
270+
type.variants = variants
271+
}
272+
266273
for (const member of declaration.getMembers()) {
267274
// Any property definition
268275
assert(

0 commit comments

Comments
 (0)