@opfr/utils-lang 0.2.2 → 0.3.0

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/dist/array.d.ts CHANGED
@@ -18,4 +18,5 @@ export type RangeParams = {
18
18
  step?: number;
19
19
  };
20
20
  export declare const range: ({ start, stop, step }: RangeParams) => number[];
21
+ export declare const arrayToRecord: <TKey extends string | number, TValue>(array: [TKey, TValue][]) => Record<TKey, TValue>;
21
22
  //# sourceMappingURL=array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,aAAc,CAAC,EAAE,YAAY,MAAM,KAAG,CAAC,EAAE,EAQ7D,CAAC;AAEF,eAAO,MAAM,OAAO,uDACX,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,mBASjB,CAAC;AAEF,eAAO,MAAM,MAAM,uDACV,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,KACf,CAAC,EAMH,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACpB,CAAC,EAAE,UACH,CAAC,EAAE,YACF,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,KACjC,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,OAAO,aACX,CAAC,EAAE,WACD,CAAC,EAAE,YACH,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,KACjC,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,MAAM,uDACV,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,KACf,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,OAAO,aAAc,CAAC,EAAE,QAMpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAC1B,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAC9B,CAAC,EAAmE,CAAC;AAExE,eAAO,MAAM,SAAS,aAAc,CAAC,EAAE,WAAW,CAAC,WAAW,OAAO,KAAG,CAAC,EAGxE,CAAC;AAEF,eAAO,MAAM,cAAc,aAClB,CAAC,EAAE,WACD,CAAC,WACD,OAAO,KACf,CAAC,EAA+C,CAAC;AAEpD,eAAO,MAAM,cAAc,aAClB,CAAC,EAAE,YACA,CAAC,EAAE,WACJ,OAAO,KACf,CAAC,EAAqD,CAAC;AAE1D,eAAO,MAAM,QAAQ,eAAgB,CAAC,WAAW,OAAO,KAAG,CAAC,EAClC,CAAC;AAE3B,eAAO,MAAM,aAAa,gBAAiB,CAAC,EAAE,WAAW,OAAO,KAAG,CAAC,EAC3C,CAAC;AAE1B,eAAO,MAAM,QAAQ,aAAc,CAAC,EAAE,KAAG,CACF,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,KAAK,0BAAmC,WAAW,KAAG,MAAM,EAexE,CAAC"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,aAAc,CAAC,EAAE,YAAY,MAAM,KAAG,CAAC,EAAE,EAQ7D,CAAC;AAEF,eAAO,MAAM,OAAO,uDACX,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,mBASjB,CAAC;AAEF,eAAO,MAAM,MAAM,uDACV,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,KACf,CAAC,EAMH,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACpB,CAAC,EAAE,UACH,CAAC,EAAE,YACF,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,KACjC,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,OAAO,aACX,CAAC,EAAE,WACD,CAAC,EAAE,YACH,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,KACjC,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,MAAM,uDACV,CAAC,EAAE,WACD,CAAC,KAAK,CAAC,KACf,CAAC,EAEH,CAAC;AAEF,eAAO,MAAM,OAAO,aAAc,CAAC,EAAE,QAMpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAC1B,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAC9B,CAAC,EAAmE,CAAC;AAExE,eAAO,MAAM,SAAS,aAAc,CAAC,EAAE,WAAW,CAAC,WAAW,OAAO,KAAG,CAAC,EAGxE,CAAC;AAEF,eAAO,MAAM,cAAc,aAClB,CAAC,EAAE,WACD,CAAC,WACD,OAAO,KACf,CAAC,EAA+C,CAAC;AAEpD,eAAO,MAAM,cAAc,aAClB,CAAC,EAAE,YACA,CAAC,EAAE,WACJ,OAAO,KACf,CAAC,EAAqD,CAAC;AAE1D,eAAO,MAAM,QAAQ,eAAgB,CAAC,WAAW,OAAO,KAAG,CAAC,EAClC,CAAC;AAE3B,eAAO,MAAM,aAAa,gBAAiB,CAAC,EAAE,WAAW,OAAO,KAAG,CAAC,EAC3C,CAAC;AAE1B,eAAO,MAAM,QAAQ,aAAc,CAAC,EAAE,KAAG,CACF,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,KAAK,0BAAmC,WAAW,KAAG,MAAM,EAexE,CAAC;AAEF,eAAO,MAAM,aAAa,gDACjB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KACtB,OAAO,IAAI,EAAE,MAAM,CAAyD,CAAC"}
