UNPKG

jspurefix

Version:
72 lines (64 loc) 2.09 kB
import { ContainedField, ContainedFieldType, ContainedFieldSet, ContainedGroupField, ContainedComponentField } from '../contained' import { FixDefinitions } from '../definition' import { FixDefinitionSource } from '../fix-versions' import { ContainedSetType } from '../dict-primitive' import _ = require('lodash') export class CompilerType { public readonly snaked: string constructor (public readonly definitions: FixDefinitions, public readonly set: ContainedFieldSet, public readonly qualifiedName: string) { const snake = _.snakeCase(this.qualifiedName) if (set.type === ContainedSetType.Msg) { this.snaked = `./${snake}` } else { this.snaked = `./set/${snake}` } } public getExtended (field: ContainedField): string { switch (field.type) { case ContainedFieldType.Group: { const gf = field as ContainedGroupField switch (this.definitions.source) { case FixDefinitionSource.QuickFix: { return this.qualifiedName + field.name } case FixDefinitionSource.FixmlRepo: { return gf.definition.name } default: { return field.name } } } case ContainedFieldType.Component: { const cf = field as ContainedComponentField switch (this.definitions.source) { case FixDefinitionSource.FixmlRepo: { return cf.definition.name } default: { return field.name } } } default: return field.name } } public getFieldGroupName (field: ContainedField) { switch (field.type) { case ContainedFieldType.Group: { const gf = field as ContainedGroupField switch (this.definitions.source) { case FixDefinitionSource.FixmlRepo: { return gf.definition.name } default: { return field.name } } } default: return field.name } } }