mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-21 11:09:53 +08:00
Merge pull request #7911 from newclear/traverse
add type define for traverse
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/// <reference path="traverse.d.ts" />
|
||||
|
||||
import traverse = require('traverse');
|
||||
|
||||
function testForEach(){
|
||||
var obj = [ 5, 6, -3, [ 7, 8, -2, 1 ], { f : 10, g : -13 } ];
|
||||
|
||||
traverse(obj).forEach(function (x) {
|
||||
if (x < 0) this.update(x + 128);
|
||||
});
|
||||
|
||||
console.dir(obj);
|
||||
}
|
||||
|
||||
function testReduce(){
|
||||
var obj = {
|
||||
a : [1,2,3],
|
||||
b : 4,
|
||||
c : [5,6],
|
||||
d : { e : [7,8], f : 9 },
|
||||
};
|
||||
|
||||
var leaves = traverse(obj).reduce(function (acc, x) {
|
||||
if (this.isLeaf) acc.push(x);
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
console.dir(leaves);
|
||||
}
|
||||
|
||||
function testMap(){
|
||||
var c: any[] = [3, 4];
|
||||
var obj = { a : 1, b : 2, c : c };
|
||||
obj.c.push(obj);
|
||||
|
||||
var scrubbed = traverse(obj).map(function (x) {
|
||||
if (this.circular) this.remove()
|
||||
});
|
||||
console.dir(scrubbed);
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// Type definitions for traverse 0.6.6
|
||||
// Project: https://github.com/substack/js-traverse
|
||||
// Definitions by: newclear <https://github.com/newclear>
|
||||
// Definitions: https://github.com/newclear/DefinitelyTyped
|
||||
|
||||
declare module "traverse" {
|
||||
interface Traverse {
|
||||
get(paths: string[]): any;
|
||||
has(paths: string[]): boolean;
|
||||
set(paths: string[], value: any): any;
|
||||
map(cb: (v: any) => void): any;
|
||||
forEach(cb: (v: any) => void): any;
|
||||
reduce(cb: (acc: any, v: any) => void, init?: any): any;
|
||||
paths(): string[];
|
||||
nodes(): any[];
|
||||
clone(): any;
|
||||
}
|
||||
|
||||
function traverse(obj: any): Traverse;
|
||||
|
||||
export = traverse;
|
||||
}
|
||||
Reference in New Issue
Block a user