You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					26 lines
				
				1023 B
			
		
		
			
		
	
	
					26 lines
				
				1023 B
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						||
| 
								 | 
							
								const codegen_1 = require("../../compile/codegen");
							 | 
						||
| 
								 | 
							
								const error = {
							 | 
						||
| 
								 | 
							
								    message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,
							 | 
						||
| 
								 | 
							
								    params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								const def = {
							 | 
						||
| 
								 | 
							
								    keyword: "multipleOf",
							 | 
						||
| 
								 | 
							
								    type: "number",
							 | 
						||
| 
								 | 
							
								    schemaType: "number",
							 | 
						||
| 
								 | 
							
								    $data: true,
							 | 
						||
| 
								 | 
							
								    error,
							 | 
						||
| 
								 | 
							
								    code(cxt) {
							 | 
						||
| 
								 | 
							
								        const { gen, data, schemaCode, it } = cxt;
							 | 
						||
| 
								 | 
							
								        // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)
							 | 
						||
| 
								 | 
							
								        const prec = it.opts.multipleOfPrecision;
							 | 
						||
| 
								 | 
							
								        const res = gen.let("res");
							 | 
						||
| 
								 | 
							
								        const invalid = prec
							 | 
						||
| 
								 | 
							
								            ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`
							 | 
						||
| 
								 | 
							
								            : (0, codegen_1._) `${res} !== parseInt(${res})`;
							 | 
						||
| 
								 | 
							
								        cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.default = def;
							 | 
						||
| 
								 | 
							
								//# sourceMappingURL=multipleOf.js.map
							 |