UNPKG

@plastichub/osr-cad

Version:

This is a CLI(CommandLineInterface) toolset to convert 3D files, using Solidworks and other software.

56 lines 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.register = void 0; const path = require("path"); const __1 = require(".."); const slic3r_argv_1 = require("../slic3r_argv"); const print_1 = require("../print"); const js_yaml_1 = require("js-yaml"); const objects_1 = require("@plastichub/core/objects"); const read_1 = require("@plastichub/fs/read"); const SLIC3R_DEFAULTS = () => path.resolve(path.join(__dirname, '../profiles/slic3r_defaults.yaml')); const defaults = (defaults, options) => { let key, returnObject; returnObject = (0, objects_1.clone)(options) || {}; for (key in defaults) if (defaults.hasOwnProperty(key) && typeof returnObject[key] === 'undefined') returnObject[key] = defaults[key]; return returnObject; }; const register = (cli) => { const defaults_path = SLIC3R_DEFAULTS(); cli.parserConfiguration({ "short-option-groups": true, "camel-case-expansion": false }); const defaultsRaw = (0, read_1.sync)(defaults_path); let defaults_json = (0, js_yaml_1.load)(defaultsRaw); let options = (yargs) => { let opts = (0, slic3r_argv_1.defaultOptions)(yargs); Object.keys(defaults_json.properties).forEach((k) => { const val = defaults_json.properties[k]; switch (defaults_json.properties[k].type) { case 'object': case 'boolean': case 'number': case 'string': { opts = opts.option(k, val); break; } } }); return opts; }; return cli.command('slice', 'Run Slic3r', options, async (argv) => { if (argv.help) { return; } let options = (0, slic3r_argv_1.sanitize)(argv); options = defaults(defaults_json, options); options.debug && __1.logger.info("options " + argv.dst, options); return (0, print_1.convert)(options); }); }; exports.register = register; //# sourceMappingURL=slice.js.map