28 lines
		
	
	
		
			765 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			765 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
const checkConfigMap = {
 | 
						|
  endpoint: checkEndpoint,
 | 
						|
  region: /^[a-zA-Z0-9\-_]+$/
 | 
						|
};
 | 
						|
 | 
						|
function checkEndpoint(endpoint) {
 | 
						|
  if (typeof endpoint === 'string') {
 | 
						|
    return /^[a-zA-Z0-9._:/-]+$/.test(endpoint);
 | 
						|
  } else if (endpoint.host) {
 | 
						|
    return /^[a-zA-Z0-9._:/-]+$/.test(endpoint.host);
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
export const checkConfigValid = (conf, key: 'endpoint' | 'region'): void => {
 | 
						|
  if (checkConfigMap[key]) {
 | 
						|
    let isConfigValid = true;
 | 
						|
    if (checkConfigMap[key] instanceof Function) {
 | 
						|
      isConfigValid = (checkConfigMap[key] as Function)(conf);
 | 
						|
    } else {
 | 
						|
      isConfigValid = (checkConfigMap[key] as RegExp).test(conf);
 | 
						|
    }
 | 
						|
    if (!isConfigValid) {
 | 
						|
      throw new Error(`The ${key} must be conform to the specifications`);
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 |