root / HServer / 00.Server / 00.Program / node_modules / mongoose-legacy-pluralize / index.js
이력 | 보기 | 이력해설 | 다운로드 (1.8 KB)
1 | 39 | HKM | module.exports = pluralize; |
---|---|---|---|
2 | |||
3 | /**
|
||
4 | * Pluralization rules.
|
||
5 | *
|
||
6 | * These rules are applied while processing the argument to `toCollectionName`.
|
||
7 | *
|
||
8 | * @deprecated remove in 4.x gh-1350
|
||
9 | */
|
||
10 | |||
11 | exports.pluralization = [ |
||
12 | [/(m)an$/gi, '$1en'], |
||
13 | [/(pe)rson$/gi, '$1ople'], |
||
14 | [/(child)$/gi, '$1ren'], |
||
15 | [/^(ox)$/gi, '$1en'], |
||
16 | [/(ax|test)is$/gi, '$1es'], |
||
17 | [/(octop|vir)us$/gi, '$1i'], |
||
18 | [/(alias|status)$/gi, '$1es'], |
||
19 | [/(bu)s$/gi, '$1ses'], |
||
20 | [/(buffal|tomat|potat)o$/gi, '$1oes'], |
||
21 | [/([ti])um$/gi, '$1a'], |
||
22 | [/sis$/gi, 'ses'], |
||
23 | [/(?:([^f])fe|([lr])f)$/gi, '$1$2ves'], |
||
24 | [/(hive)$/gi, '$1s'], |
||
25 | [/([^aeiouy]|qu)y$/gi, '$1ies'], |
||
26 | [/(x|ch|ss|sh)$/gi, '$1es'], |
||
27 | [/(matr|vert|ind)ix|ex$/gi, '$1ices'], |
||
28 | [/([m|l])ouse$/gi, '$1ice'], |
||
29 | [/(kn|w|l)ife$/gi, '$1ives'], |
||
30 | [/(quiz)$/gi, '$1zes'], |
||
31 | [/s$/gi, 's'], |
||
32 | [/([^a-z])$/, '$1'], |
||
33 | [/$/gi, 's'] |
||
34 | ]; |
||
35 | var rules = exports.pluralization;
|
||
36 | |||
37 | /**
|
||
38 | * Uncountable words.
|
||
39 | *
|
||
40 | * These words are applied while processing the argument to `toCollectionName`.
|
||
41 | * @api public
|
||
42 | */
|
||
43 | |||
44 | exports.uncountables = [ |
||
45 | 'advice',
|
||
46 | 'energy',
|
||
47 | 'excretion',
|
||
48 | 'digestion',
|
||
49 | 'cooperation',
|
||
50 | 'health',
|
||
51 | 'justice',
|
||
52 | 'labour',
|
||
53 | 'machinery',
|
||
54 | 'equipment',
|
||
55 | 'information',
|
||
56 | 'pollution',
|
||
57 | 'sewage',
|
||
58 | 'paper',
|
||
59 | 'money',
|
||
60 | 'species',
|
||
61 | 'series',
|
||
62 | 'rain',
|
||
63 | 'rice',
|
||
64 | 'fish',
|
||
65 | 'sheep',
|
||
66 | 'moose',
|
||
67 | 'deer',
|
||
68 | 'news',
|
||
69 | 'expertise',
|
||
70 | 'status',
|
||
71 | 'media'
|
||
72 | ]; |
||
73 | var uncountables = exports.uncountables;
|
||
74 | |||
75 | /*!
|
||
76 | * Pluralize function.
|
||
77 | *
|
||
78 | * @author TJ Holowaychuk (extracted from _ext.js_)
|
||
79 | * @param {String} string to pluralize
|
||
80 | * @api private
|
||
81 | */
|
||
82 | |||
83 | function pluralize(str) { |
||
84 | var found;
|
||
85 | str = str.toLowerCase(); |
||
86 | if (!~uncountables.indexOf(str)) {
|
||
87 | found = rules.filter(function(rule) {
|
||
88 | return str.match(rule[0]); |
||
89 | }); |
||
90 | if (found[0]) { |
||
91 | return str.replace(found[0][0], found[0][1]); |
||
92 | } |
||
93 | } |
||
94 | return str;
|
||
95 | } |