Skip to content
This repository was archived by the owner on Aug 16, 2022. It is now read-only.

Commit 948ef13

Browse files
committed
style: minor tweaks
1 parent 8230efd commit 948ef13

File tree

6 files changed

+65
-70
lines changed

6 files changed

+65
-70
lines changed

src/assemble.js

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
const pad = require('./utils/pad')
2+
const _s = require('./utils/stringify')
13
const { struct } = require('superstruct')
4+
const assertType = require('./utils/assert-type')
25
const defaultsdeep = require('lodash.defaultsdeep')
3-
const _s = require('./utils/stringify')
46
const importStatement = require('./utils/import-statement')
5-
const assertType = require('./utils/assert-type')
67

7-
const NORMALIZE_COMPONENT_IDENTIFIER = '__vue_normalize_component__'
8-
const STYLE_INJECTOR_IDENTIFIER = '__vue_style_injector__'
98
const STYLE_IDENTIFIER = '__vue_inject_style__'
109
const COMPONENT_IDENTIFIER = '__vue_component__'
10+
const STYLE_INJECTOR_IDENTIFIER = '__vue_style_injector__'
11+
const NORMALIZE_COMPONENT_IDENTIFIER = '__vue_normalize_component__'
1112
const EXPORT_REGEX = /(export[\s\r\n]+default|module[\s\r\n]*\.exports[^=]*=)[\s\r\n]*/
1213

