UNPKG

@thi.ng/axidraw

Version:

Minimal AxiDraw plotter/drawing machine controller for Node.js

18 lines (17 loc) 542 B
import { flatten1 } from "@thi.ng/transducers/flatten1"; import { repeatedly } from "@thi.ng/transducers/repeatedly"; import { DOWN, RESTORE, SAVE, UP } from "./commands.js"; const dip = (n, opts = {}) => { const down = DOWN(opts.downDelay, opts.down); const up = UP(opts.upDelay, opts.up); const main = flatten1( repeatedly( opts.commands ? () => [down, ...opts.commands(), up] : () => [down, up], n ) ); return opts.down !== void 0 || opts.up !== void 0 ? [SAVE, ...main, RESTORE] : main; }; export { dip };