UNPKG

@auttam/easycli

Version:

A quick and easy way of creating cli for your npm package.

66 lines (65 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.filterList = exports.separateWords = exports.camelCase = exports.pascalCase = exports.hyphenate = void 0; function hyphenate(name) { name = name || ''; name = pascalCase(name); return name.replace(/([A-Z])/g, ($1, $p, o) => { return o == 0 ? $1.toLowerCase() : '-' + $1.toLowerCase(); }); } exports.hyphenate = hyphenate; function pascalCase(name) { if (!name) return name; let words = name.split(/[-_.,:\s]/); words = words.map((word) => { return word.charAt(0).toUpperCase() + word.substr(1); }); return words.join(''); } exports.pascalCase = pascalCase; function camelCase(name) { name = pascalCase(name); return name.charAt(0).toLowerCase() + name.substr(1); } exports.camelCase = camelCase; function separateWords(text) { text = hyphenate(text); return text.split('-').map((word) => word.charAt(0).toUpperCase() + word.substr(1)).join(' '); } exports.separateWords = separateWords; function filterList(list, filter) { if (!filter || !list) return list; if (typeof filter == 'string') { filter = { include: [filter] }; } if (Array.isArray(filter)) { filter = { include: filter }; } if (Array.isArray(filter.include)) { list = list.filter(list => { var matched = false; filter.include.forEach((criteria) => { if (!matched && criteria) { matched = list.match(new RegExp(criteria)); } }); return !!matched; }); } if (Array.isArray(filter.exclude)) { list = list.filter(content => { var matched = false; filter.exclude.forEach((criteria) => { if (!matched && criteria) { matched = content.match(new RegExp(criteria)); } }); return !matched; }); } return list; } exports.filterList = filterList;