package/dist/array.js ADDED
@@ -0,0 +1,65 @@
1
+ import { randomBetween } from 'number';
2
+ export const paginate = (array, pageSize) => {
3
+ return array.reduce((acc, val, i) => {
4
+ const idx = Math.floor(i / pageSize);
5
+ const page = acc[idx] || (acc[idx] = []);
6
+ page.push(val);
7
+ return acc;
8
+ }, []);
9
+ };
10
+ export const groupBy = (array, key) => {
11
+ return array.reduce((acc, v) => {
12
+ (acc[key(v)] = acc[key(v)] || []).push(v);
13
+ return acc;
14
+ }, {});
15
+ };
16
+ export const sortBy = (array, key) => {
17
+ return [...array].sort((a, b) => {
18
+ if (key(a) < key(b))
19
+ return -1;
20
+ if (key(a) > key(b))
21
+ return 1;
22
+ return 0;
23
+ });
24
+ };
25
+ export const mutuallyInclusive = (array1, array2, key = i => i) => {
26
+ return array1.filter(e => array2.some(f => key(f) === key(e)));
27
+ };
28
+ export const exclude = (array, exclude, key = i => i) => {
29
+ return array.filter(e => !exclude.some(f => key(f) === key(e)));
30
+ };
31
+ export const unique = (array, key) => {
32
+ return [...new Set(array.map(e => key(e)))];
33
+ };
34
+ export const shuffle = (array) => {
35
+ for (let i = array.length - 1; i > 0; i--) {
36
+ const j = Math.floor(Math.random() * (i + 1));
37
+ [array[i], array[j]] = [array[j], array[i]];
38
+ }
39
+ return array;
40
+ };
41
+ export const filterNullAndUndefined = (array) => array.filter((e) => e !== null && e !== undefined);
42
+ export const includeIf = (array, element, include) => [
43
+ ...array,
44
+ ...insertIf(element, include),
45
+ ];
46
+ export const includeBeginIf = (array, element, include) => [...insertIf(element, include), ...array];
47
+ export const includeArrayIf = (array, elements, include) => [...array, ...insertArrayIf(elements, include)];
48
+ export const insertIf = (element, include) => include ? [element] : [];
49
+ export const insertArrayIf = (elements, include) => include ? elements : [];
50
+ export const pickFrom = (array) => array[randomBetween(0, array.length)];
51
+ export const range = ({ start = 0, stop, step = 1 }) => {
52
+ if (step === 0) {
53
+ throw new RangeError('step cannot be equal to 0');
54
+ }
55
+ const isEmpty = (step > 0 && start >= stop) || (step < 0 && start <= stop);
56
+ if (isEmpty)
57
+ return [];
58
+ const result = [];
59
+ for (let i = start; step > 0 ? i < stop : i > stop; i += step) {
60
+ result.push(i);
61
+ }
62
+ return result;
63
+ };
64
+ export const arrayToRecord = (array) => Object.fromEntries(array);
65
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"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"}
package/dist/common.js ADDED
@@ -0,0 +1,14 @@
1
+ import { isString } from 'string';
2
+ export const isDefined = (value) => {
3
+ return value !== undefined && value !== null;
4
+ };
5
+ export const isJSON = (json) => {
6
+ if (!isString(json)) {
7
+ return false;
8
+ }
9
+ return /^[\],:{}\s]*$/.test(json
10
+ .replace(/\\["\\\/bfnrtu]/g, '@')
11
+ .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
12
+ .replace(/(?:^|:|,)(?:\s*\[)+/g, ''));
13
+ };
14
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAQ,EAA2B,EAAE;IAChE,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAW,EAAE;IAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CACzB,IAAI;SACD,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CACN,kEAAkE,EAClE,GAAG,CACJ;SACA,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CACvC,CAAC;AACJ,CAAC,CAAC"}
package/dist/date.js ADDED
@@ -0,0 +1,56 @@
1
+ import moment from 'moment';
2
+ import fr from './locales/fr';
3
+ import { capitalizeAllWords } from './string';
4
+ moment.locale('fr', fr);
5
+ export const isValidDate = (date) => {
6
+ return new Date(date).toString() !== 'Invalid Date';
7
+ };
8
+ export const dateDiff = (date1, date2) => {
9
+ return Math.abs(Math.ceil((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24)));
10
+ };
11
+ export const formatDate = (date) => {
12
+ return capitalizeAllWords(moment(date).format('DD MMMM YYYY'));
13
+ };
14
+ export const formatDateWithDay = (date) => {
15
+ return capitalizeAllWords(moment(date).format('dddd DD MMMM YYYY'));
16
+ };
17
+ export const sameDay = (d1, d2, compareYear = true) => {
18
+ return ((compareYear ? d1.getFullYear() === d2.getFullYear() : true) &&
19
+ d1.getMonth() === d2.getMonth() &&
20
+ d1.getDate() === d2.getDate());
21
+ };
22
+ export const yesterday = () => {
23
+ return moment().locale('fr').subtract(1, 'days').toDate();
24
+ };
25
+ export const precise = (timestamp) => {
26
+ const parts = [];
27
+ const duration = moment.duration(timestamp);
28
+ if (!duration || duration.toISOString() === 'P0D')
29
+ return;
30
+ if (duration.years() >= 1) {
31
+ const years = Math.floor(duration.years());
32
+ parts.push(years + ' ' + (years > 1 ? 'années' : 'année'));
33
+ }
34
+ if (duration.months() >= 1) {
35
+ const months = Math.floor(duration.months());
36
+ parts.push(months + ' mois');
37
+ }
38
+ if (duration.days() >= 1) {
39
+ const days = Math.floor(duration.days());
40
+ parts.push(days + ' ' + (days > 1 ? 'jours' : 'jour'));
41
+ }
42
+ if (duration.hours() >= 1) {
43
+ const hours = Math.floor(duration.hours());
44
+ parts.push(hours + ' ' + (hours > 1 ? 'heures' : 'heure'));
45
+ }
46
+ if (duration.minutes() >= 1) {
47
+ const minutes = Math.floor(duration.minutes());
48
+ parts.push(minutes + ' ' + (minutes > 1 ? 'minutes' : 'minute'));
49
+ }
50
+ if (duration.seconds() >= 1) {
51
+ const seconds = Math.floor(duration.seconds());
52
+ parts.push(seconds + ' ' + (seconds > 1 ? 'secondes' : 'seconde'));
53
+ }
54
+ return parts.join(', ');
55
+ };
56
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ const REGEXP = /^([1-9][0-9]?)([hmd])$/i;
2
+ export const isDuration = (str) => {
3
+ return !!str && REGEXP.test(str);
4
+ };
5
+ export const durationToMs = (str) => {
6
+ const result = REGEXP.exec(str);
7
+ if (!result) {
8
+ return null;
9
+ }
10
+ const [, time, scale] = result;
11
+ const nb = parseInt(time, 10);
12
+ const min = 1000 * 60;
13
+ if (scale === 'm')
14
+ return min * nb;
15
+ if (scale === 'h')
16
+ return min * 60 * nb;
17
+ if (scale === 'd')
18
+ return min * 60 * 24 * nb;
19
+ };
20
+ export const formatDuration = (str) => {
21
+ const result = REGEXP.exec(str);
22
+ if (!result) {
23
+ return null;
24
+ }
25
+ const [, time, scale] = result;
26
+ const nb = parseInt(time, 10);
27
+ if (scale === 'm')
28
+ return `${nb} minute${nb > 1 ? 's' : ''}`;
29
+ if (scale === 'h')
30
+ return `${nb} heure${nb > 1 ? 's' : ''}`;
31
+ if (scale === 'd')
32
+ return `${nb} jour${nb > 1 ? 's' : ''}`;
33
+ };
34
+ //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../src/duration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,yBAAyB,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAW,EAAE;IACxD,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAEtB,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9B,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC7D,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5D,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const isFunction = (fn) => {
2
+ return typeof fn === 'function';
3
+ };
4
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAW,EAAkB,EAAE;IACxD,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC;AAClC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,6 @@ export * from './array';
2
2
  export * from './common';
3
3
  export * from './date';
4
4
  export * from './duration';
5
- export * from './emojis';
6
5
  export * from './number';
7
6
  export * from './string';
8
7
  export * from './function';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}