diginext-utils 2.1.8 → 2.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +162 -162
  2. package/package.json +1 -1
  3. package/src/Checker.ts +29 -29
  4. package/src/EventDispatcher.ts +62 -62
  5. package/src/FileUpload.ts +66 -66
  6. package/src/Slug.ts +365 -365
  7. package/src/Timer.ts +7 -7
  8. package/src/Validation.ts +36 -36
  9. package/src/array.ts +285 -285
  10. package/src/color.ts +87 -87
  11. package/src/console/enableConsole.ts +8 -8
  12. package/src/console/index.ts +17 -17
  13. package/src/console/log.ts +39 -39
  14. package/src/device/browser.ts +29 -29
  15. package/src/device/camera.ts +207 -207
  16. package/src/device/index.ts +230 -230
  17. package/src/device/os.ts +29 -29
  18. package/src/file/createDir.ts +14 -14
  19. package/src/file/fileMove.ts +32 -32
  20. package/src/file/findFilesByExt.ts +46 -46
  21. package/src/file/index.ts +7 -7
  22. package/src/images/index.ts +3 -3
  23. package/src/images/loadImage.ts +16 -16
  24. package/src/images/resize.ts +35 -35
  25. package/src/images/upload.ts +24 -24
  26. package/src/index.ts +39 -39
  27. package/src/json.ts +29 -29
  28. package/src/math/diffDate.ts +10 -10
  29. package/src/math/index.ts +90 -90
  30. package/src/math/positiveNumber.ts +12 -12
  31. package/src/name/en.ts +27 -27
  32. package/src/name/index.ts +8 -8
  33. package/src/name/vi.ts +23 -23
  34. package/src/object.ts +72 -72
  35. package/src/permission/index.ts +6 -6
  36. package/src/permission/requestCamera.ts +43 -43
  37. package/src/permission/requestDeviceOrientationControl.ts +33 -33
  38. package/src/response/index.ts +45 -45
  39. package/src/string/formatNumber.ts +12 -12
  40. package/src/string/generatePassword.ts +18 -18
  41. package/src/string/generateUUID.ts +37 -37
  42. package/src/string/getTextBetweenCharByIndex.ts +20 -20
  43. package/src/string/indexesOf.ts +15 -15
  44. package/src/string/makeDaySlug.ts +40 -40
  45. package/src/string/random.ts +33 -33
  46. package/src/string/trimNull.ts +16 -16
