gerber-to-svg
Version:
Render individual Gerber / NC drill files as SVGs
46 lines (37 loc) • 1.12 kB
JavaScript
// runs gerber-to-svg on the gerber spec suite
const path = require('path')
const runParallel = require('run-parallel')
const runWaterfall = require('run-waterfall')
const debug = require('debug')('tracespace/gerber-to-svg/integration')
const wtg = require('whats-that-gerber')
const gerberToSvg = require('..')
module.exports = function getSuiteResults(suite, done) {
debug(`Rendering suite ${suite.name}`)
const specs = suite.specs || suite.layers
const specTasks = specs.map(spec => next => renderSpec(spec, next))
runWaterfall(
[
next => runParallel(specTasks, next),
(specs, next) => next(null, Object.assign(suite, {specs})),
],
done
)
}
function renderSpec(spec, done) {
debug(`Rendering ${spec.category} - ${spec.name}`)
const renderOptions = Object.assign(
{
id: path.basename(spec.filepath),
plotAsOutline: spec.type === wtg.TYPE_OUTLINE,
},
spec.options
)
runWaterfall(
[
next => gerberToSvg(spec.source, renderOptions, next),
(render, next) => next(null, Object.assign({render}, spec)),
],
done
)
}