diginext-utils 0.0.1

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.
package/src/Slug.js ADDED
@@ -0,0 +1,383 @@
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
+ /**
16
+ *
17
+ * @param {string} s
18
+ * @param {Object} opt
19
+ * @return {string}
20
+ */
21
+ const makeSlug = (s, opt = {}) => {
22
+ // s = String(s);
23
+ // opt = Object(opt);
24
+
25
+ var defaults = {
26
+ delimiter: "-",
27
+ limit: undefined,
28
+ lowercase: true,
29
+ replacements: {},
30
+ transliterate: typeof XRegExp === "undefined" ? true : false,
31
+ };
32
+
33
+ // Merge options
34
+ for (var k in defaults) {
35
+ if (!opt.hasOwnProperty(k)) {
36
+ opt[k] = defaults[k];
37
+ }
38
+ }
39
+
40
+ var char_map = {
41
+ // Latin
42
+ À: "A",
43
+ Á: "A",
44
+ Â: "A",
45
+ Ã: "A",
46
+ Ä: "A",
47
+ Å: "A",
48
+ Æ: "AE",
49
+ Ç: "C",
50
+ È: "E",
51
+ É: "E",
52
+ Ê: "E",
53
+ Ë: "E",
54
+ Ì: "I",
55
+ Í: "I",
56
+ Î: "I",
57
+ Ï: "I",
58
+ Ð: "D",
59
+ Ñ: "N",
60
+ Ò: "O",
61
+ Ó: "O",
62
+ Ô: "O",
63
+ Õ: "O",
64
+ Ö: "O",
65
+ Ő: "O",
66
+ Ø: "O",
67
+ Ù: "U",
68
+ Ú: "U",
69
+ Û: "U",
70
+ Ü: "U",
71
+ Ű: "U",
72
+ Ý: "Y",
73
+ Þ: "TH",
74
+ ß: "ss",
75
+ à: "a",
76
+ á: "a",
77
+ â: "a",
78
+ ã: "a",
79
+ ä: "a",
80
+ å: "a",
81
+ æ: "ae",
82
+ ç: "c",
83
+ è: "e",
84
+ é: "e",
85
+ ê: "e",
86
+ ë: "e",
87
+ ì: "i",
88
+ í: "i",
89
+ î: "i",
90
+ ï: "i",
91
+ ð: "d",
92
+ ñ: "n",
93
+ ò: "o",
94
+ ó: "o",
95
+ ô: "o",
96
+ õ: "o",
97
+ ö: "o",
98
+ ő: "o",
99
+ ø: "o",
100
+ ù: "u",
101
+ ú: "u",
102
+ û: "u",
103
+ ü: "u",
104
+ ű: "u",
105
+ ý: "y",
106
+ þ: "th",
107
+ ÿ: "y",
108
+
109
+ // Latin symbols
110
+ "©": "(c)",
111
+
112
+ // Greek
113
+ Α: "A",
114
+ Β: "B",
115
+ Γ: "G",
116
+ Δ: "D",
117
+ Ε: "E",
118
+ Ζ: "Z",
119
+ Η: "H",
120
+ Θ: "8",
121
+ Ι: "I",
122
+ Κ: "K",
123
+ Λ: "L",
124
+ Μ: "M",
125
+ Ν: "N",
126
+ Ξ: "3",
127
+ Ο: "O",
128
+ Π: "P",
129
+ Ρ: "R",
130
+ Σ: "S",
131
+ Τ: "T",
132
+ Υ: "Y",
133
+ Φ: "F",
134
+ Χ: "X",
135
+ Ψ: "PS",
136
+ Ω: "W",
137
+ Ά: "A",
138
+ Έ: "E",
139
+ Ί: "I",
140
+ Ό: "O",
141
+ Ύ: "Y",
142
+ Ή: "H",
143
+ Ώ: "W",
144
+ Ϊ: "I",
145
+ Ϋ: "Y",
146
+ α: "a",
147
+ β: "b",
148
+ γ: "g",
149
+ δ: "d",
150
+ ε: "e",
151
+ ζ: "z",
152
+ η: "h",
153
+ θ: "8",
154
+ ι: "i",
155
+ κ: "k",
156
+ λ: "l",
157
+ μ: "m",
158
+ ν: "n",
159
+ ξ: "3",
160
+ ο: "o",
161
+ π: "p",
162
+ ρ: "r",
163
+ σ: "s",
164
+ τ: "t",
165
+ υ: "y",
166
+ φ: "f",
167
+ χ: "x",
168
+ ψ: "ps",
169
+ ω: "w",
170
+ ά: "a",
171
+ έ: "e",
172
+ ί: "i",
173
+ ό: "o",
174
+ ύ: "y",
175
+ ή: "h",
176
+ ώ: "w",
177
+ ς: "s",
178
+ ϊ: "i",
179
+ ΰ: "y",
180
+ ϋ: "y",
181
+ ΐ: "i",
182
+
183
+ // Turkish
184
+ Ş: "S",
185
+ İ: "I",
186
+ Ç: "C",
187
+ Ü: "U",
188
+ Ö: "O",
189
+ Ğ: "G",
190
+ ş: "s",
191
+ ı: "i",
192
+ ç: "c",
193
+ ü: "u",
194
+ ö: "o",
195
+ ğ: "g",
196
+
197
+ // Russian
198
+ А: "A",
199
+ Б: "B",
200
+ В: "V",
201
+ Г: "G",
202
+ Д: "D",
203
+ Е: "E",
204
+ Ё: "Yo",
205
+ Ж: "Zh",
206
+ З: "Z",
207
+ И: "I",
208
+ Й: "J",
209
+ К: "K",
210
+ Л: "L",
211
+ М: "M",
212
+ Н: "N",
213
+ О: "O",
214
+ П: "P",
215
+ Р: "R",
216
+ С: "S",
217
+ Т: "T",
218
+ У: "U",
219
+ Ф: "F",
220
+ Х: "H",
221
+ Ц: "C",
222
+ Ч: "Ch",
223
+ Ш: "Sh",
224
+ Щ: "Sh",
225
+ Ъ: "",
226
+ Ы: "Y",
227
+ Ь: "",
228
+ Э: "E",
229
+ Ю: "Yu",
230
+ Я: "Ya",
231
+ а: "a",
232
+ б: "b",
233
+ в: "v",
234
+ г: "g",
235
+ д: "d",
236
+ е: "e",
237
+ ё: "yo",
238
+ ж: "zh",
239
+ з: "z",
240
+ и: "i",
241
+ й: "j",
242
+ к: "k",
243
+ л: "l",
244
+ м: "m",
245
+ н: "n",
246
+ о: "o",
247
+ п: "p",
248
+ р: "r",
249
+ с: "s",
250
+ т: "t",
251
+ у: "u",
252
+ ф: "f",
253
+ х: "h",
254
+ ц: "c",
255
+ ч: "ch",
256
+ ш: "sh",
257
+ щ: "sh",
258
+ ъ: "",
259
+ ы: "y",
260
+ ь: "",
261
+ э: "e",
262
+ ю: "yu",
263
+ я: "ya",
264
+
265
+ // Ukrainian
266
+ Є: "Ye",
267
+ І: "I",
268
+ Ї: "Yi",
269
+ Ґ: "G",
270
+ є: "ye",
271
+ і: "i",
272
+ ї: "yi",
273
+ ґ: "g",
274
+
275
+ // Czech
276
+ Č: "C",
277
+ Ď: "D",
278
+ Ě: "E",
279
+ Ň: "N",
280
+ Ř: "R",
281
+ Š: "S",
282
+ Ť: "T",
283
+ Ů: "U",
284
+ Ž: "Z",
285
+ č: "c",
286
+ ď: "d",
287
+ ě: "e",
288
+ ň: "n",
289
+ ř: "r",
290
+ š: "s",
291
+ ť: "t",
292
+ ů: "u",
293
+ ž: "z",
294
+
295
+ // Polish
296
+ Ą: "A",
297
+ Ć: "C",
298
+ Ę: "e",
299
+ Ł: "L",
300
+ Ń: "N",
301
+ Ó: "o",
302
+ Ś: "S",
303
+ Ź: "Z",
304
+ Ż: "Z",
305
+ ą: "a",
306
+ ć: "c",
307
+ ę: "e",
308
+ ł: "l",
309
+ ń: "n",
310
+ ó: "o",
311
+ ś: "s",
312
+ ź: "z",
313
+ ż: "z",
314
+
315
+ // Latvian
316
+ Ā: "A",
317
+ Č: "C",
318
+ Ē: "E",
319
+ Ģ: "G",
320
+ Ī: "i",
321
+ Ķ: "k",
322
+ Ļ: "L",
323
+ Ņ: "N",
324
+ Š: "S",
325
+ Ū: "u",
326
+ Ž: "Z",
327
+ ā: "a",
328
+ č: "c",
329
+ ē: "e",
330
+ ģ: "g",
331
+ ī: "i",
332
+ ķ: "k",
333
+ ļ: "l",
334
+ ņ: "n",
335
+ š: "s",
336
+ ū: "u",
337
+ ž: "z",
338
+ };
339
+
340
+ // Vietnamese
341
+ s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
342
+ s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
343
+ s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
344
+ s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
345
+ s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
346
+ s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
347
+ s = s.replace(/đ/gi, "d");
348
+ s = s.replace(/\-\-\-\-\-/gi, "-");
349
+ s = s.replace(/\-\-\-\-/gi, "-");
350
+ s = s.replace(/\-\-\-/gi, "-");
351
+ s = s.replace(/\-\-/gi, "-");
352
+ s = "@" + s + "@";
353
+ s = s.replace(/\@\-|\-\@|\@/gi, "");
354
+
355
+ // Make custom replacements
356
+ for (var k in opt.replacements) {
357
+ s = s.replace(RegExp(k, "g"), opt.replacements[k]);
358
+ }
359
+
360
+ // Transliterate characters to ASCII
361
+ if (opt.transliterate) {
362
+ for (var k in char_map) {
363
+ s = s.replace(RegExp(k, "g"), char_map[k]);
364
+ }
365
+ }
366
+
367
+ // Replace non-alphanumeric characters with our delimiter
368
+ var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
369
+ s = s.replace(alnum, opt.delimiter);
370
+
371
+ // Remove duplicate delimiters
372
+ s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
373
+
374
+ // Truncate slug to max. characters
375
+ s = s.substring(0, opt.limit);
376
+
377
+ // Remove delimiter from ends
378
+ s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
379
+
380
+ return opt.lowercase ? s.toLowerCase() : s;
381
+ };
382
+
383
+ export { makeSlug };
package/src/Timer.js ADDED
@@ -0,0 +1,7 @@
1
+ const Timer = {
2
+ wait: async (ms) => {
3
+ return new Promise((resolve) => setTimeout(resolve, ms));
4
+ },
5
+ };
6
+
7
+ export default Timer;
package/src/Url.js ADDED
@@ -0,0 +1,109 @@
1
+ import StringExtra from "./string/StringExtra";
2
+
3
+ var urlRegex = /(https?:\/\/[^\s]+)/g;
4
+
5
+ export default class Url {
6
+ static getUrlParams(parameter, staticURL, decode) {
7
+ staticURL = staticURL == undefined ? window.location : staticURL;
8
+ var currLocation = staticURL.length ? staticURL : window.location.search;
9
+
10
+ if (currLocation.split("?").length < 2) return "";
11
+
12
+ var parArr = currLocation.split("?")[1].split("&"),
13
+ returnBool = true;
14
+
15
+ for (var i = 0; i < parArr.length; i++) {
16
+ var parr = parArr[i].split("=");
17
+ if (parr[0] == parameter) {
18
+ return decode ? decodeURIComponent(parr[1]) : parr[1];
19
+ returnBool = true;
20
+ } else {
21
+ returnBool = false;
22
+ }
23
+ }
24
+
25
+ if (!returnBool) return false;
26
+ }
27
+
28
+ /**
29
+ *
30
+ * @return {boolean}
31
+ */
32
+ static isLink(str) {
33
+ return urlRegex.test(str);
34
+ }
35
+
36
+ /**
37
+ *
38
+ * @return {JSX.Element}
39
+ */
40
+ static strToJsxLink(str, altText) {
41
+ return UrlUtils.isLink(str) ? <a href={src}>{altText || src}</a> : str;
42
+ }
43
+
44
+ /**
45
+ *
46
+ * @return {string}
47
+ */
48
+ static decode(uri) {
49
+ return decodeURIComponent(uri);
50
+ }
51
+
52
+ /**
53
+ *
54
+ * @return {string}
55
+ */
56
+ static encode(uri) {
57
+ return encodeURIComponent(uri);
58
+ }
59
+
60
+ /**
61
+ *
62
+ * @param {string} url
63
+ * @return {string}
64
+ */
65
+ static getFileNameWithoutExtension(url) {
66
+ url = this.decode(url);
67
+ if (url) {
68
+ var m = url.toString().match(/.*\/(.+?)\./);
69
+ if (m && m.length > 1) {
70
+ return m[1];
71
+ }
72
+
73
+ if (!StringExtra.isEmpty(url)) {
74
+ return url.split(".").shift();
75
+ }
76
+ }
77
+ return "";
78
+ }
79
+
80
+ /**
81
+ *
82
+ * @param {string} url
83
+ * @return {string}
84
+ */
85
+ static getFileNameWithExtension(url) {
86
+ url = this.decode(url);
87
+ if (url) {
88
+ var m = url.toString().match(/.*\/(.*)$/);
89
+
90
+ if (m && m.length > 1) {
91
+ return m[1].split("/").pop().split("?")[0];
92
+ }
93
+
94
+ if (!StringExtra.isEmpty(url)) {
95
+ return url;
96
+ }
97
+ }
98
+ return "";
99
+ }
100
+
101
+ /**
102
+ *
103
+ * @param {string} url
104
+ * @return {string}
105
+ */
106
+ static getFileExtension(url) {
107
+ return this.getFileNameWithExtension(url).split(".").pop();
108
+ }
109
+ }
@@ -0,0 +1,109 @@
1
+ import StringExtra from "./string/StringExtra";
2
+
3
+ var urlRegex = /(https?:\/\/[^\s]+)/g;
4
+
5
+ export default class UrlUtils {
6
+ static getUrlParams(parameter, staticURL, decode) {
7
+ staticURL = staticURL == undefined ? window.location : staticURL;
8
+ var currLocation = staticURL.length ? staticURL : window.location.search;
9
+
10
+ if (currLocation.split("?").length < 2) return "";
11
+
12
+ var parArr = currLocation.split("?")[1].split("&"),
13
+ returnBool = true;
14
+
15
+ for (var i = 0; i < parArr.length; i++) {
16
+ var parr = parArr[i].split("=");
17
+ if (parr[0] == parameter) {
18
+ return decode ? decodeURIComponent(parr[1]) : parr[1];
19
+ returnBool = true;
20
+ } else {
21
+ returnBool = false;
22
+ }
23
+ }
24
+
25
+ if (!returnBool) return false;
26
+ }
27
+
28
+ /**
29
+ *
30
+ * @return {boolean}
31
+ */
32
+ static isLink(str) {
33
+ return urlRegex.test(str);
34
+ }
35
+
36
+ /**
37
+ *
38
+ * @return {JSX.Element}
39
+ */
40
+ static strToJsxLink(str, altText) {
41
+ return UrlUtils.isLink(str) ? <a href={src}>{altText || src}</a> : str;
42
+ }
43
+
44
+ /**
45
+ *
46
+ * @return {string}
47
+ */
48
+ static decode(uri) {
49
+ return decodeURIComponent(uri);
50
+ }
51
+
52
+ /**
53
+ *
54
+ * @return {string}
55
+ */
56
+ static encode(uri) {
57
+ return encodeURIComponent(uri);
58
+ }
59
+
60
+ /**
61
+ *
62
+ * @param {string} url
63
+ * @return {string}
64
+ */
65
+ static getFileNameWithoutExtension(url) {
66
+ url = this.decode(url);
67
+ if (url) {
68
+ var m = url.toString().match(/.*\/(.+?)\./);
69
+ if (m && m.length > 1) {
70
+ return m[1];
71
+ }
72
+
73
+ if (!StringExtra.isEmpty(url)) {
74
+ return url.split(".").shift();
75
+ }
76
+ }
77
+ return "";
78
+ }
79
+
80
+ /**
81
+ *
82
+ * @param {string} url
83
+ * @return {string}
84
+ */
85
+ static getFileNameWithExtension(url) {
86
+ url = this.decode(url);
87
+ if (url) {
88
+ var m = url.toString().match(/.*\/(.*)$/);
89
+
90
+ if (m && m.length > 1) {
91
+ return m[1].split("/").pop().split("?")[0];
92
+ }
93
+
94
+ if (!StringExtra.isEmpty(url)) {
95
+ return url;
96
+ }
97
+ }
98
+ return "";
99
+ }
100
+
101
+ /**
102
+ *
103
+ * @param {string} url
104
+ * @return {string}
105
+ */
106
+ static getFileExtension(url) {
107
+ return this.getFileNameWithExtension(url).split(".").pop();
108
+ }
109
+ }
package/src/UserLS.js ADDED
@@ -0,0 +1,104 @@
1
+ import UrlLoader, { api, routes, PROXY_URL } from "./Api";
2
+ import Axios from "axios";
3
+ // upload hình -> login FB -> share
4
+ class UserLS {
5
+ static info = null;
6
+
7
+ static saveInfo(info) {
8
+ UserLS.info = { ...info };
9
+ window.localStorage.setItem("user_info", JSON.stringify(UserLS.info));
10
+ }
11
+
12
+ static getInfo() {
13
+ UserLS.info = JSON.parse(window.localStorage.getItem("user_info"));
14
+ console.log("getInfo", UserLS.info);
15
+ return UserLS.info;
16
+ }
17
+
18
+ static saveAuthToken(code) {
19
+ let info = {
20
+ ...UserLS.info,
21
+ auth_token: code,
22
+ };
23
+ window.localStorage.setItem("user_info", JSON.stringify(info));
24
+ }
25
+
26
+ static getAuthToken() {
27
+ let info = UserLS.getInfo();
28
+ let authToken = info.auth_token || -1;
29
+ return authToken;
30
+ }
31
+ static deleteAuthToken() {
32
+ let info = {
33
+ ...UserLS.info,
34
+ auth_token: undefined,
35
+ };
36
+ window.localStorage.setItem("user_info", JSON.stringify(info));
37
+ }
38
+
39
+ static clearStorage() {
40
+ console.log("clearStorage");
41
+ }
42
+
43
+ static loginToGetAuthToken = async (accessToken) => {
44
+ // get jwt token by call api login/facebook/accesstoken....
45
+
46
+ // Axios.get(PROXY_URL + routes.loginNoQuery + "?access_token=" + accessToken, {
47
+
48
+ // }).then((res) => {
49
+ // console.log("axios login response", res);
50
+
51
+ // }
52
+
53
+ // )
54
+ const response = await UrlLoader.get({
55
+ url: PROXY_URL + routes.loginNoQuery,
56
+ param: {
57
+ access_token: accessToken,
58
+ },
59
+ });
60
+ console.log("loginToGet authToken", response);
61
+
62
+ if (response.statusCode === 200) {
63
+ const responseData = response.data || {};
64
+ const authToken = responseData.auth_token || -1;
65
+
66
+ // save to local storage
67
+ UserLS.saveAuthToken(authToken);
68
+ }
69
+ };
70
+
71
+ static async handleUploadImage(image) {
72
+ let _response = {
73
+ status: 0,
74
+ message: "",
75
+ data: {},
76
+ };
77
+ const param = {
78
+ image_user: image,
79
+ };
80
+
81
+ const response = await UrlLoader.post({
82
+ url: PROXY_URL + routes.upload,
83
+ isConvertToString: false,
84
+ param: param,
85
+ });
86
+ console.log("response", response);
87
+
88
+ if (response.statusCode === 200) {
89
+ const responseData = response.data || {};
90
+ _response.data = responseData.post_id || -1;
91
+ _response.auth_token = responseData.auth_token || -1;
92
+ _response.message = response.responseMessage;
93
+ _response.status = 1;
94
+
95
+ UserLS.saveAuthToken(_response.auth_token);
96
+ } else {
97
+ _response.message = response.responseMessage;
98
+ }
99
+
100
+ return _response;
101
+ }
102
+ }
103
+
104
+ export default UserLS;