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