ソースを参照

use de-indent module

Evan You 9 年 前
コミット
eb9eb98cd9

+ 1 - 1
build/build.js

@@ -65,7 +65,7 @@ var builds = [
   {
     entry: 'src/entries/web-compiler.js',
     format: 'cjs',
-    external: ['entities'],
+    external: ['entities', 'de-indent'],
     out: 'packages/vue-template-compiler/index.js'
   },
   // Web server renderer (CommonJS).

+ 6 - 0
flow/modules.js

@@ -16,3 +16,9 @@ declare module 'lru-cache' {
     (): any
   }
 }
+
+declare module 'de-indent' {
+  declare var exports: {
+    (input: string): string
+  }
+}

+ 1 - 0
package.json

@@ -52,6 +52,7 @@
     "chromedriver": "^2.21.2",
     "codecov.io": "^0.1.6",
     "cross-spawn": "^4.0.0",
+    "de-indent": "^1.0.2",
     "entities": "^1.1.1",
     "eslint": "^2.11.0",
     "eslint-config-vue": "^1.0.3",

+ 4 - 0
packages/vue-server-renderer/package.json

@@ -17,5 +17,9 @@
   "bugs": {
     "url": "https://github.com/vuejs/vue/issues"
   },
+  "dependencies": {
+    "entities": "^1.1.1",
+    "lru-cache": "^4.0.1"
+  },
   "homepage": "https://github.com/vuejs/vue#readme"
 }

+ 1 - 2
packages/vue-template-compiler/package.json

@@ -19,7 +19,6 @@
   "homepage": "https://github.com/vuejs/vue#readme",
   "dependencies": {
     "de-indent": "^1.0.2",
-    "entities": "^1.1.1",
-    "source-map": "^0.5.6"
+    "entities": "^1.1.1"
   }
 }

+ 0 - 45
src/sfc/deindent.js

@@ -1,45 +0,0 @@
-/* @flow */
-
-const splitRE = /\r?\n/g
-const emptyRE = /^\s*$/
-const needFixRE = /^(\r?\n)*[\t\s]/
-
-export default function deindent (str: string): string {
-  if (!needFixRE.test(str)) {
-    return str
-  }
-  const lines = str.split(splitRE)
-  let min = Infinity
-  let type, cur, c
-  for (let 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(line => line.slice(min)).join('\n')
-}
-
-function count (line: string, type: string): number {
-  var i = 0
-  while (line.charAt(i) === type) {
-    i++
-  }
-  return i
-}

+ 1 - 1
src/sfc/parser.js

@@ -1,6 +1,6 @@
 /* @flow */
 
-import deindent from './deindent'
+import deindent from 'de-indent'
 import { parseHTML } from 'compiler/parser/html-parser'
 import { makeMap } from 'shared/util'