mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-26 06:05:54 +08:00
Added Dot-object typings
This commit is contained in:
64
dot-object/dot-object-tests.ts
Normal file
64
dot-object/dot-object-tests.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/// <reference path='dot-object.d.ts' />
|
||||
|
||||
|
||||
var obj = {
|
||||
'first_name': 'John',
|
||||
'last_name': 'Doe'
|
||||
};
|
||||
|
||||
dot.move('first_name', 'contact.firstname', obj);
|
||||
dot.move('last_name', 'contact.lastname', obj);
|
||||
|
||||
var src = {
|
||||
name: 'John',
|
||||
stuff: {
|
||||
phone: {
|
||||
brand: 'iphone',
|
||||
version: 6
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var tgt = {name: 'Brandon'};
|
||||
|
||||
dot.copy('stuff.phone', 'wanna.haves.phone', src, tgt);
|
||||
|
||||
dot.transfer('stuff.phone', 'wanna.haves.phone', src, tgt);
|
||||
|
||||
var row = {
|
||||
'id': 2,
|
||||
'contact.name.first': 'John',
|
||||
'contact.name.last': 'Doe',
|
||||
'contact.email': 'example@gmail.com',
|
||||
'contact.info.about.me': 'classified',
|
||||
'devices[0]': 'mobile',
|
||||
'devices[1]': 'laptop',
|
||||
'some.other.things.0': 'this',
|
||||
'some.other.things.1': 'that'
|
||||
};
|
||||
|
||||
dot.object(row);
|
||||
|
||||
dot.str('this.is.my.string', 'value', tgt);
|
||||
|
||||
var newObj = {
|
||||
some: {
|
||||
nested: {
|
||||
value: 'Hi there!'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var val = dot.pick('some.nested.value', newObj);
|
||||
console.log(val);
|
||||
|
||||
// Pick & Remove the value
|
||||
val = dot.pick('some.nested.value', newObj, true);
|
||||
|
||||
// shorthand
|
||||
val = dot.remove('some.nested.value', newObj);
|
||||
|
||||
// or use the alias `del`
|
||||
val = dot.del('some.nested.value', newObj);
|
||||
|
||||
var dot = new dot('=>');
|
||||
162
dot-object/dot-object.d.ts
vendored
Normal file
162
dot-object/dot-object.d.ts
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
// Type definitions for Dot-Object v1.4.1
|
||||
// Project: https://github.com/rhalff/dot-object
|
||||
// Definitions by: Niko Kovačič <https://github.com/nkovacic>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
|
||||
declare namespace DotObject {
|
||||
interface Dot {
|
||||
new(separator: string): Dot;
|
||||
/**
|
||||
*
|
||||
* Copy a property from one object to another object.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the property on the other object will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj1
|
||||
* @param {Object} obj2
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
copy(source: string, target: string, obj1: any, obj2: any, mods?: Function | Array<Function>, merge?: boolean): void;
|
||||
/**
|
||||
*
|
||||
* Convert object to dotted-key/value pair
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var tgt = dot.dot(obj)
|
||||
*
|
||||
* or
|
||||
*
|
||||
* var tgt = {}
|
||||
* dot.dot(obj, tgt)
|
||||
*
|
||||
* @param {Object} obj source object
|
||||
* @param {Object} tgt target object
|
||||
*/
|
||||
dot(obj: any, tgt: any): void
|
||||
/**
|
||||
*
|
||||
* Remove value from an object using dot notation.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object} obj
|
||||
* @return {Mixed} The removed value
|
||||
*/
|
||||
del(path: string, obj: any): any;
|
||||
/**
|
||||
*
|
||||
* Move a property from one place to the other.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the target property will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
move(source: string, target: string, obj: any, mods?: Function | Array<Function>, merge?: boolean): void;
|
||||
/**
|
||||
*
|
||||
* Converts an object with dotted-key/value pairs to it's expanded version
|
||||
*
|
||||
* Optionally transformed by a set of modifiers.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var row = {
|
||||
* 'nr': 200,
|
||||
* 'doc.name': ' My Document '
|
||||
* }
|
||||
*
|
||||
* var mods = {
|
||||
* 'doc.name': [_s.trim, _s.underscored]
|
||||
* }
|
||||
*
|
||||
* dot.object(row, mods)
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @param {Object} mods
|
||||
*/
|
||||
object(obj: any, mods?: Function | Array<Function>): void;
|
||||
/**
|
||||
*
|
||||
* Pick a value from an object using dot notation.
|
||||
*
|
||||
* Optionally remove the value
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object} obj
|
||||
* @param {Boolean} remove
|
||||
*/
|
||||
pick(path: string, obj: any, remove?: boolean): void;
|
||||
/**
|
||||
*
|
||||
* Remove value from an object using dot notation.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object} obj
|
||||
* @return {Mixed} The removed value
|
||||
*/
|
||||
remove(path: string, obj: any): any;
|
||||
/**
|
||||
* @param {String} path dotted path
|
||||
* @param {String} v value to be set
|
||||
* @param {Object} obj object to be modified
|
||||
* @param {Function|Array} mods optional modifier
|
||||
*/
|
||||
str(path: string, v: any, obj: Object, mods?: Function | Array<Function>): void;
|
||||
/**
|
||||
*
|
||||
* Transfer a property from one object to another object.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the property on the other object will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj1
|
||||
* @param {Object} obj2
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
transfer(source: string, target: string, obj1: any, obj2: any, mods?: Function | Array<Function>, merge?: boolean): void;
|
||||
/**
|
||||
*
|
||||
* Transform an object
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var obj = {
|
||||
* "id": 1,
|
||||
* "some": {
|
||||
* "thing": "else"
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* var transform = {
|
||||
* "id": "nr",
|
||||
* "some.thing": "name"
|
||||
* }
|
||||
*
|
||||
* var tgt = dot.transform(transform, obj)
|
||||
*
|
||||
* @param {Object} recipe Transform recipe
|
||||
* @param {Object} obj Object to be transformed
|
||||
* @param {Array} mods modifiers for the target
|
||||
*/
|
||||
transform(recipe: any, obj: any, mods?: Function | Array<Function>): void;
|
||||
}
|
||||
}
|
||||
|
||||
declare var dot: DotObject.Dot;
|
||||
|
||||
declare module 'dot-object' {
|
||||
export = dot;
|
||||
}
|
||||
Reference in New Issue
Block a user