mirror of
				https://github.com/flynx/diff.js.git
				synced 2025-10-30 19:40:10 +00:00 
			
		
		
		
	notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									2ec8480604
								
							
						
					
					
						commit
						356f0702c0
					
				
							
								
								
									
										24
									
								
								diff2.js
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								diff2.js
									
									
									
									
									
								
							| @ -244,6 +244,11 @@ module.HANDLERS = { | |||||||
| 	//false: { match: false },
 | 	//false: { match: false },
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | //
 | ||||||
|  | //	handle(obj[,options])
 | ||||||
|  | //	handle(obj, path[,options])
 | ||||||
|  | //		-> generator
 | ||||||
|  | //
 | ||||||
| //
 | //
 | ||||||
| // Format:
 | // Format:
 | ||||||
| // 	[
 | // 	[
 | ||||||
| @ -274,6 +279,7 @@ function*(obj, path=[], options={}){ | |||||||
| 		: typeof(path) == 'string' ? | 		: typeof(path) == 'string' ? | ||||||
| 			str2path(path) | 			str2path(path) | ||||||
| 		: []  | 		: []  | ||||||
|  | 
 | ||||||
| 	// handle object loops...
 | 	// handle object loops...
 | ||||||
| 	var seen = options.seen = | 	var seen = options.seen = | ||||||
| 	   options.seen || new Map()	 | 	   options.seen || new Map()	 | ||||||
| @ -283,9 +289,9 @@ function*(obj, path=[], options={}){ | |||||||
| 	typeof(obj) == 'object' | 	typeof(obj) == 'object' | ||||||
| 		&& seen.set(obj, path) | 		&& seen.set(obj, path) | ||||||
| 
 | 
 | ||||||
| 	var __next = [] | 	var _next = [] | ||||||
| 	var next = function(...values){ | 	var next = function(...values){ | ||||||
| 		__next.splice(__next.length, 0, ...values) | 		_next.splice(_next.length, 0, ...values) | ||||||
| 		return true } | 		return true } | ||||||
| 	var stop = function(p, v){ | 	var stop = function(p, v){ | ||||||
| 		throw module.STOP(arguments.length == 1 ?  | 		throw module.STOP(arguments.length == 1 ?  | ||||||
| @ -311,10 +317,11 @@ function*(obj, path=[], options={}){ | |||||||
| 			res = h.handle.call(handler, obj, res, next, stop, options) | 			res = h.handle.call(handler, obj, res, next, stop, options) | ||||||
| 			yield res  | 			yield res  | ||||||
| 				&& [path, res] })  | 				&& [path, res] })  | ||||||
|  | 		// clean out remains of handlers that rejected the obj...
 | ||||||
| 		.filter(function(e){  | 		.filter(function(e){  | ||||||
| 			return !!e }) | 			return !!e }) | ||||||
| 	// handle the next stuff...
 | 	// handle the next stuff...
 | ||||||
| 	yield* __next.splice(0, __next.length) | 	yield* _next | ||||||
| 		.iter() | 		.iter() | ||||||
| 		.map(function*([k, v]){ | 		.map(function*([k, v]){ | ||||||
| 			yield* handle(v, path.concat(k), options) }) } | 			yield* handle(v, path.concat(k), options) }) } | ||||||
| @ -407,7 +414,7 @@ types.generator.iter | |||||||
| 			: [path2str(p), v] }) | 			: [path2str(p), v] }) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| // remove attributes from object metadata...
 | // Remove attributes from object metadata...
 | ||||||
| //
 | //
 | ||||||
| // 	stripAttr(attr, ...)
 | // 	stripAttr(attr, ...)
 | ||||||
| // 		-> <chainable>
 | // 		-> <chainable>
 | ||||||
| @ -447,6 +454,15 @@ function(...attrs){ | |||||||
| // NOTE: to set this needs the full basepath to exist...
 | // NOTE: to set this needs the full basepath to exist...
 | ||||||
| //
 | //
 | ||||||
| // XXX need to write a map key to an item that does not exist...
 | // XXX need to write a map key to an item that does not exist...
 | ||||||
|  | // XXX for arrays ans sets need a way to insert values after a specific 
 | ||||||
|  | // 		index, this would require:
 | ||||||
|  | // 			- indicated this in spec:
 | ||||||
|  | // 				a) AFTER/BEFORE symbol(s) in path (???)
 | ||||||
|  | //				b) context (a-la diff)
 | ||||||
|  | // 			- insert to array:
 | ||||||
|  | // 				.splice(i, 0, <value>)
 | ||||||
|  | // 			- insert into set:
 | ||||||
|  | // 				???
 | ||||||
| // XXX str2path and passing in a list path produce different results...
 | // XXX str2path and passing in a list path produce different results...
 | ||||||
| var atPath =  | var atPath =  | ||||||
| module.atPath = | module.atPath = | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user