20 lines
		
	
	
		
			497 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			497 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| module.exports = function quote(xs) {
 | |
| 	return xs.map(function (s) {
 | |
| 		if (s === '') {
 | |
| 			return '\'\'';
 | |
| 		}
 | |
| 		if (s && typeof s === 'object') {
 | |
| 			return s.op.replace(/(.)/g, '\\$1');
 | |
| 		}
 | |
| 		if ((/["\s\\]/).test(s) && !(/'/).test(s)) {
 | |
| 			return "'" + s.replace(/(['])/g, '\\$1') + "'";
 | |
| 		}
 | |
| 		if ((/["'\s]/).test(s)) {
 | |
| 			return '"' + s.replace(/(["\\$`!])/g, '\\$1') + '"';
 | |
| 		}
 | |
| 		return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, '$1\\$2');
 | |
| 	}).join(' ');
 | |
| };
 |