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.
22 lines
689 B
22 lines
689 B
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
|
|
|