package/src/Slug.ts CHANGED
@@ -1,365 +1,365 @@
1
- /**
2
- * Create a web friendly URL slug from a string.
3
- *
4
- * Requires XRegExp (http://xregexp.com) with unicode add-ons for UTF-8 support.
5
- *
6
- * Although supported, transliteration is discouraged because
7
- * 1) most web browsers support UTF-8 characters in URLs
8
- * 2) transliteration causes a loss of information
9
- *
10
- * @author Sean Murphy <sean@iamseanmurphy.com>
11
- * @copyright Copyright 2012 Sean Murphy. All rights reserved.
12
- * @license http://creativecommons.org/publicdomain/zero/1.0/
13
- *
14
- */
15
- declare var XRegExp: any;
16
-
17
- export const makeSlug = (s: string, opt: { [key: string]: any } = {}) => {
18
- // s = String(s);
19
- // opt = Object(opt);
20
-
21
- var defaults: { [key: string]: any } = {
22
- delimiter: "-",
23
- lowercase: true,
24
- replacements: {},
25
- transliterate: typeof XRegExp === "undefined" ? true : false,
26
- };
27
-
28
- // Merge options
29
- for (var k in defaults) {
30
- if (!opt.hasOwnProperty(k)) {
31
- opt[k] = defaults[k];
32
- }
33
- }
34
-
35
- var char_map: { [key: string]: any } = {
36
- // Latin
37
- À: "A",
38
- Á: "A",
39
- Â: "A",
40
- Ã: "A",
41
- Ä: "A",
42
- Å: "A",
43
- Æ: "AE",
44
- Ç: "C",
45
- È: "E",
46
- É: "E",
47
- Ê: "E",
48
- Ë: "E",
49
- Ì: "I",
50
- Í: "I",
51
- Î: "I",
52
- Ï: "I",
53
- Ð: "D",
54
- Ñ: "N",
55
- Ò: "O",
56
- Ó: "O",
57
- Ô: "O",
58
- Õ: "O",
59
- Ö: "O",
60
- Ő: "O",
61
- Ø: "O",
62
- Ù: "U",
63
- Ú: "U",
64
- Û: "U",
65
- Ü: "U",
66
- Ű: "U",
67
- Ý: "Y",
68
- Þ: "TH",
69
- ß: "ss",
70
- à: "a",
71
- á: "a",
72
- â: "a",
73
- ã: "a",
74
- ä: "a",
75
- å: "a",
76
- æ: "ae",
77
- ç: "c",
78
- è: "e",
79
- é: "e",
80
- ê: "e",
81
- ë: "e",
82
- ì: "i",
83
- í: "i",
84
- î: "i",
85
- ï: "i",
86
- ð: "d",
87
- ñ: "n",
88
- ò: "o",
89
- ó: "o",
90
- ô: "o",
91
- õ: "o",
92
- ö: "o",
93
- ő: "o",
94
- ø: "o",
95
- ù: "u",
96
- ú: "u",
97
- û: "u",
98
- ü: "u",
99
- ű: "u",
100
- ý: "y",
101
- þ: "th",
102
- ÿ: "y",
103
-
104
- // Latin symbols
105
- "©": "(c)",
106
-
107
- // Greek
108
- Α: "A",
109
- Β: "B",
110
- Γ: "G",
111
- Δ: "D",
112
- Ε: "E",
113
- Ζ: "Z",
114
- Η: "H",
115
- Θ: "8",
116
- Ι: "I",
117
- Κ: "K",
118
- Λ: "L",
119
- Μ: "M",
120
- Ν: "N",
121
- Ξ: "3",
122
- Ο: "O",
123
- Π: "P",
124
- Ρ: "R",
125
- Σ: "S",
126
- Τ: "T",
127
- Υ: "Y",
128
- Φ: "F",
129
- Χ: "X",
130
- Ψ: "PS",
131
- Ω: "W",
132
- Ά: "A",
133
- Έ: "E",
134
- Ί: "I",
135
- Ό: "O",
136
- Ύ: "Y",
137
- Ή: "H",
138
- Ώ: "W",
139
- Ϊ: "I",
140
- Ϋ: "Y",
141
- α: "a",
142
- β: "b",
143
- γ: "g",
144
- δ: "d",
145
- ε: "e",
146
- ζ: "z",
147
- η: "h",
148
- θ: "8",
149
- ι: "i",
150
- κ: "k",
151
- λ: "l",
152
- μ: "m",
153
- ν: "n",
154
- ξ: "3",
155
- ο: "o",
156
- π: "p",
157
- ρ: "r",
158
- σ: "s",
159
- τ: "t",
160
- υ: "y",
161
- φ: "f",
162
- χ: "x",
163
- ψ: "ps",
164
- ω: "w",
165
- ά: "a",
166
- έ: "e",
167
- ί: "i",
168
- ό: "o",
169
- ύ: "y",
170
- ή: "h",
171
- ώ: "w",
172
- ς: "s",
173
- ϊ: "i",
174
- ΰ: "y",
175
- ϋ: "y",
176
- ΐ: "i",
177
-
178
- // Turkish
179
- Ş: "S",
180
- İ: "I",
181
- Ğ: "G",
182
- ş: "s",
183
- ı: "i",
184
- ğ: "g",
185
-
186
- // Russian
187
- А: "A",
188
- Б: "B",
189
- В: "V",
190
- Г: "G",
191
- Д: "D",
192
- Е: "E",
193
- Ё: "Yo",
194
- Ж: "Zh",
195
- З: "Z",
196
- И: "I",
197
- Й: "J",
198
- К: "K",
199
- Л: "L",
200
- М: "M",
201
- Н: "N",
202
- О: "O",
203
- П: "P",
204
- Р: "R",
205
- С: "S",
206
- Т: "T",
207
- У: "U",
208
- Ф: "F",
209
- Х: "H",
210
- Ц: "C",
211
- Ч: "Ch",
212
- Ш: "Sh",
213
- Щ: "Sh",
214
- Ъ: "",
215
- Ы: "Y",
216
- Ь: "",
217
- Э: "E",
218
- Ю: "Yu",
219
- Я: "Ya",
220
- а: "a",
221
- б: "b",
222
- в: "v",
223
- г: "g",
224
- д: "d",
225
- е: "e",
226
- ё: "yo",
227
- ж: "zh",
228
- з: "z",
229
- и: "i",
230
- й: "j",
231
- к: "k",
232
- л: "l",
233
- м: "m",
234
- н: "n",
235
- о: "o",
236
- п: "p",
237
- р: "r",
238
- с: "s",
239
- т: "t",
240
- у: "u",
241
- ф: "f",
242
- х: "h",
243
- ц: "c",
244
- ч: "ch",
245
- ш: "sh",
246
- щ: "sh",
247
- ъ: "",
248
- ы: "y",
249
- ь: "",
250
- э: "e",
251
- ю: "yu",
252
- я: "ya",
253
-
254
- // Ukrainian
255
- Є: "Ye",
256
- І: "I",
257
- Ї: "Yi",
258
- Ґ: "G",
259
- є: "ye",
260
- і: "i",
261
- ї: "yi",
262
- ґ: "g",
263
-
264
- // Czech
265
- Č: "C",
266
- Ď: "D",
267
- Ě: "E",
268
- Ň: "N",
269
- Ř: "R",
270
- Š: "S",
271
- Ť: "T",
272
- Ů: "U",
273
- Ž: "Z",
274
- č: "c",
275
- ď: "d",
276
- ě: "e",
277
- ň: "n",
278
- ř: "r",
279
- š: "s",
280
- ť: "t",
281
- ů: "u",
282
- ž: "z",
283
-
284
- // Polish
285
- Ą: "A",
286
- Ć: "C",
287
- Ę: "e",
288
- Ł: "L",
289
- Ń: "N",
290
- Ś: "S",
291
- Ź: "Z",
292
- Ż: "Z",
293
- ą: "a",
294
- ć: "c",
295
- ę: "e",
296
- ł: "l",
297
- ń: "n",
298
- ś: "s",
299
- ź: "z",
300
- ż: "z",
301
-
302
- // Latvian
303
- Ā: "A",
304
- Ē: "E",
305
- Ģ: "G",
306
- Ī: "i",
307
- Ķ: "k",
308
- Ļ: "L",
309
- Ņ: "N",
310
- Ū: "u",
311
- ā: "a",
312
- ē: "e",
313
- ģ: "g",
314
- ī: "i",
315
- ķ: "k",
316
- ļ: "l",
317
- ņ: "n",
318
- ū: "u",
319
- };
320
-
321
- // Vietnamese
322
- s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
323
- s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
324
- s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
325
- s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
326
- s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
327
- s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
328
- s = s.replace(/đ/gi, "d");
329
- s = s.replace(/\-\-\-\-\-/gi, "-");
330
- s = s.replace(/\-\-\-\-/gi, "-");
331
- s = s.replace(/\-\-\-/gi, "-");
332
- s = s.replace(/\-\-/gi, "-");
333
- s = "@" + s + "@";
334
- s = s.replace(/\@\-|\-\@|\@/gi, "");
335
-
336
- // Make custom replacements
337
- for (var k in opt.replacements) {
338
- s = s.replace(RegExp(k, "g"), opt.replacements[k]);
339
- }
340
-
341
- // Transliterate characters to ASCII
342
- if (opt.transliterate) {
343
- for (var k in char_map) {
344
- s = s.replace(RegExp(k, "g"), char_map[k]);
345
- }
346
- }
347
-
348
- // Replace non-alphanumeric characters with our delimiter
349
- var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
350
- s = s.replace(alnum, opt.delimiter);
351
-
352
- // Remove duplicate delimiters
353
- s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
354
-
355
- // Truncate slug to max. characters
356
- s = s.substring(0, opt.limit);
357
-
358
- // Remove delimiter from ends
359
- s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
360
-
361
- return opt.lowercase ? s.toLowerCase() : s;
362
- };
363
-
364
- const slug = { makeSlug };
365
- export default slug;
1
+ /**
2
+ * Create a web friendly URL slug from a string.
3
+ *
4
+ * Requires XRegExp (http://xregexp.com) with unicode add-ons for UTF-8 support.
5
+ *
6
+ * Although supported, transliteration is discouraged because
7
+ * 1) most web browsers support UTF-8 characters in URLs
8
+ * 2) transliteration causes a loss of information
9
+ *
10
+ * @author Sean Murphy <sean@iamseanmurphy.com>
11
+ * @copyright Copyright 2012 Sean Murphy. All rights reserved.
12
+ * @license http://creativecommons.org/publicdomain/zero/1.0/
13
+ *
14
+ */
15
+ declare var XRegExp: any;
16
+
17
+ export const makeSlug = (s: string, opt: { [key: string]: any } = {}) => {
18
+ // s = String(s);
19
+ // opt = Object(opt);
20
+
21
+ var defaults: { [key: string]: any } = {
22
+ delimiter: "-",
23
+ lowercase: true,
24
+ replacements: {},
25
+ transliterate: typeof XRegExp === "undefined" ? true : false,
26
+ };
27
+
28
+ // Merge options
29
+ for (var k in defaults) {
30
+ if (!opt.hasOwnProperty(k)) {
31
+ opt[k] = defaults[k];
32
+ }
33
+ }
34
+
35
+ var char_map: { [key: string]: any } = {
36
+ // Latin
37
+ À: "A",
38
+ Á: "A",
39
+ Â: "A",
40
+ Ã: "A",
41
+ Ä: "A",
42
+ Å: "A",
43
+ Æ: "AE",
44
+ Ç: "C",
45
+ È: "E",
46
+ É: "E",
47
+ Ê: "E",
48
+ Ë: "E",
49
+ Ì: "I",
50
+ Í: "I",
51
+ Î: "I",
52
+ Ï: "I",
53
+ Ð: "D",
54
+ Ñ: "N",
55
+ Ò: "O",
56
+ Ó: "O",
57
+ Ô: "O",
58
+ Õ: "O",
59
+ Ö: "O",
60
+ Ő: "O",
61
+ Ø: "O",
62
+ Ù: "U",
63
+ Ú: "U",
64
+ Û: "U",
65
+ Ü: "U",
66
+ Ű: "U",
67
+ Ý: "Y",
68
+ Þ: "TH",
69
+ ß: "ss",
70
+ à: "a",
71
+ á: "a",
72
+ â: "a",
73
+ ã: "a",
74
+ ä: "a",
75
+ å: "a",
76
+ æ: "ae",
77
+ ç: "c",
78
+ è: "e",
79
+ é: "e",
80
+ ê: "e",
81
+ ë: "e",
82
+ ì: "i",
83
+ í: "i",
84
+ î: "i",
85
+ ï: "i",
86
+ ð: "d",
87
+ ñ: "n",
88
+ ò: "o",
89
+ ó: "o",
90
+ ô: "o",
91
+ õ: "o",
92
+ ö: "o",
93
+ ő: "o",
94
+ ø: "o",
95
+ ù: "u",
96
+ ú: "u",
97
+ û: "u",
98
+ ü: "u",
99
+ ű: "u",
100
+ ý: "y",
101
+ þ: "th",
102
+ ÿ: "y",
103
+
104
+ // Latin symbols
105
+ "©": "(c)",
106
+
107
+ // Greek
108
+ Α: "A",
109
+ Β: "B",
110
+ Γ: "G",
111
+ Δ: "D",
112
+ Ε: "E",
113
+ Ζ: "Z",
114
+ Η: "H",
115
+ Θ: "8",
116
+ Ι: "I",
117
+ Κ: "K",
118
+ Λ: "L",
119
+ Μ: "M",
120
+ Ν: "N",
121
+ Ξ: "3",
122
+ Ο: "O",
123
+ Π: "P",
124
+ Ρ: "R",
125
+ Σ: "S",
126
+ Τ: "T",
127
+ Υ: "Y",
128
+ Φ: "F",
129
+ Χ: "X",
130
+ Ψ: "PS",
131
+ Ω: "W",
132
+ Ά: "A",
133
+ Έ: "E",
134
+ Ί: "I",
135
+ Ό: "O",
136
+ Ύ: "Y",
137
+ Ή: "H",
138
+ Ώ: "W",
139
+ Ϊ: "I",
140
+ Ϋ: "Y",
141
+ α: "a",
142
+ β: "b",
143
+ γ: "g",
144
+ δ: "d",
145
+ ε: "e",
146
+ ζ: "z",
147
+ η: "h",
148
+ θ: "8",
149
+ ι: "i",
150
+ κ: "k",
151
+ λ: "l",
152
+ μ: "m",
153
+ ν: "n",
154
+ ξ: "3",
155
+ ο: "o",
156
+ π: "p",
157
+ ρ: "r",
158
+ σ: "s",
159
+ τ: "t",
160
+ υ: "y",
161
+ φ: "f",
162
+ χ: "x",
163
+ ψ: "ps",
164
+ ω: "w",
165
+ ά: "a",
166
+ έ: "e",
167
+ ί: "i",
168
+ ό: "o",
169
+ ύ: "y",
170
+ ή: "h",
171
+ ώ: "w",
172
+ ς: "s",
173
+ ϊ: "i",
174
+ ΰ: "y",
175
+ ϋ: "y",
176
+ ΐ: "i",
177
+
178
+ // Turkish
179
+ Ş: "S",
180
+ İ: "I",
181
+ Ğ: "G",
182
+ ş: "s",
183
+ ı: "i",
184
+ ğ: "g",
185
+
186
+ // Russian
187
+ А: "A",
188
+ Б: "B",
189
+ В: "V",
190
+ Г: "G",
191
+ Д: "D",
192
+ Е: "E",
193
+ Ё: "Yo",
194
+ Ж: "Zh",
195
+ З: "Z",
196
+ И: "I",
197
+ Й: "J",
198
+ К: "K",
199
+ Л: "L",
200
+ М: "M",
201
+ Н: "N",
202
+ О: "O",
203
+ П: "P",
204
+ Р: "R",
205
+ С: "S",
206
+ Т: "T",
207
+ У: "U",
208
+ Ф: "F",
209
+ Х: "H",
210
+ Ц: "C",
211
+ Ч: "Ch",
212
+ Ш: "Sh",
213
+ Щ: "Sh",
214
+ Ъ: "",
215
+ Ы: "Y",
216
+ Ь: "",
217
+ Э: "E",
218
+ Ю: "Yu",
219
+ Я: "Ya",
220
+ а: "a",
221
+ б: "b",
222
+ в: "v",
223
+ г: "g",
224
+ д: "d",
225
+ е: "e",
226
+ ё: "yo",
227
+ ж: "zh",
228
+ з: "z",
229
+ и: "i",
230
+ й: "j",
231
+ к: "k",
232
+ л: "l",
233
+ м: "m",
234
+ н: "n",
235
+ о: "o",
236
+ п: "p",
237
+ р: "r",
238
+ с: "s",
239
+ т: "t",
240
+ у: "u",
241
+ ф: "f",
242
+ х: "h",
243
+ ц: "c",
244
+ ч: "ch",
245
+ ш: "sh",
246
+ щ: "sh",
247
+ ъ: "",
248
+ ы: "y",
249
+ ь: "",
250
+ э: "e",
251
+ ю: "yu",
252
+ я: "ya",
253
+
254
+ // Ukrainian
255
+ Є: "Ye",
256
+ І: "I",
257
+ Ї: "Yi",
258
+ Ґ: "G",
259
+ є: "ye",
260
+ і: "i",
261
+ ї: "yi",
262
+ ґ: "g",
263
+
264
+ // Czech
265
+ Č: "C",
266
+ Ď: "D",
267
+ Ě: "E",
268
+ Ň: "N",
269
+ Ř: "R",
270
+ Š: "S",
271
+ Ť: "T",
272
+ Ů: "U",
273
+ Ž: "Z",
274
+ č: "c",
275
+ ď: "d",
276
+ ě: "e",
277
+ ň: "n",
278
+ ř: "r",
279
+ š: "s",
280
+ ť: "t",
281
+ ů: "u",
282
+ ž: "z",
283
+
284
+ // Polish
285
+ Ą: "A",
286
+ Ć: "C",
287
+ Ę: "e",
288
+ Ł: "L",
289
+ Ń: "N",
290
+ Ś: "S",
291
+ Ź: "Z",
292
+ Ż: "Z",
293
+ ą: "a",
294
+ ć: "c",
295
+ ę: "e",
296
+ ł: "l",
297
+ ń: "n",
298
+ ś: "s",
299
+ ź: "z",
300
+ ż: "z",
301
+
302
+ // Latvian
303
+ Ā: "A",
304
+ Ē: "E",
305
+ Ģ: "G",
306
+ Ī: "i",
307
+ Ķ: "k",
308
+ Ļ: "L",
309
+ Ņ: "N",
310
+ Ū: "u",
311
+ ā: "a",
312
+ ē: "e",
313
+ ģ: "g",
314
+ ī: "i",
315
+ ķ: "k",
316
+ ļ: "l",
317
+ ņ: "n",
318
+ ū: "u",
319
+ };
320
+
321
+ // Vietnamese
322
+ s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
323
+ s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
324
+ s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
325
+ s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
326
+ s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
327
+ s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
328
+ s = s.replace(/đ/gi, "d");
329
+ s = s.replace(/\-\-\-\-\-/gi, "-");
330
+ s = s.replace(/\-\-\-\-/gi, "-");
331
+ s = s.replace(/\-\-\-/gi, "-");
332
+ s = s.replace(/\-\-/gi, "-");
333
+ s = "@" + s + "@";
334
+ s = s.replace(/\@\-|\-\@|\@/gi, "");
335
+
336
+ // Make custom replacements
337
+ for (var k in opt.replacements) {
338
+ s = s.replace(RegExp(k, "g"), opt.replacements[k]);
339
+ }
340
+
341
+ // Transliterate characters to ASCII
342
+ if (opt.transliterate) {
343
+ for (var k in char_map) {
344
+ s = s.replace(RegExp(k, "g"), char_map[k]);
345
+ }
346
+ }
347
+
348
+ // Replace non-alphanumeric characters with our delimiter
349
+ var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
350
+ s = s.replace(alnum, opt.delimiter);
351
+
352
+ // Remove duplicate delimiters
353
+ s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
354
+
355
+ // Truncate slug to max. characters
356
+ s = s.substring(0, opt.limit);
357
+
358
+ // Remove delimiter from ends
359
+ s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
360
+
361
+ return opt.lowercase ? s.toLowerCase() : s;
362
+ };
363
+
364
+ const slug = { makeSlug };
365
+ export default slug;