36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | exports.parseTupleDef = parseTupleDef; | ||
|  | const parseDef_1 = require("../parseDef.js"); | ||
|  | function parseTupleDef(def, refs) { | ||
|  |     if (def.rest) { | ||
|  |         return { | ||
|  |             type: 'array', | ||
|  |             minItems: def.items.length, | ||
|  |             items: def.items | ||
|  |                 .map((x, i) => (0, parseDef_1.parseDef)(x._def, { | ||
|  |                 ...refs, | ||
|  |                 currentPath: [...refs.currentPath, 'items', `${i}`], | ||
|  |             })) | ||
|  |                 .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []), | ||
|  |             additionalItems: (0, parseDef_1.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) => (0, parseDef_1.parseDef)(x._def, { | ||
|  |                 ...refs, | ||
|  |                 currentPath: [...refs.currentPath, 'items', `${i}`], | ||
|  |             })) | ||
|  |                 .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []), | ||
|  |         }; | ||
|  |     } | ||
|  | } | ||
|  | //# sourceMappingURL=tuple.js.map
 |