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
							 |