mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-30 23:33:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import moment from "moment";
 | |
| import { ref } from "objection";
 | |
| import { isPostgres } from "./config.js";
 | |
| 
 | |
| /**
 | |
|  * Takes an expression such as 30d and returns a moment object of that date in future
 | |
|  *
 | |
|  * Key      Shorthand
 | |
|  * ==================
 | |
|  * years         y
 | |
|  * quarters      Q
 | |
|  * months        M
 | |
|  * weeks         w
 | |
|  * days          d
 | |
|  * hours         h
 | |
|  * minutes       m
 | |
|  * seconds       s
 | |
|  * milliseconds  ms
 | |
|  *
 | |
|  * @param {String}  expression
 | |
|  * @returns {Object}
 | |
|  */
 | |
| const parseDatePeriod = (expression) => {
 | |
| 	const matches = expression.match(/^([0-9]+)(y|Q|M|w|d|h|m|s|ms)$/m);
 | |
| 	if (matches) {
 | |
| 		return moment().add(matches[1], matches[2]);
 | |
| 	}
 | |
| 
 | |
| 	return null;
 | |
| };
 | |
| 
 | |
| const convertIntFieldsToBool = (obj, fields) => {
 | |
| 	fields.forEach((field) => {
 | |
| 		if (typeof obj[field] !== "undefined") {
 | |
| 			obj[field] = obj[field] === 1;
 | |
| 		}
 | |
| 	});
 | |
| 	return obj;
 | |
| };
 | |
| 
 | |
| const convertBoolFieldsToInt = (obj, fields) => {
 | |
| 	fields.forEach((field) => {
 | |
| 		if (typeof obj[field] !== "undefined") {
 | |
| 			obj[field] = obj[field] ? 1 : 0;
 | |
| 		}
 | |
| 	});
 | |
| 	return obj;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Casts a column to json if using postgres
 | |
|  *
 | |
|  * @param {string} colName
 | |
|  * @returns {string|Objection.ReferenceBuilder}
 | |
|  */
 | |
| const castJsonIfNeed = (colName) => (isPostgres() ? ref(colName).castText() : colName);
 | |
| 
 | |
| export { parseDatePeriod, convertIntFieldsToBool, convertBoolFieldsToInt, castJsonIfNeed };
 |