You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					102 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					102 lines
				
				2.5 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								declare const dotProp: {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									@param object - Object to get the `path` value.
							 | 
						||
| 
								 | 
							
									@param path - Path of the property in the object, using `.` to separate each nested key. Use `\\.` if you have a `.` in the key.
							 | 
						||
| 
								 | 
							
									@param defaultValue - Default value.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@example
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									import dotProp = require('dot-prop');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.get({foo: {bar: 'unicorn'}}, 'foo.bar');
							 | 
						||
| 
								 | 
							
									//=> 'unicorn'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.get({foo: {bar: 'a'}}, 'foo.notDefined.deep');
							 | 
						||
| 
								 | 
							
									//=> undefined
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.get({foo: {bar: 'a'}}, 'foo.notDefined.deep', 'default value');
							 | 
						||
| 
								 | 
							
									//=> 'default value'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.get({foo: {'dot.dot': 'unicorn'}}, 'foo.dot\\.dot');
							 | 
						||
| 
								 | 
							
									//=> 'unicorn'
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									*/
							 | 
						||
| 
								 | 
							
									get<T>(
							 | 
						||
| 
								 | 
							
										object: {[key: string]: any} | undefined,
							 | 
						||
| 
								 | 
							
										path: string
							 | 
						||
| 
								 | 
							
									): T | undefined;
							 | 
						||
| 
								 | 
							
									get<T>(
							 | 
						||
| 
								 | 
							
										object: {[key: string]: any} | undefined,
							 | 
						||
| 
								 | 
							
										path: string,
							 | 
						||
| 
								 | 
							
										defaultValue: T
							 | 
						||
| 
								 | 
							
									): T;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									@param object - Object to set the `path` value.
							 | 
						||
| 
								 | 
							
									@param path - Path of the property in the object, using `.` to separate each nested key. Use `\\.` if you have a `.` in the key.
							 | 
						||
| 
								 | 
							
									@param value - Value to set at `path`.
							 | 
						||
| 
								 | 
							
									@returns The object.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@example
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									import dotProp = require('dot-prop');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									const object = {foo: {bar: 'a'}};
							 | 
						||
| 
								 | 
							
									dotProp.set(object, 'foo.bar', 'b');
							 | 
						||
| 
								 | 
							
									console.log(object);
							 | 
						||
| 
								 | 
							
									//=> {foo: {bar: 'b'}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									const foo = dotProp.set({}, 'foo.bar', 'c');
							 | 
						||
| 
								 | 
							
									console.log(foo);
							 | 
						||
| 
								 | 
							
									//=> {foo: {bar: 'c'}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.set(object, 'foo.baz', 'x');
							 | 
						||
| 
								 | 
							
									console.log(object);
							 | 
						||
| 
								 | 
							
									//=> {foo: {bar: 'b', baz: 'x'}}
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									*/
							 | 
						||
| 
								 | 
							
									set<T extends {[key: string]: any}>(
							 | 
						||
| 
								 | 
							
										object: T,
							 | 
						||
| 
								 | 
							
										path: string,
							 | 
						||
| 
								 | 
							
										value: unknown
							 | 
						||
| 
								 | 
							
									): T;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									@param object - Object to test the `path` value.
							 | 
						||
| 
								 | 
							
									@param path - Path of the property in the object, using `.` to separate each nested key. Use `\\.` if you have a `.` in the key.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@example
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									import dotProp = require('dot-prop');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dotProp.has({foo: {bar: 'unicorn'}}, 'foo.bar');
							 | 
						||
| 
								 | 
							
									//=> true
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									*/
							 | 
						||
| 
								 | 
							
									has(object: {[key: string]: any} | undefined, path: string): boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									@param object - Object to delete the `path` value.
							 | 
						||
| 
								 | 
							
									@param path - Path of the property in the object, using `.` to separate each nested key. Use `\\.` if you have a `.` in the key.
							 | 
						||
| 
								 | 
							
									@returns A boolean of whether the property existed before being deleted.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@example
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									import dotProp = require('dot-prop');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									const object = {foo: {bar: 'a'}};
							 | 
						||
| 
								 | 
							
									dotProp.delete(object, 'foo.bar');
							 | 
						||
| 
								 | 
							
									console.log(object);
							 | 
						||
| 
								 | 
							
									//=> {foo: {}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									object.foo.bar = {x: 'y', y: 'x'};
							 | 
						||
| 
								 | 
							
									dotProp.delete(object, 'foo.bar.x');
							 | 
						||
| 
								 | 
							
									console.log(object);
							 | 
						||
| 
								 | 
							
									//=> {foo: {bar: {y: 'x'}}}
							 | 
						||
| 
								 | 
							
									```
							 | 
						||
| 
								 | 
							
									*/
							 | 
						||
| 
								 | 
							
									delete(object: {[key: string]: any}, path: string): boolean;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export = dotProp;
							 |