50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
Object.defineProperty(exports, "__esModule", { value: true });
 | 
						|
exports.parseDateDef = parseDateDef;
 | 
						|
const errorMessages_1 = require("../errorMessages.js");
 | 
						|
function parseDateDef(def, refs, overrideDateStrategy) {
 | 
						|
    const strategy = overrideDateStrategy ?? refs.dateStrategy;
 | 
						|
    if (Array.isArray(strategy)) {
 | 
						|
        return {
 | 
						|
            anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),
 | 
						|
        };
 | 
						|
    }
 | 
						|
    switch (strategy) {
 | 
						|
        case 'string':
 | 
						|
        case 'format:date-time':
 | 
						|
            return {
 | 
						|
                type: 'string',
 | 
						|
                format: 'date-time',
 | 
						|
            };
 | 
						|
        case 'format:date':
 | 
						|
            return {
 | 
						|
                type: 'string',
 | 
						|
                format: 'date',
 | 
						|
            };
 | 
						|
        case 'integer':
 | 
						|
            return integerDateParser(def, refs);
 | 
						|
    }
 | 
						|
}
 | 
						|
const integerDateParser = (def, refs) => {
 | 
						|
    const res = {
 | 
						|
        type: 'integer',
 | 
						|
        format: 'unix-time',
 | 
						|
    };
 | 
						|
    if (refs.target === 'openApi3') {
 | 
						|
        return res;
 | 
						|
    }
 | 
						|
    for (const check of def.checks) {
 | 
						|
        switch (check.kind) {
 | 
						|
            case 'min':
 | 
						|
                (0, errorMessages_1.setResponseValueAndErrors)(res, 'minimum', check.value, // This is in milliseconds
 | 
						|
                check.message, refs);
 | 
						|
                break;
 | 
						|
            case 'max':
 | 
						|
                (0, errorMessages_1.setResponseValueAndErrors)(res, 'maximum', check.value, // This is in milliseconds
 | 
						|
                check.message, refs);
 | 
						|
                break;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return res;
 | 
						|
};
 | 
						|
//# sourceMappingURL=date.js.map
 |