Skip to content

Commit 4e3d537

Browse files
committed
add utils - unique,only
1 parent 14cfc62 commit 4e3d537

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

index.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,8 @@ export declare function traverse<T>(tree: T & { children: T[] }): Traverse<T & {
3939

4040
/* @file ./src/template.js */
4141
export declare function template<T>(template: string, context: T): any;
42+
43+
44+
/* @file ./src/filter.js */
45+
export declare function unique<T>(array: T[] = []): T[];
46+
export declare function only<T, K extends keyof T>(object: T, keys: K | K[] = []): Pick<T, K>;

index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18+
const { unique, only } = require('./src/filter');
1819

1920
module.exports = Object.assign({}, {
2021
node: require('./src/node'),
@@ -23,5 +24,7 @@ module.exports = Object.assign({}, {
2324
format: require('./src/format'),
2425
traverse: require('./src/traverse'),
2526
template: require('./src/template'),
26-
log: require('./src/log')
27+
log: require('./src/log'),
28+
unique,
29+
only
2730
});

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@rightech/utils",
3-
"version": "0.1.13",
3+
"version": "0.1.14",
44
"description": "",
55
"main": "index.js",
66
"private": false,

src/filter.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function unique(array = []) {
2+
return array.filter((item, pos, self) => {
3+
return self.indexOf(item) === pos;
4+
});
5+
}
6+
7+
function only(object = {}, keys = []) {
8+
keys = Array.isArray(keys) ? keys : [keys];
9+
return keys.reduce((result, key) => {
10+
result[key] = object[key];
11+
return result;
12+
}, {});
13+
}
14+
15+
module.exports = {
16+
unique,
17+
only,
18+
};

0 commit comments

Comments
 (0)