aboutsummaryrefslogtreecommitdiff
path: root/node_modules/de-indent/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/de-indent/index.js')
-rw-r--r--node_modules/de-indent/index.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/de-indent/index.js b/node_modules/de-indent/index.js
new file mode 100644
index 00000000..87123e8f
--- /dev/null
+++ b/node_modules/de-indent/index.js
@@ -0,0 +1,45 @@
+var splitRE = /\r?\n/g
+var emptyRE = /^\s*$/
+var needFixRE = /^(\r?\n)*[\t\s]/
+
+module.exports = function deindent (str) {
+ if (!needFixRE.test(str)) {
+ return str
+ }
+ var lines = str.split(splitRE)
+ var min = Infinity
+ var type, cur, c
+ for (var i = 0; i < lines.length; i++) {
+ var line = lines[i]
+ if (!emptyRE.test(line)) {
+ if (!type) {
+ c = line.charAt(0)
+ if (c === ' ' || c === '\t') {
+ type = c
+ cur = count(line, type)
+ if (cur < min) {
+ min = cur
+ }
+ } else {
+ return str
+ }
+ } else {
+ cur = count(line, type)
+ if (cur < min) {
+ min = cur
+ }
+ }
+ }
+ }
+ return lines.map(function (line) {
+ return line.slice(min)
+ }).join('\n')
+}
+
+function count (line, type) {
+ var i = 0
+ while (line.charAt(i) === type) {
+ i++
+ }
+ return i
+}