Skip to content

markdown-template TypeVisitor.isPrimitive() incompatible with concerto-core 4.x #673

@mttrbrts

Description

@mttrbrts

Reproduction

@accordproject/markdown-template@0.18.0 runs against @accordproject/concerto-core@4.x (as bundled via @accordproject/cicero-core@0.26.0).

Triggered by accordproject/cicero-template-library PR #484, template src/bill-of-lading, after fixing its grammar to wrap optional properties in {{#optional ...}}{{/optional}} blocks.

Observed

TypeError: property.isPrimitive is not a function
 ❯ TypeVisitor.visit node_modules/@accordproject/markdown-template/lib/TypeVisitor.js:163:35
 ❯ ValidatedResource.accept node_modules/@accordproject/concerto-core/.../typed.ts:73:23
 ❯ TypeVisitor.visitNodes node_modules/@accordproject/markdown-template/lib/TypeVisitor.js:113:12

TypeVisitor.js:163 calls property.isPrimitive() directly on the Concerto property. In concerto-core@4.x this method is no longer present on the property API — primitive-ness is determined via ModelUtil.isPrimitiveType(property.getFullyQualifiedTypeName()).

Expected

TypeVisitor works against concerto-core@4.x, e.g. by using ModelUtil.isPrimitiveType (which works in both 3.x and 4.x).

Versions

  • @accordproject/markdown-template@0.18.0
  • @accordproject/cicero-core@0.26.0
  • @accordproject/concerto-core@4.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions