import logger from './util/logger' import parseString from './parseString' import denormalise from './denormalise' import toSVG from './toSVG' import toPolylines from './toPolylines' import groupEntitiesByLayer from './groupEntitiesByLayer' export default class Helper { constructor (contents) { if (!(typeof contents === 'string')) { throw Error('Helper constructor expects a DXF string') } this._contents = contents this._parsed = null this._denormalised = null } parse () { this._parsed = parseString(this._contents) logger.info('parsed:', this.parsed) return this._parsed } get parsed () { if (this._parsed === null) { this.parse() } return this._parsed } denormalise () { this._denormalised = denormalise(this.parsed) logger.info('denormalised:', this._denormalised) return this._denormalised } get denormalised () { if (!this._denormalised) { this.denormalise() } return this._denormalised } group () { this._groups = groupEntitiesByLayer(this.denormalised) } get groups () { if (!this._groups) { this.group() } return this._groups } toSVG () { return toSVG(this.parsed) } toPolylines () { return toPolylines(this.parsed) } }