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.
		
		
		
		
		
			
		
			
				
					23 lines
				
				689 B
			
		
		
			
		
	
	
					23 lines
				
				689 B
			| 
											3 years ago
										 | const { EOL } = require('os') | ||
|  | 
 | ||
|  | const getFirstRegexpMatchOrDefault = (text, regexp, defaultValue) => { | ||
|  |   regexp.lastIndex = 0 // https://stackoverflow.com/a/11477448/4536543
 | ||
|  |   let match = regexp.exec(text) | ||
|  |   if (match !== null) return match[1] | ||
|  |   return defaultValue | ||
|  | } | ||
|  | 
 | ||
|  | const DEFAULT_INDENT = '  ' | ||
|  | const INDENT_REGEXP = /^([ \t]+)[^\s]/m | ||
|  | 
 | ||
|  | module.exports.detectIndent = text => | ||
|  |   getFirstRegexpMatchOrDefault(text, INDENT_REGEXP, DEFAULT_INDENT) | ||
|  | module.exports.DEFAULT_INDENT = DEFAULT_INDENT | ||
|  | 
 | ||
|  | const DEFAULT_EOL = EOL | ||
|  | const EOL_REGEXP = /(\r\n|\n|\r)/g | ||
|  | 
 | ||
|  | module.exports.detectEOL = text => | ||
|  |   getFirstRegexpMatchOrDefault(text, EOL_REGEXP, DEFAULT_EOL) | ||
|  | module.exports.DEFAULT_EOL = DEFAULT_EOL |