#!/usr/bin/env node import {program} from "commander"; import {readFileSync} from "fs"; import {dirname, resolve} from "path"; import {fileURLToPath} from "url"; import {geoStitch} from "../src/index.js"; import read from "./read.js"; import write from "./write.js"; const version = JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), "../package.json"))).version; const options = program .version(version) .usage("[options] [file]") .description("Stitch equirectangular GeoJSON in degrees, removing antimeridian and polar cuts.") .option("-o, --out ", "output file name; defaults to “-” for stdout", "-") .option("-n, --newline-delimited", "use newline-delimited JSON") .parse(process.argv) .opts(); if (program.args.length === 0) program.args[0] = "-"; else if (program.args.length !== 1) { console.error(); console.error(" error: multiple input files"); console.error(); process.exit(1); } var reader = read(program.args[0], options.newlineDelimited, stitch).then(end), writer = write(options.out); reader.catch(error => { console.error(error.stack); }); function stitch(d) { return writer.write(JSON.stringify(geoStitch(d)) + "\n"); } function end() { return writer.end(); }