@plastichub/osr-cad
Version:
This is a CLI(CommandLineInterface) toolset to convert 3D files, using Solidworks and other software.
56 lines • 2.14 kB
JavaScript
;
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