@thi.ng/axidraw
Version:
Minimal AxiDraw plotter/drawing machine controller for Node.js
18 lines (17 loc) • 542 B
JavaScript
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
};