UNPKG

plist2

Version:

Converts between .tmLanguage(.plist), .json, .cson and .yaml formats

105 lines (102 loc) 3.05 kB
/* eslint-disable */ /* dester builds: cli.ts */ 'use strict'; var fs = require('fs'); var path = require('path'); var __ = require('..'); function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); var path__default = /*#__PURE__*/_interopDefaultLegacy(path); /* filename: cli.ts timestamp: 2024-12-13T15:18:03.721Z */ var regex = /^\.((?:j|c)son|ya?ml).*/i; var getExt = v => { var ext = path__default["default"].extname(v) || '.' + path__default["default"].basename(v); var file = (ext.match(regex) || ['', 'plist'])[1].toLowerCase(); // console.log('ext: ' + ext, file) return file === 'yml' ? 'yaml' : file; }; var input = process.argv[2] || ''; var output = process.argv[3] || ''; if (!input) console.error('ERROR: Need to specify the "input" file');else if (!output) console.error('ERROR: Need to specify the "output" file or ext');else { input = path__default["default"].resolve(input); output = path__default["default"].resolve(output); var bn = path__default["default"].basename(output); if (!path__default["default"].extname(output) || !bn) output = input + (bn[0] === '.' ? '' : '.') + bn; // console.log(input) // console.log(output) var inputExt = getExt(input); var outputExt = getExt(output); // console.log(inputExt) // console.log(outputExt) var parser; switch (inputExt + '2' + outputExt) { case 'cson2json': parser = __.cson2json; break; case 'cson2plist': parser = __.cson2plist; break; case 'cson2yaml': parser = __.cson2yaml; break; case 'cson2cson': parser = source => __.js2cson(__.cson2js(source)); break; case 'json2cson': parser = __.json2cson; break; case 'json2plist': parser = __.json2plist; break; case 'json2yaml': parser = __.json2yaml; break; case 'json2json': parser = source => __.js2json(__.json2js(source)); break; case 'plist2cson': parser = __.plist2cson; break; case 'plist2json': parser = __.plist2json; break; case 'plist2yaml': parser = __.plist2yaml; break; case 'plist2plist': parser = source => __.js2plist(__.plist2js(source)); break; case 'yaml2cson': parser = __.yaml2cson; break; case 'yaml2json': parser = __.yaml2json; break; case 'yaml2plist': parser = __.yaml2plist; break; case 'yaml2yaml': parser = source => __.js2yaml(__.yaml2js(source)); break; default: throw new Error(); } if (!parser) console.error('ERROR: "' + inputExt + '" and "' + outputExt + '" - not work');else { try { fs__default["default"].mkdirSync(path__default["default"].dirname(output), { recursive: true }); fs__default["default"].writeFileSync(output, parser(fs__default["default"].readFileSync(input, 'utf8'))); } catch (e) { console.error(e); } } }