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
JavaScript
;
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