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