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.
84 lines (71 loc) • 9.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.jsPath = exports.scssPath = exports.outputPath = exports.overwrite = exports.swatch = exports.newPath = exports.differentPath = exports.MESSAGES = undefined;
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _chalk = require('chalk');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const MESSAGES = exports.MESSAGES = {
specifyDifferentPath: 'Would you like to specify a different path?',
pathToYourSwatches: 'Path to your swatches:',
swatchFileToProcess: 'Which swatch file do you want to process?',
confirmOverwrite: 'Overwrite swatch file?',
outputPath: 'Filename and location of the new swatch file:',
saveScss: 'Save SCSS file / no save if left empty:',
saveJs: 'Save JS file / no save if left empty:',
incorrectScssPath: _chalk.red.bold('Invalid .scss file path. Enter a valid file path relative to project root.'),
incorrectJsPath: _chalk.red.bold('Invalid .js file path. Enter a valid file path relative to project root.')
};
const differentPath = exports.differentPath = {
type: 'confirm',
name: 'differentPath',
message: MESSAGES.specifyDifferentPath,
default: true
};
const newPath = exports.newPath = (root = process.cwd()) => ({
type: 'path',
name: 'newPath',
cwd: root,
directoryOnly: true,
message: MESSAGES.pathToYourSwatches,
default: root,
when: answers => answers.differentPath
});
const swatch = exports.swatch = files => ({
type: 'autocomplete',
name: 'swatch',
message: MESSAGES.swatchFileToProcess,
source: (answers, input) => Promise.resolve(files.filter(file => !input || file.toLowerCase().indexOf(input.toLowerCase()) >= 0))
});
const overwrite = exports.overwrite = {
type: 'confirm',
name: 'overwrite',
message: MESSAGES.confirmOverwrite,
default: false
};
const outputPath = exports.outputPath = def => ({
type: 'input',
name: 'outputPath',
message: MESSAGES.outputPath,
default: def,
when: answers => !answers.overwrite
});
const scssPath = exports.scssPath = (root = process.cwd(), noSave) => ({
type: 'path',
name: 'scssPath',
message: MESSAGES.saveScss,
cwd: root,
validate: answer => answer === root || _lodash2.default.endsWith(answer.toLowerCase(), '.scss') ? true : MESSAGES.incorrectScssPath,
filter: answer => answer === root ? noSave : answer
});
const jsPath = exports.jsPath = (root, noSave) => ({
type: 'path',
name: 'jsPath',
message: MESSAGES.saveJs,
cwd: root,
validate: answer => answer === root || _lodash2.default.endsWith(answer.toLowerCase(), '.js') ? true : MESSAGES.incorrectJsPath,
filter: answer => answer === root ? noSave : answer
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcHJvbXB0cy5qcyJdLCJuYW1lcyI6WyJNRVNTQUdFUyIsInNwZWNpZnlEaWZmZXJlbnRQYXRoIiwicGF0aFRvWW91clN3YXRjaGVzIiwic3dhdGNoRmlsZVRvUHJvY2VzcyIsImNvbmZpcm1PdmVyd3JpdGUiLCJvdXRwdXRQYXRoIiwic2F2ZVNjc3MiLCJzYXZlSnMiLCJpbmNvcnJlY3RTY3NzUGF0aCIsImJvbGQiLCJpbmNvcnJlY3RKc1BhdGgiLCJkaWZmZXJlbnRQYXRoIiwidHlwZSIsIm5hbWUiLCJtZXNzYWdlIiwiZGVmYXVsdCIsIm5ld1BhdGgiLCJyb290IiwicHJvY2VzcyIsImN3ZCIsImRpcmVjdG9yeU9ubHkiLCJ3aGVuIiwiYW5zd2VycyIsInN3YXRjaCIsImZpbGVzIiwic291cmNlIiwiaW5wdXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZpbHRlciIsImZpbGUiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJvdmVyd3JpdGUiLCJkZWYiLCJzY3NzUGF0aCIsIm5vU2F2ZSIsInZhbGlkYXRlIiwiYW5zd2VyIiwiZW5kc1dpdGgiLCJqc1BhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBRU8sTUFBTUEsOEJBQVc7QUFDdkJDLHVCQUFzQiw2Q0FEQztBQUV2QkMscUJBQW9CLHdCQUZHO0FBR3ZCQyxzQkFBcUIsMkNBSEU7QUFJdkJDLG1CQUFrQix3QkFKSztBQUt2QkMsYUFBWSwrQ0FMVztBQU12QkMsV0FBVSx5Q0FOYTtBQU92QkMsU0FBUSx1Q0FQZTtBQVF2QkMsb0JBQW1CLFdBQUlDLElBQUosQ0FBUyw0RUFBVCxDQVJJO0FBU3ZCQyxrQkFBaUIsV0FBSUQsSUFBSixDQUFTLDBFQUFUO0FBVE0sQ0FBakI7O0FBYUEsTUFBTUUsd0NBQWdCO0FBQzVCQyxPQUFNLFNBRHNCO0FBRTVCQyxPQUFNLGVBRnNCO0FBRzVCQyxVQUFTZCxTQUFTQyxvQkFIVTtBQUk1QmMsVUFBUztBQUptQixDQUF0Qjs7QUFPQSxNQUFNQyw0QkFBVSxDQUFDQyxPQUFPQyxRQUFRQyxHQUFSLEVBQVIsTUFBMkI7QUFDakRQLE9BQU0sTUFEMkM7QUFFakRDLE9BQU0sU0FGMkM7QUFHakRNLE1BQUtGLElBSDRDO0FBSWpERyxnQkFBZSxJQUprQztBQUtqRE4sVUFBU2QsU0FBU0Usa0JBTCtCO0FBTWpEYSxVQUFTRSxJQU53QztBQU9qREksT0FBT0MsT0FBRCxJQUFhQSxRQUFRWDtBQVBzQixDQUEzQixDQUFoQjs7QUFVQSxNQUFNWSwwQkFBVUMsS0FBRCxLQUFZO0FBQ2pDWixPQUFNLGNBRDJCO0FBRWpDQyxPQUFNLFFBRjJCO0FBR2pDQyxVQUFTZCxTQUFTRyxtQkFIZTtBQUlqQ3NCLFNBQVEsQ0FBQ0gsT0FBRCxFQUFVSSxLQUFWLEtBQW9CQyxRQUFRQyxPQUFSLENBQzNCSixNQUFNSyxNQUFOLENBQWFDLFFBQVEsQ0FBQ0osS0FBRCxJQUFVSSxLQUFLQyxXQUFMLEdBQW1CQyxPQUFuQixDQUEyQk4sTUFBTUssV0FBTixFQUEzQixLQUFtRCxDQUFsRixDQUQyQjtBQUpLLENBQVosQ0FBZjs7QUFTQSxNQUFNRSxnQ0FBWTtBQUN4QnJCLE9BQU0sU0FEa0I7QUFFeEJDLE9BQU0sV0FGa0I7QUFHeEJDLFVBQVNkLFNBQVNJLGdCQUhNO0FBSXhCVyxVQUFTO0FBSmUsQ0FBbEI7O0FBT0EsTUFBTVYsa0NBQWM2QixHQUFELEtBQVU7QUFDbkN0QixPQUFNLE9BRDZCO0FBRW5DQyxPQUFNLFlBRjZCO0FBR25DQyxVQUFTZCxTQUFTSyxVQUhpQjtBQUluQ1UsVUFBU21CLEdBSjBCO0FBS25DYixPQUFPQyxPQUFELElBQWEsQ0FBQ0EsUUFBUVc7QUFMTyxDQUFWLENBQW5COztBQVFBLE1BQU1FLDhCQUFXLENBQUNsQixPQUFPQyxRQUFRQyxHQUFSLEVBQVIsRUFBdUJpQixNQUF2QixNQUFtQztBQUMxRHhCLE9BQU0sTUFEb0Q7QUFFMURDLE9BQU0sVUFGb0Q7QUFHMURDLFVBQVNkLFNBQVNNLFFBSHdDO0FBSTFEYSxNQUFLRixJQUpxRDtBQUsxRG9CLFdBQVVDLFVBQVVBLFdBQVdyQixJQUFYLElBQW1CLGlCQUFFc0IsUUFBRixDQUFXRCxPQUFPUCxXQUFQLEVBQVgsRUFBaUMsT0FBakMsQ0FBbkIsR0FBK0QsSUFBL0QsR0FBc0UvQixTQUFTUSxpQkFMekM7QUFNMURxQixTQUFRUyxVQUFVQSxXQUFXckIsSUFBWCxHQUFrQm1CLE1BQWxCLEdBQTJCRTtBQU5hLENBQW5DLENBQWpCOztBQVNBLE1BQU1FLDBCQUFTLENBQUN2QixJQUFELEVBQU9tQixNQUFQLE1BQW1CO0FBQ3hDeEIsT0FBTSxNQURrQztBQUV4Q0MsT0FBTSxRQUZrQztBQUd4Q0MsVUFBU2QsU0FBU08sTUFIc0I7QUFJeENZLE1BQUtGLElBSm1DO0FBS3hDb0IsV0FBVUMsVUFBVUEsV0FBV3JCLElBQVgsSUFBbUIsaUJBQUVzQixRQUFGLENBQVdELE9BQU9QLFdBQVAsRUFBWCxFQUFpQyxLQUFqQyxDQUFuQixHQUE2RCxJQUE3RCxHQUFvRS9CLFNBQVNVLGVBTHpEO0FBTXhDbUIsU0FBUVMsVUFBVUEsV0FBV3JCLElBQVgsR0FBa0JtQixNQUFsQixHQUEyQkU7QUFOTCxDQUFuQixDQUFmIiwiZmlsZSI6InByb21wdHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtyZWR9IGZyb20gJ2NoYWxrJztcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VTID0ge1xuXHRzcGVjaWZ5RGlmZmVyZW50UGF0aDogJ1dvdWxkIHlvdSBsaWtlIHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcGF0aD8nLFxuXHRwYXRoVG9Zb3VyU3dhdGNoZXM6ICdQYXRoIHRvIHlvdXIgc3dhdGNoZXM6Jyxcblx0c3dhdGNoRmlsZVRvUHJvY2VzczogJ1doaWNoIHN3YXRjaCBmaWxlIGRvIHlvdSB3YW50IHRvIHByb2Nlc3M/Jyxcblx0Y29uZmlybU92ZXJ3cml0ZTogJ092ZXJ3cml0ZSBzd2F0Y2ggZmlsZT8nLFxuXHRvdXRwdXRQYXRoOiAnRmlsZW5hbWUgYW5kIGxvY2F0aW9uIG9mIHRoZSBuZXcgc3dhdGNoIGZpbGU6Jyxcblx0c2F2ZVNjc3M6ICdTYXZlIFNDU1MgZmlsZSAvIG5vIHNhdmUgaWYgbGVmdCBlbXB0eTonLFxuXHRzYXZlSnM6ICdTYXZlIEpTIGZpbGUgLyBubyBzYXZlIGlmIGxlZnQgZW1wdHk6Jyxcblx0aW5jb3JyZWN0U2Nzc1BhdGg6IHJlZC5ib2xkKCdJbnZhbGlkIC5zY3NzIGZpbGUgcGF0aC4gRW50ZXIgYSB2YWxpZCBmaWxlIHBhdGggcmVsYXRpdmUgdG8gcHJvamVjdCByb290LicpLFxuXHRpbmNvcnJlY3RKc1BhdGg6IHJlZC5ib2xkKCdJbnZhbGlkIC5qcyBmaWxlIHBhdGguIEVudGVyIGEgdmFsaWQgZmlsZSBwYXRoIHJlbGF0aXZlIHRvIHByb2plY3Qgcm9vdC4nKVxufTtcblxuXG5leHBvcnQgY29uc3QgZGlmZmVyZW50UGF0aCA9IHtcblx0dHlwZTogJ2NvbmZpcm0nLFxuXHRuYW1lOiAnZGlmZmVyZW50UGF0aCcsXG5cdG1lc3NhZ2U6IE1FU1NBR0VTLnNwZWNpZnlEaWZmZXJlbnRQYXRoLFxuXHRkZWZhdWx0OiB0cnVlXG59O1xuXG5leHBvcnQgY29uc3QgbmV3UGF0aCA9IChyb290ID0gcHJvY2Vzcy5jd2QoKSkgPT4gKHtcblx0dHlwZTogJ3BhdGgnLFxuXHRuYW1lOiAnbmV3UGF0aCcsXG5cdGN3ZDogcm9vdCxcblx0ZGlyZWN0b3J5T25seTogdHJ1ZSxcblx0bWVzc2FnZTogTUVTU0FHRVMucGF0aFRvWW91clN3YXRjaGVzLFxuXHRkZWZhdWx0OiByb290LFxuXHR3aGVuOiAoYW5zd2VycykgPT4gYW5zd2Vycy5kaWZmZXJlbnRQYXRoXG59KTtcblxuZXhwb3J0IGNvbnN0IHN3YXRjaCA9IChmaWxlcykgPT4gKHtcblx0dHlwZTogJ2F1dG9jb21wbGV0ZScsXG5cdG5hbWU6ICdzd2F0Y2gnLFxuXHRtZXNzYWdlOiBNRVNTQUdFUy5zd2F0Y2hGaWxlVG9Qcm9jZXNzLFxuXHRzb3VyY2U6IChhbnN3ZXJzLCBpbnB1dCkgPT4gUHJvbWlzZS5yZXNvbHZlKFxuXHRcdGZpbGVzLmZpbHRlcihmaWxlID0+ICFpbnB1dCB8fCBmaWxlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpbnB1dC50b0xvd2VyQ2FzZSgpKSA+PSAwKVxuXHQpXG59KTtcblxuZXhwb3J0IGNvbnN0IG92ZXJ3cml0ZSA9IHtcblx0dHlwZTogJ2NvbmZpcm0nLFxuXHRuYW1lOiAnb3ZlcndyaXRlJyxcblx0bWVzc2FnZTogTUVTU0FHRVMuY29uZmlybU92ZXJ3cml0ZSxcblx0ZGVmYXVsdDogZmFsc2Vcbn07XG5cbmV4cG9ydCBjb25zdCBvdXRwdXRQYXRoID0gKGRlZikgPT4gKHtcblx0dHlwZTogJ2lucHV0Jyxcblx0bmFtZTogJ291dHB1dFBhdGgnLFxuXHRtZXNzYWdlOiBNRVNTQUdFUy5vdXRwdXRQYXRoLFxuXHRkZWZhdWx0OiBkZWYsXG5cdHdoZW46IChhbnN3ZXJzKSA9PiAhYW5zd2Vycy5vdmVyd3JpdGVcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2Nzc1BhdGggPSAocm9vdCA9IHByb2Nlc3MuY3dkKCksIG5vU2F2ZSkgPT4gKHtcblx0dHlwZTogJ3BhdGgnLFxuXHRuYW1lOiAnc2Nzc1BhdGgnLFxuXHRtZXNzYWdlOiBNRVNTQUdFUy5zYXZlU2Nzcyxcblx0Y3dkOiByb290LFxuXHR2YWxpZGF0ZTogYW5zd2VyID0+IGFuc3dlciA9PT0gcm9vdCB8fCBfLmVuZHNXaXRoKGFuc3dlci50b0xvd2VyQ2FzZSgpLCAnLnNjc3MnKSA/IHRydWUgOiBNRVNTQUdFUy5pbmNvcnJlY3RTY3NzUGF0aCxcblx0ZmlsdGVyOiBhbnN3ZXIgPT4gYW5zd2VyID09PSByb290ID8gbm9TYXZlIDogYW5zd2VyXG59KTtcblxuZXhwb3J0IGNvbnN0IGpzUGF0aCA9IChyb290LCBub1NhdmUpID0+ICh7XG5cdHR5cGU6ICdwYXRoJyxcblx0bmFtZTogJ2pzUGF0aCcsXG5cdG1lc3NhZ2U6IE1FU1NBR0VTLnNhdmVKcyxcblx0Y3dkOiByb290LFxuXHR2YWxpZGF0ZTogYW5zd2VyID0+IGFuc3dlciA9PT0gcm9vdCB8fCBfLmVuZHNXaXRoKGFuc3dlci50b0xvd2VyQ2FzZSgpLCAnLmpzJykgPyB0cnVlIDogTUVTU0FHRVMuaW5jb3JyZWN0SnNQYXRoLFxuXHRmaWx0ZXI6IGFuc3dlciA9PiBhbnN3ZXIgPT09IHJvb3QgPyBub1NhdmUgOiBhbnN3ZXJcbn0pOyJdfQ==