UNPKG

fix-over-tcp

Version:

Custom TCP FIX protocol(beta

74 lines (64 loc) 2.44 kB
import fs from 'fs'; import { MESSAGE_CONTENTS } from './../spec/SpecMessageContents'; import { groupBy } from './../src/util/util'; import { Components } from './../src/components/Components'; const messageContents = MESSAGE_CONTENTS; const components = new Components(); const mappedComponents = {}; const messageContentsById = groupBy(messageContents, 'ComponentID'); console.log('Building message content cache map...'); messageContents.forEach((messageContent) => { const componentsById = messageContentsById[messageContent.ComponentID]; mappedComponents[messageContent.ComponentID] = componentsById.map((component) => ({ componentID: component.ComponentID, tagText: component.TagText, indent: component.Indent, position: component.Position, reqd: component.Reqd, description: component.Description, added: component.Added, addedEP: component.AddedEP, deprecated: component.Deprecated, validated: false, components: components.findByName(component.TagText) ? messageContents .filter((content) => content.ComponentID === components.findByName(component.TagText).ComponentID) .map((childComponent) => ({ componentID: childComponent.ComponentID, tagText: childComponent.TagText, indent: childComponent.Indent, position: childComponent.Position, reqd: childComponent.Reqd, description: childComponent.Description, added: childComponent.Added, addedEP: childComponent.AddedEP, deprecated: childComponent.Deprecated, validated: false })) : [] })); }); const outputPath = 'prebuild/built/'; const outputFilename = `${outputPath}MessageContents.prebuilt.json`; console.log(`Built message content cache map, writing to ${outputFilename}.`); let err = null; if (!fs.existsSync(outputPath)) { err = fs.mkdirSync(outputPath); if (err) { console.error(err); process.exit(1); } } if (fs.existsSync(outputFilename)) { fs.unlinkSync(outputFilename); } err = fs.writeFileSync( outputFilename, JSON.stringify(mappedComponents), 'utf8' ); if (err) { console.error(err); process.exit(2); } console.log('Prebuild step done.');