33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import { parseDef } from "../parseDef.mjs"; | ||
|  | export function parseTupleDef(def, refs) { | ||
|  |     if (def.rest) { | ||
|  |         return { | ||
|  |             type: 'array', | ||
|  |             minItems: def.items.length, | ||
|  |             items: def.items | ||
|  |                 .map((x, i) => parseDef(x._def, { | ||
|  |                 ...refs, | ||
|  |                 currentPath: [...refs.currentPath, 'items', `${i}`], | ||
|  |             })) | ||
|  |                 .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []), | ||
|  |             additionalItems: parseDef(def.rest._def, { | ||
|  |                 ...refs, | ||
|  |                 currentPath: [...refs.currentPath, 'additionalItems'], | ||
|  |             }), | ||
|  |         }; | ||
|  |     } | ||
|  |     else { | ||
|  |         return { | ||
|  |             type: 'array', | ||
|  |             minItems: def.items.length, | ||
|  |             maxItems: def.items.length, | ||
|  |             items: def.items | ||
|  |                 .map((x, i) => parseDef(x._def, { | ||
|  |                 ...refs, | ||
|  |                 currentPath: [...refs.currentPath, 'items', `${i}`], | ||
|  |             })) | ||
|  |                 .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []), | ||
|  |         }; | ||
|  |     } | ||
|  | } | ||
|  | //# sourceMappingURL=tuple.mjs.map
 |