1 |
|
2 | (function() {
|
3 | module.exports = function(singular, plural) {
|
4 | var cases, change, changecase, format, pluralize;
|
5 | changecase = require('change-case');
|
6 | pluralize = require('pluralize');
|
7 | if (!singular || !singular.length) {
|
8 | throw new Error('"singular" is required in crystal.build.format()');
|
9 | }
|
10 | plural = plural || pluralize(singular);
|
11 | cases = ['camel', 'constant', 'dot', 'lower', 'param', 'pascal', 'path', 'sentence', 'snake', 'swap', 'title', 'ucFirst', 'upper'];
|
12 | change = function(str) {
|
13 | var c, changes, i, len;
|
14 | changes = {};
|
15 | for (i = 0, len = cases.length; i < len; i++) {
|
16 | c = cases[i];
|
17 | changes[c.toLowerCase()] = changecase[c](str);
|
18 | }
|
19 | return changes;
|
20 | };
|
21 | format = change(singular);
|
22 | format.plural = change(plural);
|
23 | return format;
|
24 | };
|
25 |
|
26 | }).call(this);
|