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
Reproduction
@accordproject/markdown-template@0.18.0runs against@accordproject/concerto-core@4.x(as bundled via@accordproject/cicero-core@0.26.0).Triggered by
accordproject/cicero-template-libraryPR #484, templatesrc/bill-of-lading, after fixing its grammar to wrap optional properties in{{#optional ...}}{{/optional}}blocks.Observed
TypeVisitor.js:163callsproperty.isPrimitive()directly on the Concerto property. Inconcerto-core@4.xthis method is no longer present on the property API — primitive-ness is determined viaModelUtil.isPrimitiveType(property.getFullyQualifiedTypeName()).Expected
TypeVisitorworks againstconcerto-core@4.x, e.g. by usingModelUtil.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