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

Suppress warnings when compiling template #56

Merged
merged 1 commit into from
Jan 29, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions src/vueTransform.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,22 +95,23 @@ function injectTemplate (script, template, lang, options) {
function processTemplate (source, id, content, options) {
if (source === undefined) return undefined

const {node, code} = source
const { code } = source
const template = deIndent(code)
const ignore = [
'Found camelCase attribute:',
'Tag <slot> cannot appear inside <table> due to HTML content restrictions.'
]

const warnings = validateTemplate(code, content)
if (warnings) {
const relativePath = relative(process.cwd(), id)
warnings.forEach((msg) => {
warnings.filter((warning) => {
return options.compileTemplate && ignore.findIndex(i => warning.indexOf(i) > -1) < 0
}).forEach((msg) => {
console.warn(`\n Warning in ${relativePath}:\n ${msg}`)
})
}

/* eslint-disable no-underscore-dangle */
const start = node.content.childNodes[0].__location.startOffset
const end = node.content.childNodes[node.content.childNodes.length - 1].__location.endOffset
const template = deIndent(content.slice(start, end))
/* eslint-enable no-underscore-dangle */

return htmlMinifier.minify(template, options.htmlMinifier)
}

Expand Down
2 changes: 1 addition & 1 deletion test/expects/slot.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var TableComponent = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tr',[_c('td',[_vm._t("default",[_vm._t("default")])],2)])])},staticRenderFns: [],};
var TableComponent = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tr',[_c('td',[_vm._t("default")],2)])])},staticRenderFns: [],};

var slot = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table-component',[_vm._v("Hello! World")])},staticRenderFns: [],
components: { TableComponent },
Expand Down
3 changes: 3 additions & 0 deletions test/expects/table-n-slot.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var tableNSlot = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tbody',[_vm._t("default")],2)])},staticRenderFns: [],};

export default tableNSlot;
2 changes: 1 addition & 1 deletion test/expects/table.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
var table = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tr',[_c('td',[_vm._t("default",[_vm._t("default")])],2)])])},staticRenderFns: [],};
var table = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tr',[_c('td',[_vm._t("default")],2)])])},staticRenderFns: [],};

export default table;
11 changes: 11 additions & 0 deletions test/fixtures/table-n-slot.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<template>
<table>
<tbody>
<slot></slot>
</tbody>
</table>
</template>

<script>
export default {}
</script>
2 changes: 1 addition & 1 deletion test/fixtures/table.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<table>
<tr>
<td>
<slot><slot>
<slot></slot>
</td>
</tr>
</table>
Expand Down
7 changes: 3 additions & 4 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,13 @@ function test(name) {
}

return rollup.rollup({
format: 'cjs',
entry: entry,
plugins: [vuePlugin({
css: cssHandler,
compileTemplate: ['compileTemplate', 'slot', 'table'].indexOf(name) > -1
compileTemplate: ['compileTemplate', 'slot', 'table', 'table-n-slot'].indexOf(name) > -1
})]
}).then(function (bundle) {
var result = bundle.generate()
var result = bundle.generate({format: 'es'})
var code = result.code
assert.equal(code.trim(), expected.trim(), 'should compile code correctly')

Expand Down Expand Up @@ -74,7 +73,7 @@ describe('styleToImports', function () {
}),
],
}).then(function (bundle) {
bundle.generate()
bundle.generate({ format: 'es' })

assert.equal(expectedCss.trim(), actualCss.trim(), 'should import style')
}).catch(function (error) {
Expand Down