aboutsummaryrefslogtreecommitdiff
path: root/node_modules/de-indent
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/de-indent')
-rw-r--r--node_modules/de-indent/.npmignore2
-rw-r--r--node_modules/de-indent/index.js45
-rw-r--r--node_modules/de-indent/package.json25
-rw-r--r--node_modules/de-indent/test.js30
4 files changed, 102 insertions, 0 deletions
diff --git a/node_modules/de-indent/.npmignore b/node_modules/de-indent/.npmignore
new file mode 100644
index 00000000..fd4f2b06
--- /dev/null
+++ b/node_modules/de-indent/.npmignore
@@ -0,0 +1,2 @@
+node_modules
+.DS_Store
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
+}
diff --git a/node_modules/de-indent/package.json b/node_modules/de-indent/package.json
new file mode 100644
index 00000000..4c97e522
--- /dev/null
+++ b/node_modules/de-indent/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "de-indent",
+ "version": "1.0.2",
+ "description": "remove extra indent from a block of code",
+ "main": "index.js",
+ "scripts": {
+ "test": "mocha"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/yyx990803/de-indent.git"
+ },
+ "keywords": [
+ "deindent"
+ ],
+ "author": "Evan You",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/yyx990803/de-indent/issues"
+ },
+ "homepage": "https://github.com/yyx990803/de-indent#readme",
+ "devDependencies": {
+ "mocha": "^2.3.4"
+ }
+}
diff --git a/node_modules/de-indent/test.js b/node_modules/de-indent/test.js
new file mode 100644
index 00000000..68b6036c
--- /dev/null
+++ b/node_modules/de-indent/test.js
@@ -0,0 +1,30 @@
+var assert = require('assert')
+var deindent = require('./index')
+
+describe('de-indent', function () {
+
+ it('0 indent', function () {
+ var str = '\nabc\n bcd\n cde\nefg'
+ var res = deindent(str)
+ assert.equal(str, res)
+ })
+
+ it('non-0 indent', function () {
+ var str = ' abc\n bcd\n cde\n efg'
+ var res = deindent(str)
+ assert.equal(res, 'abc\n bcd\ncde\n efg')
+ })
+
+ it('tabs', function () {
+ var str = '\tabc\n\t\tbcd\n\tcde\n\t\tefg'
+ var res = deindent(str)
+ assert.equal(res, 'abc\n\tbcd\ncde\n\tefg')
+ })
+
+ it('single line', function () {
+ var str = '\n <h2 class="red">{{msg}}</h2>\n'
+ var res = deindent(str)
+ assert.equal(res, '\n<h2 class="red">{{msg}}</h2>\n')
+ })
+
+})