@kato-lee/utilities 1.0.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/LICENSE +21 -0
- package/README.md +9 -0
- package/_either.d.ts +12 -0
- package/_group-by-key.d.ts +6 -0
- package/_lodash.d.ts +71 -0
- package/_path.d.ts +1 -0
- package/esm2022/_either.mjs +49 -0
- package/esm2022/_group-by-key.mjs +19 -0
- package/esm2022/_lodash.mjs +91 -0
- package/esm2022/_path.mjs +17 -0
- package/esm2022/index.mjs +8 -0
- package/esm2022/js/_clone-deep.mjs +619 -0
- package/esm2022/js/_order-by.mjs +948 -0
- package/esm2022/kato-lee-utilities.mjs +5 -0
- package/fesm2022/kato-lee-utilities.mjs +1749 -0
- package/fesm2022/kato-lee-utilities.mjs.map +1 -0
- package/index.d.ts +4 -0
- package/js/_clone-deep.d.ts +2 -0
- package/js/_clone-deep.js +826 -0
- package/js/_order-by.d.ts +2 -0
- package/js/_order-by.js +1287 -0
- package/js/index.js +2 -0
- package/package.json +18 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 ejdao
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/_either.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface EitherResolver<L, R, V> {
|
|
2
|
+
left?: (_: L) => V | undefined;
|
|
3
|
+
right?: (_: R) => V | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare class Either<L, R> {
|
|
6
|
+
private value;
|
|
7
|
+
private constructor();
|
|
8
|
+
fold<V>(resolver: EitherResolver<L, R, V>): V | undefined;
|
|
9
|
+
static left<L>(value: any, isErr?: boolean): Either<L, any>;
|
|
10
|
+
static right<R>(value: R): Either<any, R>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
package/_lodash.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
type List<T> = ArrayLike<T>;
|
|
2
|
+
type Many<T> = T | ReadonlyArray<T>;
|
|
3
|
+
type ListIterator<T, TResult> = (value: T, index: number, collection: List<T>) => TResult;
|
|
4
|
+
type PartialShallow<T> = {
|
|
5
|
+
[P in keyof T]?: T[P] extends object ? object : T[P];
|
|
6
|
+
};
|
|
7
|
+
type PropertyName = string | number | symbol;
|
|
8
|
+
type IterateeShorthand<T> = PropertyName | [PropertyName, any] | PartialShallow<T>;
|
|
9
|
+
type ListIteratee<T> = ListIterator<T, unknown> | IterateeShorthand<T>;
|
|
10
|
+
/**
|
|
11
|
+
* This method is like _.clone except that it recursively clones value.
|
|
12
|
+
*
|
|
13
|
+
* @param value The value to recursively clone.
|
|
14
|
+
* @return Returns the deep cloned value.
|
|
15
|
+
*/
|
|
16
|
+
export declare function cloneDeep<T>(value: T): T;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a shallow clone of value.
|
|
19
|
+
*
|
|
20
|
+
* @param value The value to clone.
|
|
21
|
+
* @return Returns the cloned value.
|
|
22
|
+
*/
|
|
23
|
+
export declare function clone<T>(value: T): T | Array<T> | Date;
|
|
24
|
+
/**
|
|
25
|
+
* Creates an array of elements, sorted in ascending / descending order by
|
|
26
|
+
* the results of running each element in a collection through each iteratee.
|
|
27
|
+
* This method performs a stable sort, that is, it preserves the original
|
|
28
|
+
* sort order of equal elements. The iteratees are invoked with one argument:
|
|
29
|
+
* (value).
|
|
30
|
+
*
|
|
31
|
+
* @category Collection
|
|
32
|
+
* @param collection The collection to iterate over.
|
|
33
|
+
* @param [iteratees=[_.identity]] The iteratees to sort by.
|
|
34
|
+
* @param [orders] The sort orders of `iteratees`.
|
|
35
|
+
* @param- {Object} [guard] Enables use as an iteratee for functions like `_.reduce`.
|
|
36
|
+
* @returns Returns the new sorted array.
|
|
37
|
+
* @example
|
|
38
|
+
*
|
|
39
|
+
* const users = [
|
|
40
|
+
* { 'user': 'fred', 'age': 48 },
|
|
41
|
+
* { 'user': 'barney', 'age': 34 },
|
|
42
|
+
* { 'user': 'fred', 'age': 42 },
|
|
43
|
+
* { 'user': 'barney', 'age': 36 }
|
|
44
|
+
* ];
|
|
45
|
+
*
|
|
46
|
+
* // sort by `user` in ascending order and by `age` in descending order
|
|
47
|
+
* _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
|
|
48
|
+
* // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
|
|
49
|
+
*/
|
|
50
|
+
export declare function orderBy<T>(collection: ArrayLike<T> | null | undefined, iteratees?: Many<ListIteratee<T>>, orders?: Many<boolean | 'asc' | 'desc'>): T[];
|
|
51
|
+
/**
|
|
52
|
+
* Return a clone without duplicated values.
|
|
53
|
+
*
|
|
54
|
+
* @param collection
|
|
55
|
+
* @param key
|
|
56
|
+
* @example
|
|
57
|
+
*
|
|
58
|
+
* const data = [1,2,2,3,4,4];
|
|
59
|
+
* const result = uniq(data); // [1,2,3,4]
|
|
60
|
+
*
|
|
61
|
+
* const dataArr = [
|
|
62
|
+
* {nombre : 'Enrique', lastName : 'Cuello'},
|
|
63
|
+
* {nombre : 'Maria', lastName : 'Aponte'},
|
|
64
|
+
* {nombre : 'Enrique', lastName : 'De Armas'},
|
|
65
|
+
* ];
|
|
66
|
+
*
|
|
67
|
+
* const resultArr = uniq(dataArr, 'nombre');
|
|
68
|
+
* // [{nombre : 'Enrique', lastName : 'Cuello'},{nombre : 'Maria', lastName : 'Aponte'}]
|
|
69
|
+
*/
|
|
70
|
+
export declare function uniq<T>(collection: Array<T>, key?: string): T[];
|
|
71
|
+
export {};
|
package/_path.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const extname: (path: string) => any;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const isDefined = (object) => typeof object !== 'undefined' && object !== null;
|
|
2
|
+
const isLeft = (value) => isDefined(value.left);
|
|
3
|
+
const isRight = (value) => isDefined(value.right);
|
|
4
|
+
const makeLeft = (value) => ({ left: value });
|
|
5
|
+
const makeRight = (value) => ({ right: value });
|
|
6
|
+
const unwrapEither = (value) => {
|
|
7
|
+
const { left, right } = value;
|
|
8
|
+
const errorMsn_1 = 'Received both left and right values at runtime';
|
|
9
|
+
const errorMsn_2 = 'Received no left or right values at runtime when opening Either';
|
|
10
|
+
if (isDefined(right) && isDefined(left))
|
|
11
|
+
throw new Error(errorMsn_1);
|
|
12
|
+
if (isDefined(left))
|
|
13
|
+
return left;
|
|
14
|
+
if (isDefined(right))
|
|
15
|
+
return right;
|
|
16
|
+
throw new Error(errorMsn_2);
|
|
17
|
+
};
|
|
18
|
+
const getErrorMessage = (error) => {
|
|
19
|
+
if (error) {
|
|
20
|
+
if (error.error)
|
|
21
|
+
return error.error.message || error.error.status;
|
|
22
|
+
else
|
|
23
|
+
return error.message || error;
|
|
24
|
+
}
|
|
25
|
+
else
|
|
26
|
+
return error;
|
|
27
|
+
};
|
|
28
|
+
export class Either {
|
|
29
|
+
constructor(value) {
|
|
30
|
+
this.value = value;
|
|
31
|
+
}
|
|
32
|
+
fold(resolver) {
|
|
33
|
+
if (isRight(this.value) && resolver.right)
|
|
34
|
+
return resolver.right(unwrapEither(this.value));
|
|
35
|
+
if (isLeft(this.value) && resolver.left)
|
|
36
|
+
return resolver.left(unwrapEither(this.value));
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
static left(value, isErr = true) {
|
|
40
|
+
if (typeof value === 'object' && isErr)
|
|
41
|
+
return new Either(makeLeft(getErrorMessage(value)));
|
|
42
|
+
else
|
|
43
|
+
return new Either(makeLeft(value));
|
|
44
|
+
}
|
|
45
|
+
static right(value) {
|
|
46
|
+
return new Either(makeRight(value));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2VpdGhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcmllcy91dGlsaXRpZXMvX2VpdGhlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQVcsRUFBVyxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFFN0YsTUFBTSxNQUFNLEdBQUcsQ0FBTyxLQUF3QixFQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzRixNQUFNLE9BQU8sR0FBRyxDQUFPLEtBQXdCLEVBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRTlGLE1BQU0sUUFBUSxHQUFHLENBQUksS0FBUSxFQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDN0QsTUFBTSxTQUFTLEdBQUcsQ0FBSSxLQUFRLEVBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUVoRSxNQUFNLFlBQVksR0FBc0IsQ0FBTyxLQUF3QixFQUFFLEVBQUU7SUFDekUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFOUIsTUFBTSxVQUFVLEdBQUcsZ0RBQWdELENBQUM7SUFDcEUsTUFBTSxVQUFVLEdBQUcsaUVBQWlFLENBQUM7SUFFckYsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFzQixDQUFDO0lBQ25ELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBdUIsQ0FBQztJQUVyRCxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBVSxFQUFPLEVBQUU7SUFDMUMsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFJLEtBQUssQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzs7WUFDN0QsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztLQUNwQzs7UUFBTSxPQUFPLEtBQUssQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sTUFBTTtJQUNqQixZQUE0QixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUFHLENBQUM7SUFFakQsSUFBSSxDQUFJLFFBQWlDO1FBQzlDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSztZQUFFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJO1lBQUUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBSSxLQUFVLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDNUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSztZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBQzFGLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUksS0FBUTtRQUM3QixPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgTGVmdDxMPiA9IHsgbGVmdDogTDsgcmlnaHQ/OiBuZXZlciB9O1xyXG50eXBlIFJpZ2h0PFI+ID0geyBsZWZ0PzogbmV2ZXI7IHJpZ2h0OiBSIH07XHJcbnR5cGUgVW53cmFwRWl0aGVyVmFsdWUgPSA8TCwgUj4odmFsdWU6IEVpdGhlclZhbHVlPEwsIFI+KSA9PiBOb25OdWxsYWJsZTxMIHwgUj47XHJcbnR5cGUgRWl0aGVyVmFsdWU8TCwgUj4gPSBOb25OdWxsYWJsZTxMZWZ0PEw+IHwgUmlnaHQ8Uj4+O1xyXG5cclxuaW50ZXJmYWNlIEVpdGhlclJlc29sdmVyPEwsIFIsIFY+IHtcclxuICBsZWZ0PzogKF86IEwpID0+IFYgfCB1bmRlZmluZWQ7XHJcbiAgcmlnaHQ/OiAoXzogUikgPT4gViB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuY29uc3QgaXNEZWZpbmVkID0gKG9iamVjdDogYW55KTogYm9vbGVhbiA9PiB0eXBlb2Ygb2JqZWN0ICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QgIT09IG51bGw7XHJcblxyXG5jb25zdCBpc0xlZnQgPSA8TCwgUj4odmFsdWU6IEVpdGhlclZhbHVlPEwsIFI+KTogdmFsdWUgaXMgTGVmdDxMPiA9PiBpc0RlZmluZWQodmFsdWUubGVmdCk7XHJcbmNvbnN0IGlzUmlnaHQgPSA8TCwgUj4odmFsdWU6IEVpdGhlclZhbHVlPEwsIFI+KTogdmFsdWUgaXMgUmlnaHQ8Uj4gPT4gaXNEZWZpbmVkKHZhbHVlLnJpZ2h0KTtcclxuXHJcbmNvbnN0IG1ha2VMZWZ0ID0gPEw+KHZhbHVlOiBMKTogTGVmdDxMPiA9PiAoeyBsZWZ0OiB2YWx1ZSB9KTtcclxuY29uc3QgbWFrZVJpZ2h0ID0gPFI+KHZhbHVlOiBSKTogUmlnaHQ8Uj4gPT4gKHsgcmlnaHQ6IHZhbHVlIH0pO1xyXG5cclxuY29uc3QgdW53cmFwRWl0aGVyOiBVbndyYXBFaXRoZXJWYWx1ZSA9IDxMLCBSPih2YWx1ZTogRWl0aGVyVmFsdWU8TCwgUj4pID0+IHtcclxuICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSB2YWx1ZTtcclxuXHJcbiAgY29uc3QgZXJyb3JNc25fMSA9ICdSZWNlaXZlZCBib3RoIGxlZnQgYW5kIHJpZ2h0IHZhbHVlcyBhdCBydW50aW1lJztcclxuICBjb25zdCBlcnJvck1zbl8yID0gJ1JlY2VpdmVkIG5vIGxlZnQgb3IgcmlnaHQgdmFsdWVzIGF0IHJ1bnRpbWUgd2hlbiBvcGVuaW5nIEVpdGhlcic7XHJcblxyXG4gIGlmIChpc0RlZmluZWQocmlnaHQpICYmIGlzRGVmaW5lZChsZWZ0KSkgdGhyb3cgbmV3IEVycm9yKGVycm9yTXNuXzEpO1xyXG4gIGlmIChpc0RlZmluZWQobGVmdCkpIHJldHVybiBsZWZ0IGFzIE5vbk51bGxhYmxlPEw+O1xyXG4gIGlmIChpc0RlZmluZWQocmlnaHQpKSByZXR1cm4gcmlnaHQgYXMgTm9uTnVsbGFibGU8Uj47XHJcblxyXG4gIHRocm93IG5ldyBFcnJvcihlcnJvck1zbl8yKTtcclxufTtcclxuXHJcbmNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KTogYW55ID0+IHtcclxuICBpZiAoZXJyb3IpIHtcclxuICAgIGlmIChlcnJvci5lcnJvcikgcmV0dXJuIGVycm9yLmVycm9yLm1lc3NhZ2UgfHwgZXJyb3IuZXJyb3Iuc3RhdHVzO1xyXG4gICAgZWxzZSByZXR1cm4gZXJyb3IubWVzc2FnZSB8fCBlcnJvcjtcclxuICB9IGVsc2UgcmV0dXJuIGVycm9yO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIEVpdGhlcjxMLCBSPiB7XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBFaXRoZXJWYWx1ZTxMLCBSPikge31cclxuXHJcbiAgcHVibGljIGZvbGQ8Vj4ocmVzb2x2ZXI6IEVpdGhlclJlc29sdmVyPEwsIFIsIFY+KTogViB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoaXNSaWdodCh0aGlzLnZhbHVlKSAmJiByZXNvbHZlci5yaWdodCkgcmV0dXJuIHJlc29sdmVyLnJpZ2h0KHVud3JhcEVpdGhlcih0aGlzLnZhbHVlKSk7XHJcbiAgICBpZiAoaXNMZWZ0KHRoaXMudmFsdWUpICYmIHJlc29sdmVyLmxlZnQpIHJldHVybiByZXNvbHZlci5sZWZ0KHVud3JhcEVpdGhlcih0aGlzLnZhbHVlKSk7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBsZWZ0PEw+KHZhbHVlOiBhbnksIGlzRXJyID0gdHJ1ZSk6IEVpdGhlcjxMLCBhbnk+IHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGlzRXJyKSByZXR1cm4gbmV3IEVpdGhlcihtYWtlTGVmdDxMPihnZXRFcnJvck1lc3NhZ2UodmFsdWUpKSk7XHJcbiAgICBlbHNlIHJldHVybiBuZXcgRWl0aGVyKG1ha2VMZWZ0PEw+KHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHJpZ2h0PFI+KHZhbHVlOiBSKTogRWl0aGVyPGFueSwgUj4ge1xyXG4gICAgcmV0dXJuIG5ldyBFaXRoZXIobWFrZVJpZ2h0PFI+KHZhbHVlKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function groupByKey(data, columnWithKey, columnWithName) {
|
|
2
|
+
const newArray = [];
|
|
3
|
+
const dataFrezzed = Object.freeze(data);
|
|
4
|
+
dataFrezzed.forEach(el => {
|
|
5
|
+
const tempArray = newArray.filter(j => j.key === el[columnWithKey]);
|
|
6
|
+
if (tempArray.length > 0) {
|
|
7
|
+
newArray[newArray.indexOf(tempArray[0])].rows.push(el);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
newArray.push({
|
|
11
|
+
key: el[columnWithKey],
|
|
12
|
+
name: el[columnWithName || columnWithKey],
|
|
13
|
+
rows: [el],
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return newArray;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dyb3VwLWJ5LWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcmllcy91dGlsaXRpZXMvX2dyb3VwLWJ5LWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFVBQVUsVUFBVSxDQUFJLElBQWMsRUFBRSxhQUFxQixFQUFFLGNBQXVCO0lBQzFGLE1BQU0sUUFBUSxHQUFvQixFQUFFLENBQUM7SUFFckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFNLEVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzdFLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEdBQUcsRUFBRyxFQUFVLENBQUMsYUFBYSxDQUFXO2dCQUN6QyxJQUFJLEVBQUcsRUFBVSxDQUFDLGNBQWMsSUFBSSxhQUFhLENBQVc7Z0JBQzVELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNYLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYWtHcm91cGVkPFQ+IHtcclxuICBrZXk6IGFueTtcclxuICBuYW1lOiBhbnk7XHJcbiAgcm93czogVFtdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeUtleTxUPihkYXRhOiBBcnJheTxUPiwgY29sdW1uV2l0aEtleTogc3RyaW5nLCBjb2x1bW5XaXRoTmFtZT86IHN0cmluZykge1xyXG4gIGNvbnN0IG5ld0FycmF5OiBUYWtHcm91cGVkPFQ+W10gPSBbXTtcclxuXHJcbiAgY29uc3QgZGF0YUZyZXp6ZWQgPSBPYmplY3QuZnJlZXplKGRhdGEpO1xyXG5cclxuICBkYXRhRnJlenplZC5mb3JFYWNoKGVsID0+IHtcclxuICAgIGNvbnN0IHRlbXBBcnJheSA9IG5ld0FycmF5LmZpbHRlcihqID0+IGoua2V5ID09PSAoZWwgYXMgYW55KVtjb2x1bW5XaXRoS2V5XSk7XHJcbiAgICBpZiAodGVtcEFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbmV3QXJyYXlbbmV3QXJyYXkuaW5kZXhPZih0ZW1wQXJyYXlbMF0pXS5yb3dzLnB1c2goZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3QXJyYXkucHVzaCh7XHJcbiAgICAgICAga2V5OiAoZWwgYXMgYW55KVtjb2x1bW5XaXRoS2V5XSBhcyBzdHJpbmcsXHJcbiAgICAgICAgbmFtZTogKGVsIGFzIGFueSlbY29sdW1uV2l0aE5hbWUgfHwgY29sdW1uV2l0aEtleV0gYXMgc3RyaW5nLFxyXG4gICAgICAgIHJvd3M6IFtlbF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gbmV3QXJyYXk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import zxhiddenCustomCloneDeepByJeremyAshkenas from './js/_clone-deep';
|
|
2
|
+
import zxhiddenCustomOrderByByJeremyAshkenas from './js/_order-by';
|
|
3
|
+
/**
|
|
4
|
+
* This method is like _.clone except that it recursively clones value.
|
|
5
|
+
*
|
|
6
|
+
* @param value The value to recursively clone.
|
|
7
|
+
* @return Returns the deep cloned value.
|
|
8
|
+
*/
|
|
9
|
+
export function cloneDeep(value) {
|
|
10
|
+
return zxhiddenCustomCloneDeepByJeremyAshkenas(value);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a shallow clone of value.
|
|
14
|
+
*
|
|
15
|
+
* @param value The value to clone.
|
|
16
|
+
* @return Returns the cloned value.
|
|
17
|
+
*/
|
|
18
|
+
export function clone(value) {
|
|
19
|
+
if (value instanceof Date)
|
|
20
|
+
return new Date(value.getTime());
|
|
21
|
+
if (value instanceof Array)
|
|
22
|
+
return value.slice();
|
|
23
|
+
if (typeof value === 'object')
|
|
24
|
+
return JSON.parse(JSON.stringify(value));
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates an array of elements, sorted in ascending / descending order by
|
|
29
|
+
* the results of running each element in a collection through each iteratee.
|
|
30
|
+
* This method performs a stable sort, that is, it preserves the original
|
|
31
|
+
* sort order of equal elements. The iteratees are invoked with one argument:
|
|
32
|
+
* (value).
|
|
33
|
+
*
|
|
34
|
+
* @category Collection
|
|
35
|
+
* @param collection The collection to iterate over.
|
|
36
|
+
* @param [iteratees=[_.identity]] The iteratees to sort by.
|
|
37
|
+
* @param [orders] The sort orders of `iteratees`.
|
|
38
|
+
* @param- {Object} [guard] Enables use as an iteratee for functions like `_.reduce`.
|
|
39
|
+
* @returns Returns the new sorted array.
|
|
40
|
+
* @example
|
|
41
|
+
*
|
|
42
|
+
* const users = [
|
|
43
|
+
* { 'user': 'fred', 'age': 48 },
|
|
44
|
+
* { 'user': 'barney', 'age': 34 },
|
|
45
|
+
* { 'user': 'fred', 'age': 42 },
|
|
46
|
+
* { 'user': 'barney', 'age': 36 }
|
|
47
|
+
* ];
|
|
48
|
+
*
|
|
49
|
+
* // sort by `user` in ascending order and by `age` in descending order
|
|
50
|
+
* _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
|
|
51
|
+
* // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
|
|
52
|
+
*/
|
|
53
|
+
export function orderBy(collection, iteratees, orders) {
|
|
54
|
+
return zxhiddenCustomOrderByByJeremyAshkenas(collection, iteratees, orders);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Return a clone without duplicated values.
|
|
58
|
+
*
|
|
59
|
+
* @param collection
|
|
60
|
+
* @param key
|
|
61
|
+
* @example
|
|
62
|
+
*
|
|
63
|
+
* const data = [1,2,2,3,4,4];
|
|
64
|
+
* const result = uniq(data); // [1,2,3,4]
|
|
65
|
+
*
|
|
66
|
+
* const dataArr = [
|
|
67
|
+
* {nombre : 'Enrique', lastName : 'Cuello'},
|
|
68
|
+
* {nombre : 'Maria', lastName : 'Aponte'},
|
|
69
|
+
* {nombre : 'Enrique', lastName : 'De Armas'},
|
|
70
|
+
* ];
|
|
71
|
+
*
|
|
72
|
+
* const resultArr = uniq(dataArr, 'nombre');
|
|
73
|
+
* // [{nombre : 'Enrique', lastName : 'Cuello'},{nombre : 'Maria', lastName : 'Aponte'}]
|
|
74
|
+
*/
|
|
75
|
+
export function uniq(collection, key) {
|
|
76
|
+
let result = [];
|
|
77
|
+
collection.forEach((_, i) => {
|
|
78
|
+
if (!i)
|
|
79
|
+
result.push(_);
|
|
80
|
+
if (!key) {
|
|
81
|
+
if (!result.filter(_2 => _2 === _).length)
|
|
82
|
+
result.push(_);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (!result.filter(_2 => _2[key] === _[key]).length)
|
|
86
|
+
result.push(_);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2xvZGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcmllcy91dGlsaXRpZXMvX2xvZGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLHVDQUF1QyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8scUNBQXFDLE1BQU0sZ0JBQWdCLENBQUM7QUFZbkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFJLEtBQVE7SUFDbkMsT0FBTyx1Q0FBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQVE7SUFDL0IsSUFBSSxLQUFLLFlBQVksSUFBSTtRQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUQsSUFBSSxLQUFLLFlBQVksS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFeEUsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixVQUEyQyxFQUMzQyxTQUFpQyxFQUNqQyxNQUF1QztJQUV2QyxPQUFPLHFDQUFxQyxDQUFDLFVBQWlCLEVBQUUsU0FBZ0IsRUFBRSxNQUFhLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksVUFBb0IsRUFBRSxHQUFZO0lBQ3hELElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztJQUV2QixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQyxDQUFDO1lBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNEO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNO2dCQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgenhoaWRkZW5DdXN0b21DbG9uZURlZXBCeUplcmVteUFzaGtlbmFzIGZyb20gJy4vanMvX2Nsb25lLWRlZXAnO1xyXG5pbXBvcnQgenhoaWRkZW5DdXN0b21PcmRlckJ5QnlKZXJlbXlBc2hrZW5hcyBmcm9tICcuL2pzL19vcmRlci1ieSc7XHJcblxyXG50eXBlIExpc3Q8VD4gPSBBcnJheUxpa2U8VD47XHJcbnR5cGUgTWFueTxUPiA9IFQgfCBSZWFkb25seUFycmF5PFQ+O1xyXG50eXBlIExpc3RJdGVyYXRvcjxULCBUUmVzdWx0PiA9ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgY29sbGVjdGlvbjogTGlzdDxUPikgPT4gVFJlc3VsdDtcclxudHlwZSBQYXJ0aWFsU2hhbGxvdzxUPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUXT86IFRbUF0gZXh0ZW5kcyBvYmplY3QgPyBvYmplY3QgOiBUW1BdO1xyXG59O1xyXG50eXBlIFByb3BlcnR5TmFtZSA9IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbDtcclxudHlwZSBJdGVyYXRlZVNob3J0aGFuZDxUPiA9IFByb3BlcnR5TmFtZSB8IFtQcm9wZXJ0eU5hbWUsIGFueV0gfCBQYXJ0aWFsU2hhbGxvdzxUPjtcclxudHlwZSBMaXN0SXRlcmF0ZWU8VD4gPSBMaXN0SXRlcmF0b3I8VCwgdW5rbm93bj4gfCBJdGVyYXRlZVNob3J0aGFuZDxUPjtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIF8uY2xvbmUgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIHZhbHVlLlxyXG4gKlxyXG4gKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxyXG4gKiBAcmV0dXJuIFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lRGVlcDxUPih2YWx1ZTogVCk6IFQge1xyXG4gIHJldHVybiB6eGhpZGRlbkN1c3RvbUNsb25lRGVlcEJ5SmVyZW15QXNoa2VuYXModmFsdWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdmFsdWUuXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXHJcbiAqIEByZXR1cm4gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lPFQ+KHZhbHVlOiBUKTogVCB8IEFycmF5PFQ+IHwgRGF0ZSB7XHJcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSk7XHJcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiB2YWx1ZS5zbGljZSgpO1xyXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG5cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzLCBzb3J0ZWQgaW4gYXNjZW5kaW5nIC8gZGVzY2VuZGluZyBvcmRlciBieVxyXG4gKiB0aGUgcmVzdWx0cyBvZiBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBhIGNvbGxlY3Rpb24gdGhyb3VnaCBlYWNoIGl0ZXJhdGVlLlxyXG4gKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyBhIHN0YWJsZSBzb3J0LCB0aGF0IGlzLCBpdCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsXHJcbiAqIHNvcnQgb3JkZXIgb2YgZXF1YWwgZWxlbWVudHMuIFRoZSBpdGVyYXRlZXMgYXJlIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6XHJcbiAqICh2YWx1ZSkuXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cclxuICogQHBhcmFtIFtpdGVyYXRlZXM9W18uaWRlbnRpdHldXSBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXHJcbiAqIEBwYXJhbSBbb3JkZXJzXSBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXHJcbiAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ucmVkdWNlYC5cclxuICogQHJldHVybnMgUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cclxuICogQGV4YW1wbGVcclxuICpcclxuICogY29uc3QgdXNlcnMgPSBbXHJcbiAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDggfSxcclxuICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9LFxyXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQyIH0sXHJcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxyXG4gKiBdO1xyXG4gKlxyXG4gKiAvLyBzb3J0IGJ5IGB1c2VyYCBpbiBhc2NlbmRpbmcgb3JkZXIgYW5kIGJ5IGBhZ2VgIGluIGRlc2NlbmRpbmcgb3JkZXJcclxuICogXy5vcmRlckJ5KHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10sIFsnYXNjJywgJ2Rlc2MnXSk7XHJcbiAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDJdXVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9yZGVyQnk8VD4oXHJcbiAgY29sbGVjdGlvbjogQXJyYXlMaWtlPFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICBpdGVyYXRlZXM/OiBNYW55PExpc3RJdGVyYXRlZTxUPj4sXHJcbiAgb3JkZXJzPzogTWFueTxib29sZWFuIHwgJ2FzYycgfCAnZGVzYyc+XHJcbik6IFRbXSB7XHJcbiAgcmV0dXJuIHp4aGlkZGVuQ3VzdG9tT3JkZXJCeUJ5SmVyZW15QXNoa2VuYXMoY29sbGVjdGlvbiBhcyBhbnksIGl0ZXJhdGVlcyBhcyBhbnksIG9yZGVycyBhcyBhbnkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGEgY2xvbmUgd2l0aG91dCBkdXBsaWNhdGVkIHZhbHVlcy5cclxuICpcclxuICogQHBhcmFtIGNvbGxlY3Rpb25cclxuICogQHBhcmFtIGtleVxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiBjb25zdCBkYXRhID0gWzEsMiwyLDMsNCw0XTtcclxuICogY29uc3QgcmVzdWx0ID0gdW5pcShkYXRhKTsgLy8gWzEsMiwzLDRdXHJcbiAqXHJcbiAqIGNvbnN0IGRhdGFBcnIgPSBbXHJcbiAqIHtub21icmUgOiAnRW5yaXF1ZScsIGxhc3ROYW1lIDogJ0N1ZWxsbyd9LFxyXG4gKiB7bm9tYnJlIDogJ01hcmlhJywgbGFzdE5hbWUgOiAnQXBvbnRlJ30sXHJcbiAqIHtub21icmUgOiAnRW5yaXF1ZScsIGxhc3ROYW1lIDogJ0RlIEFybWFzJ30sXHJcbiAqIF07XHJcbiAqXHJcbiAqIGNvbnN0IHJlc3VsdEFyciA9IHVuaXEoZGF0YUFyciwgJ25vbWJyZScpO1xyXG4gKiAvLyBbe25vbWJyZSA6ICdFbnJpcXVlJywgbGFzdE5hbWUgOiAnQ3VlbGxvJ30se25vbWJyZSA6ICdNYXJpYScsIGxhc3ROYW1lIDogJ0Fwb250ZSd9XVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVuaXE8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIGtleT86IHN0cmluZyk6IFRbXSB7XHJcbiAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcclxuXHJcbiAgY29sbGVjdGlvbi5mb3JFYWNoKChfOiBhbnksIGkpID0+IHtcclxuICAgIGlmICghaSkgcmVzdWx0LnB1c2goXyk7XHJcbiAgICBpZiAoIWtleSkge1xyXG4gICAgICBpZiAoIXJlc3VsdC5maWx0ZXIoXzIgPT4gXzIgPT09IF8pLmxlbmd0aCkgcmVzdWx0LnB1c2goXyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXJlc3VsdC5maWx0ZXIoXzIgPT4gXzJba2V5XSA9PT0gX1trZXldKS5sZW5ndGgpIHJlc3VsdC5wdXNoKF8pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Regex to split a windows path into three parts: [*, device, slash,
|
|
2
|
+
// tail] windows-only
|
|
3
|
+
const splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
|
|
4
|
+
// Regex to split the tail part of the above into [*, dir, basename, ext]
|
|
5
|
+
const splitTailRe = /^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/;
|
|
6
|
+
// Function to split a filename into [root, dir, basename, ext]
|
|
7
|
+
function win32SplitPath(filename) {
|
|
8
|
+
// Separate device+slash from tail
|
|
9
|
+
const result = splitDeviceRe.exec(filename), device = (result[1] || '') + (result[2] || ''), tail = result[3] || '';
|
|
10
|
+
// Split the tail into dir, basename and extension
|
|
11
|
+
const result2 = splitTailRe.exec(tail), dir = result2[1], basename = result2[2], ext = result2[3];
|
|
12
|
+
return [device, dir, basename, ext];
|
|
13
|
+
}
|
|
14
|
+
export const extname = (path) => {
|
|
15
|
+
return win32SplitPath(path)[3];
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3BhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJyYXJpZXMvdXRpbGl0aWVzL19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFFQUFxRTtBQUNyRSxxQkFBcUI7QUFDckIsTUFBTSxhQUFhLEdBQUcsb0VBQW9FLENBQUM7QUFFM0YseUVBQXlFO0FBQ3pFLE1BQU0sV0FBVyxHQUFHLCtEQUErRCxDQUFDO0FBRXBGLCtEQUErRDtBQUMvRCxTQUFTLGNBQWMsQ0FBQyxRQUFhO0lBQ25DLGtDQUFrQztJQUNsQyxNQUFNLE1BQU0sR0FBUSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUM5QyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQzlDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLGtEQUFrRDtJQUNsRCxNQUFNLE9BQU8sR0FBUSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUN6QyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNoQixRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNyQixHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDdEMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVnZXggdG8gc3BsaXQgYSB3aW5kb3dzIHBhdGggaW50byB0aHJlZSBwYXJ0czogWyosIGRldmljZSwgc2xhc2gsXHJcbi8vIHRhaWxdIHdpbmRvd3Mtb25seVxyXG5jb25zdCBzcGxpdERldmljZVJlID0gL14oW2EtekEtWl06fFtcXFxcXFwvXXsyfVteXFxcXFxcL10rW1xcXFxcXC9dK1teXFxcXFxcL10rKT8oW1xcXFxcXC9dKT8oW1xcc1xcU10qPykkLztcclxuXHJcbi8vIFJlZ2V4IHRvIHNwbGl0IHRoZSB0YWlsIHBhcnQgb2YgdGhlIGFib3ZlIGludG8gWyosIGRpciwgYmFzZW5hbWUsIGV4dF1cclxuY29uc3Qgc3BsaXRUYWlsUmUgPSAvXihbXFxzXFxTXSo/KSgoPzpcXC57MSwyfXxbXlxcXFxcXC9dKz98KShcXC5bXi5cXC9cXFxcXSp8KSkoPzpbXFxcXFxcL10qKSQvO1xyXG5cclxuLy8gRnVuY3Rpb24gdG8gc3BsaXQgYSBmaWxlbmFtZSBpbnRvIFtyb290LCBkaXIsIGJhc2VuYW1lLCBleHRdXHJcbmZ1bmN0aW9uIHdpbjMyU3BsaXRQYXRoKGZpbGVuYW1lOiBhbnkpIHtcclxuICAvLyBTZXBhcmF0ZSBkZXZpY2Urc2xhc2ggZnJvbSB0YWlsXHJcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSBzcGxpdERldmljZVJlLmV4ZWMoZmlsZW5hbWUpLFxyXG4gICAgZGV2aWNlID0gKHJlc3VsdFsxXSB8fCAnJykgKyAocmVzdWx0WzJdIHx8ICcnKSxcclxuICAgIHRhaWwgPSByZXN1bHRbM10gfHwgJyc7XHJcbiAgLy8gU3BsaXQgdGhlIHRhaWwgaW50byBkaXIsIGJhc2VuYW1lIGFuZCBleHRlbnNpb25cclxuICBjb25zdCByZXN1bHQyOiBhbnkgPSBzcGxpdFRhaWxSZS5leGVjKHRhaWwpLFxyXG4gICAgZGlyID0gcmVzdWx0MlsxXSxcclxuICAgIGJhc2VuYW1lID0gcmVzdWx0MlsyXSxcclxuICAgIGV4dCA9IHJlc3VsdDJbM107XHJcbiAgcmV0dXJuIFtkZXZpY2UsIGRpciwgYmFzZW5hbWUsIGV4dF07XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBleHRuYW1lID0gKHBhdGg6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiB3aW4zMlNwbGl0UGF0aChwYXRoKVszXTtcclxufTtcclxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of @kato-lee/utilities
|
|
3
|
+
*/
|
|
4
|
+
export * from './_group-by-key';
|
|
5
|
+
export * from './_lodash';
|
|
6
|
+
export * from './_either';
|
|
7
|
+
export * from './_path';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJyYXJpZXMvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAa2F0by1sZWUvdXRpbGl0aWVzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9fZ3JvdXAtYnkta2V5JztcclxuZXhwb3J0ICogZnJvbSAnLi9fbG9kYXNoJztcclxuZXhwb3J0ICogZnJvbSAnLi9fZWl0aGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9fcGF0aCc7XHJcbiJdfQ==
|