1 | 'use strict';
|
2 |
|
3 | const {
|
4 | camelize, duration, formatBytes, formatNumber, milliseconds, ordinal, precisionRound,
|
5 | } = require('./utils');
|
6 |
|
7 | module.exports = {
|
8 | binary (value) {
|
9 | if (!value) {
|
10 | return '';
|
11 | }
|
12 | return Number(value).toString(2);
|
13 | },
|
14 | bytes (value, options) {
|
15 | if (!value) {
|
16 | return '';
|
17 | }
|
18 | value = Number(value);
|
19 | return formatBytes(value, options);
|
20 | },
|
21 | camelcase (value) {
|
22 | if (!value) {
|
23 | return '';
|
24 | }
|
25 | value = value.toString();
|
26 | return camelize(value);
|
27 | },
|
28 | capitalize (value) {
|
29 | if (!value) {
|
30 | return '';
|
31 | }
|
32 | value = value.toString();
|
33 | return value.charAt(0).toUpperCase() + value.slice(1);
|
34 | },
|
35 | currency (value, symbol = '$') {
|
36 | if (!value) {
|
37 | return '';
|
38 | }
|
39 | return `${ symbol }${ precisionRound(value) }`;
|
40 | },
|
41 | degrees (radians = 0) {
|
42 | return radians * (180 / Math.PI);
|
43 | },
|
44 | duration (value, options) {
|
45 | if (!value) {
|
46 | return '';
|
47 | }
|
48 | return duration(value, options);
|
49 | },
|
50 | hexadecimal (value) {
|
51 | if (!value) {
|
52 | return '';
|
53 | }
|
54 | return Number(value).toString(16);
|
55 | },
|
56 | json (value, indent = 2) {
|
57 | if (value) {
|
58 | return '';
|
59 | }
|
60 | return JSON.stringify(value, null, indent);
|
61 | },
|
62 | kebabcase (value) {
|
63 | if (!value) {
|
64 | return '';
|
65 | }
|
66 | return value.toString().trim().
|
67 | toLowerCase().
|
68 | replace(/\s+/g, '-');
|
69 | },
|
70 | lowercase (value) {
|
71 | if (!value) {
|
72 | return '';
|
73 | }
|
74 | return value.toString().toLowerCase();
|
75 | },
|
76 | milliseconds (value) {
|
77 | if (!value) {
|
78 | return 0;
|
79 | }
|
80 | return milliseconds(value);
|
81 | },
|
82 | number (value, options = { numeral: true }) {
|
83 | return formatNumber(value, options);
|
84 | },
|
85 | octal (value) {
|
86 | if (!value) {
|
87 | return '';
|
88 | }
|
89 | return Number(value).toString(8);
|
90 | },
|
91 | ordinal (value) {
|
92 | if (!value) {
|
93 | return '';
|
94 | }
|
95 | return ordinal(value);
|
96 | },
|
97 | pascalcase (value) {
|
98 | if (!value) {
|
99 | return '';
|
100 | }
|
101 | return value.replace(/\w\S*/g, (word) => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase());
|
102 | },
|
103 | pluralize (word, count, form = '$1s') {
|
104 | if (count === 1) {
|
105 | return word;
|
106 | }
|
107 | return form.replace('$1', word);
|
108 | },
|
109 | radians (degrees = 0) {
|
110 | return degrees * (Math.PI / 180);
|
111 | },
|
112 | reverse (value) {
|
113 | if (!value) {
|
114 | return '';
|
115 | }
|
116 | return value.
|
117 | toString().
|
118 | split('').
|
119 | reverse().
|
120 | join('');
|
121 | },
|
122 | sentencecase (value) {
|
123 | if (!value) {
|
124 | return '';
|
125 | }
|
126 | return value.charAt(0).toUpperCase() + value.substring(1).toLowerCase();
|
127 | },
|
128 | snakecase (value) {
|
129 | if (!value) {
|
130 | return '';
|
131 | }
|
132 | return value.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).
|
133 | map(word => word.toLowerCase()).
|
134 | join('_');
|
135 | },
|
136 | titlecase (value = '') {
|
137 | return value.split(/[-_.\s]/).
|
138 | map((word) => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()).
|
139 | join(' ').
|
140 | trim();
|
141 | },
|
142 | trim (value) {
|
143 | if (!value) {
|
144 | return '';
|
145 | }
|
146 | return value.toString().trim();
|
147 | },
|
148 | uppercase (value) {
|
149 | if (!value) {
|
150 | return '';
|
151 | }
|
152 | return value.toString().toUpperCase();
|
153 | },
|
154 | };
|