UNPKG

node-swatch-names

Version:

Swatch-names automatically and consistently names Photoshop swatches to be shared among frontend developers and designers. Exports colors to SASS variables and JSON for use in code.

76 lines (63 loc) 6.58 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveFile = exports.readFile = exports.listFiles = undefined; var _fsExtra = require('fs-extra'); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require('path'); var _glob = require('glob'); var _glob2 = _interopRequireDefault(_glob); var _chalk = require('chalk'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * List certain file types below the supplied root directory * * @param {string} [root = process.cwd()] - The parent directory to begin the search * @param {string} [extension = 'aco'] - File extension to list * @returns {Promise} - Resolves to an array of file paths */ /* eslint-disable no-console */ const listFiles = exports.listFiles = (root = process.cwd(), extension = 'aco') => { const pattern = `**/*.${extension}`; const ignore = ['**/node_modules/**']; return new Promise((resolve, reject) => { (0, _glob2.default)(pattern, { cwd: root, ignore }, (err, files) => { if (err) return reject(err); resolve(files); }); }); }; /** * Reads the supplied file into Buffer * * @param {string} file - The path to the file to be read * @returns {Promise} - Resolves to a Buffer with the file's content */ const readFile = exports.readFile = file => { return new Promise((resolve, reject) => { _fsExtra2.default.readFile(file, 'hex', (err, data) => { if (err) return reject(err); resolve(data); }); }); }; /** * * @param {string} data - The data to be written * @param {string} fileName - Desired path with filename and extension * @param {string} [message = 'File saved to: '] - The message to be displayed in the console after successful save * @returns {Promise} */ const saveFile = exports.saveFile = (data, fileName, message = 'File saved to: ') => { return new Promise((resolve, reject) => { _fsExtra2.default.ensureDir((0, _path.dirname)(fileName)).then(() => { _fsExtra2.default.writeFile(fileName, data, err => { if (err) return reject(err); console.log(_chalk.green.bold(message + fileName)); resolve(); }); }); }); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW8uanMiXSwibmFtZXMiOlsibGlzdEZpbGVzIiwicm9vdCIsInByb2Nlc3MiLCJjd2QiLCJleHRlbnNpb24iLCJwYXR0ZXJuIiwiaWdub3JlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnIiLCJmaWxlcyIsInJlYWRGaWxlIiwiZmlsZSIsImRhdGEiLCJzYXZlRmlsZSIsImZpbGVOYW1lIiwibWVzc2FnZSIsImVuc3VyZURpciIsInRoZW4iLCJ3cml0ZUZpbGUiLCJjb25zb2xlIiwibG9nIiwiYm9sZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7O0FBUEE7O0FBY08sTUFBTUEsZ0NBQVksQ0FBQ0MsT0FBT0MsUUFBUUMsR0FBUixFQUFSLEVBQXVCQyxZQUFZLEtBQW5DLEtBQTZDO0FBQ3JFLE9BQU1DLFVBQVcsUUFBT0QsU0FBVSxFQUFsQztBQUNBLE9BQU1FLFNBQVMsQ0FDZCxvQkFEYyxDQUFmOztBQUlBLFFBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUN2QyxzQkFBS0osT0FBTCxFQUFjLEVBQUNGLEtBQUtGLElBQU4sRUFBWUssTUFBWixFQUFkLEVBQW1DLENBQUNJLEdBQUQsRUFBTUMsS0FBTixLQUFnQjtBQUNsRCxPQUFJRCxHQUFKLEVBQVMsT0FBT0QsT0FBT0MsR0FBUCxDQUFQO0FBQ1RGLFdBQVFHLEtBQVI7QUFDQSxHQUhEO0FBSUEsRUFMTSxDQUFQO0FBTUEsQ0FaTTs7QUFjUDs7Ozs7O0FBTU8sTUFBTUMsOEJBQVlDLElBQUQsSUFBVTtBQUNqQyxRQUFPLElBQUlOLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDdkMsb0JBQUdHLFFBQUgsQ0FBWUMsSUFBWixFQUFrQixLQUFsQixFQUF5QixDQUFDSCxHQUFELEVBQU1JLElBQU4sS0FBZTtBQUN2QyxPQUFJSixHQUFKLEVBQVMsT0FBT0QsT0FBT0MsR0FBUCxDQUFQO0FBQ1RGLFdBQVFNLElBQVI7QUFDQSxHQUhEO0FBSUEsRUFMTSxDQUFQO0FBTUEsQ0FQTTs7QUFTUDs7Ozs7OztBQU9PLE1BQU1DLDhCQUFXLENBQUNELElBQUQsRUFBT0UsUUFBUCxFQUFpQkMsVUFBVSxpQkFBM0IsS0FBaUQ7QUFDeEUsUUFBTyxJQUFJVixPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3ZDLG9CQUFHUyxTQUFILENBQWEsbUJBQVFGLFFBQVIsQ0FBYixFQUNFRyxJQURGLENBQ08sTUFBTTtBQUNYLHFCQUFHQyxTQUFILENBQWFKLFFBQWIsRUFBdUJGLElBQXZCLEVBQThCSixHQUFELElBQVM7QUFDckMsUUFBSUEsR0FBSixFQUFTLE9BQU9ELE9BQU9DLEdBQVAsQ0FBUDtBQUNUVyxZQUFRQyxHQUFSLENBQVksYUFBTUMsSUFBTixDQUFXTixVQUFVRCxRQUFyQixDQUFaO0FBQ0FSO0FBQ0EsSUFKRDtBQUtBLEdBUEY7QUFRQSxFQVRNLENBQVA7QUFVQSxDQVhNIiwiZmlsZSI6ImlvLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHtkaXJuYW1lfSBmcm9tICdwYXRoJztcbmltcG9ydCBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHtncmVlbn0gZnJvbSAnY2hhbGsnO1xuXG4vKipcbiAqIExpc3QgY2VydGFpbiBmaWxlIHR5cGVzIGJlbG93IHRoZSBzdXBwbGllZCByb290IGRpcmVjdG9yeVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcm9vdCA9IHByb2Nlc3MuY3dkKCldIC0gVGhlIHBhcmVudCBkaXJlY3RvcnkgdG8gYmVnaW4gdGhlIHNlYXJjaFxuICogQHBhcmFtIHtzdHJpbmd9IFtleHRlbnNpb24gPSAnYWNvJ10gLSBGaWxlIGV4dGVuc2lvbiB0byBsaXN0XG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gLSBSZXNvbHZlcyB0byBhbiBhcnJheSBvZiBmaWxlIHBhdGhzXG4gKi9cbmV4cG9ydCBjb25zdCBsaXN0RmlsZXMgPSAocm9vdCA9IHByb2Nlc3MuY3dkKCksIGV4dGVuc2lvbiA9ICdhY28nKSA9PiB7XG5cdGNvbnN0IHBhdHRlcm4gPSBgKiovKi4ke2V4dGVuc2lvbn1gO1xuXHRjb25zdCBpZ25vcmUgPSBbXG5cdFx0JyoqL25vZGVfbW9kdWxlcy8qKidcblx0XTtcblxuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGdsb2IocGF0dGVybiwge2N3ZDogcm9vdCwgaWdub3JlfSwgKGVyciwgZmlsZXMpID0+IHtcblx0XHRcdGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcblx0XHRcdHJlc29sdmUoZmlsZXMpO1xuXHRcdH0pO1xuXHR9KTtcbn07XG5cbi8qKlxuICogUmVhZHMgdGhlIHN1cHBsaWVkIGZpbGUgaW50byBCdWZmZXJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZSAtIFRoZSBwYXRoIHRvIHRoZSBmaWxlIHRvIGJlIHJlYWRcbiAqIEByZXR1cm5zIHtQcm9taXNlfSAtIFJlc29sdmVzIHRvIGEgQnVmZmVyIHdpdGggdGhlIGZpbGUncyBjb250ZW50XG4gKi9cbmV4cG9ydCBjb25zdCByZWFkRmlsZSA9IChmaWxlKSA9PiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0ZnMucmVhZEZpbGUoZmlsZSwgJ2hleCcsIChlcnIsIGRhdGEpID0+IHtcblx0XHRcdGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcblx0XHRcdHJlc29sdmUoZGF0YSk7XG5cdFx0fSk7XG5cdH0pO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgLSBUaGUgZGF0YSB0byBiZSB3cml0dGVuXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWUgLSBEZXNpcmVkIHBhdGggd2l0aCBmaWxlbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2UgPSAnRmlsZSBzYXZlZCB0bzogJ10gLSBUaGUgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNvbnNvbGUgYWZ0ZXIgc3VjY2Vzc2Z1bCBzYXZlXG4gKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVGaWxlID0gKGRhdGEsIGZpbGVOYW1lLCBtZXNzYWdlID0gJ0ZpbGUgc2F2ZWQgdG86ICcpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRmcy5lbnN1cmVEaXIoZGlybmFtZShmaWxlTmFtZSkpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdGZzLndyaXRlRmlsZShmaWxlTmFtZSwgZGF0YSwgKGVycikgPT4ge1xuXHRcdFx0XHRcdGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhncmVlbi5ib2xkKG1lc3NhZ2UgKyBmaWxlTmFtZSkpO1xuXHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fSk7XG59O1xuIl19