1314
function inlineStyle (name, style, config) {
@@ -56,6 +57,7 @@ const Source = struct({
5657
}
5758
])
5859
})
60+
5961
const Config = any =>
6062
defaultsdeep(
6163
struct({
@@ -263,13 +265,3 @@ module.exports = function assemble (source, filename, config) {
263265

264266
return output
265267
}
266-
267-
function pad (content) {
268-
return (
269-
content
270-
.trim()
271-
.split(/\n\r?/)
272-
.map(line => ' ' + line)
273-
.join('\n') + '\n'
274-
)
275-
}

src/parser.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
const compiler = require('vue-template-compiler')
2-
const { struct } = require('superstruct')
31
const LRU = require('lru-cache')
42
const hash = require('hash-sum')
5-
const { SourceMapGenerator } = require('source-map')
6-
3+
const { struct } = require('superstruct')
74
const assertType = require('./utils/assert-type')
5+
const compiler = require('vue-template-compiler')
6+
const { SourceMapGenerator } = require('source-map')
87

98
const cache = LRU(100)
109
const splitRE = /\r?\n/g
@@ -17,7 +16,7 @@ const Config = struct(
1716
},
1817
{
1918
needMap: true,
20-
needCSSMap: false
19+
needCSSMap: true
2120
}
2221
)
2322

src/style-compiler/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const postcss = require('postcss')
2-
const { default: cssModules } = require('postcss-modules-sync')
32
const { struct } = require('superstruct')
43
const defaultsdeep = require('lodash.defaultsdeep')
4+
const { default: cssModules } = require('postcss-modules-sync')
55

66
const trim = require('./plugins/trim')
77
const scopeId = require('./plugins/scope-id')

src/template-compiler/index.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
const compiler = require('vue-template-compiler/build.js')
2-
const transpile = require('vue-template-es2015-compiler')
1+
const pad = require('../utils/pad')
32
const prettier = require('prettier')
43
const { struct } = require('superstruct')
54
const defaultsdeep = require('lodash.defaultsdeep')
5+
const transpile = require('vue-template-es2015-compiler')
6+
const compiler = require('vue-template-compiler/build.js')
67

7-
const transformRequire = require('./modules/transform-require')
8-
const transformSrcset = require('./modules/transform-srcset')
98
const assertType = require('../utils/assert-type')
9+
const transformSrcset = require('./modules/transform-srcset')
10+
const transformRequire = require('./modules/transform-require')
1011

1112
const Template = struct({
1213
code: 'string',
@@ -58,7 +59,7 @@ module.exports = function compileTemplate (template, filename, config) {
5859
options.scopeId = config.scopeId
5960
options.modules = [].concat(options.modules || [], config.plugins || [], [
6061
transformRequire(config.transformToRequire),
61-
transformSrcset()
62+
transformSrcset
6263
])
6364

6465
const compile =
@@ -107,9 +108,7 @@ module.exports = function compileTemplate (template, filename, config) {
107108
}
108109

109110
function toFunction (code, stripWithFunctional) {
110-
return `function (${stripWithFunctional ? '_h,_vm' : ''}) {\n ${prettier
111-
.format(code)
112-
.split(/\r?\n/)
113-
.map(it => ' ' + it)
114-
.join('\n')}\n}`
111+
return `function (${stripWithFunctional ? '_h,_vm' : ''}) {\n ${
112+
pad(prettier.format(code))
113+
}}`
115114
}

src/template-compiler/modules/transform-srcset.js

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,42 @@
11
// vue compiler module for transforming `img:srcset` to a number of `require`s
22

3-
module.exports = () => ({
4-
postTransformNode: node => {
5-
transform(node)
6-
}
7-
})
8-
9-
function transform (node) {
10-
const tags = ['img', 'source']
11-
12-
if (tags.indexOf(node.tag) !== -1 && node.attrs) {
13-
node.attrs.forEach(attr => {
14-
if (attr.name === 'srcset') {
15-
// same logic as in transform-require.js
16-
const value = attr.value
17-
const isStatic = value.charAt(0) === '"' && value.charAt(value.length - 1) === '"'
18-
if (!isStatic) {
19-
return
3+
module.exports = {
4+
postTransformNode (node) {
5+
const tags = ['img', 'source']
6+
7+
if (tags.indexOf(node.tag) !== -1 && node.attrs) {
8+
node.attrs.forEach(attr => {
9+
if (attr.name === 'srcset') {
10+
// same logic as in transform-require.js
11+
const value = attr.value
12+
const isStatic = value.charAt(0) === '"' && value.charAt(value.length - 1) === '"'
13+
if (!isStatic) {
14+
return
15+
}
16+
17+
// http://w3c.github.io/html/semantics-embedded-content.html#ref-for-image-candidate-string-5
18+
const escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g
19+
20+
const imageCandidates = value.substr(1, value.length - 2).split(',').map(s => {
21+
// The attribute value arrives here with all whitespace, except normal spaces, represented by escape sequences
22+
const [url, descriptor] = s.replace(escapedSpaceCharacters, ' ').trim().split(' ', 2)
23+
return { require: urlToRequire(url), descriptor: descriptor }
24+
})
25+
26+
// "require(url1)"
27+
// "require(url1) 1x"
28+
// "require(url1), require(url2)"
29+
// "require(url1), require(url2) 2x"
30+
// "require(url1) 1x, require(url2)"
31+
// "require(url1) 1x, require(url2) 2x"
32+
const code = imageCandidates.map(
33+
({ require, descriptor }) => `${require} + "${descriptor ? ' ' + descriptor : ''}, " + `
34+
).join('').slice(0, -6).concat('"').replace(/ \+ ""$/, '')
35+
36+
attr.value = code
2037
}
21-
22-
// http://w3c.github.io/html/semantics-embedded-content.html#ref-for-image-candidate-string-5
23-
const escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g
24-
25-
const imageCandidates = value.substr(1, value.length - 2).split(',').map(s => {
26-
// The attribute value arrives here with all whitespace, except normal spaces, represented by escape sequences
27-
const [url, descriptor] = s.replace(escapedSpaceCharacters, ' ').trim().split(' ', 2)
28-
return { require: urlToRequire(url), descriptor: descriptor }
29-
})
30-
31-
// "require(url1)"
32-
// "require(url1) 1x"
33-
// "require(url1), require(url2)"
34-
// "require(url1), require(url2) 2x"
35-
// "require(url1) 1x, require(url2)"
36-
// "require(url1) 1x, require(url2) 2x"
37-
const code = imageCandidates.map(
38-
({ require, descriptor }) => `${require} + "${descriptor ? ' ' + descriptor : ''}, " + `
39-
).join('').slice(0, -6).concat('"').replace(/ \+ ""$/, '')
40-
41-
attr.value = code
42-
}
43-
})
38+
})
39+
}
4440
}
4541
}
4642

src/utils/pad.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module.exports = function pad (content) {
2+
return (
3+
content
4+
.trim()
5+
.split(/\n\r?/)
6+
.map(line => ' ' + line)
7+
.join('\n') + '\n'
8+
)
9+
}

0 commit comments

Comments
 (0)