Skip to content

Commit b11dab9

Browse files
committed
chore: more descriptive eslint error messages for restricted syntax
1 parent 2ae908d commit b11dab9

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

.eslintrc.cjs

+17-7
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,23 @@ module.exports = {
2626
'no-restricted-syntax': [
2727
'error',
2828
banConstEnum,
29-
// since we target ES2015 for baseline support, we need to forbid object
30-
// rest spread usage in destructure as it compiles into a verbose helper.
31-
'ObjectPattern > RestElement',
32-
// tsc compiles assignment spread into Object.assign() calls, but esbuild
33-
// still generates verbose helpers, so spread assignment is also prohiboted
34-
'ObjectExpression > SpreadElement',
35-
'AwaitExpression',
29+
{
30+
selector: 'ObjectPattern > RestElement',
31+
message:
32+
'Our output target is ES2016, and object rest spread results in ' +
33+
'verbose helpers and should be avoided.',
34+
},
35+
{
36+
selector: 'ObjectExpression > SpreadElement',
37+
message:
38+
'esbuild transpiles object spread into very verbose inline helpers.\n' +
39+
'Please use the `extend` helper from @vue/shared instead.',
40+
},
41+
{
42+
selector: 'AwaitExpression',
43+
message:
44+
'Our output target is ES2016, so async/await syntax should be avoided.',
45+
},
3646
],
3747
'sort-imports': ['error', { ignoreDeclarationSort: true }],
3848

rollup.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ function createConfig(format, output, plugins = []) {
331331
tsconfig: path.resolve(__dirname, 'tsconfig.json'),
332332
sourceMap: output.sourcemap,
333333
minify: false,
334-
target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2015',
334+
target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2016',
335335
define: resolveDefine(),
336336
}),
337337
...resolveNodePlugins(),
@@ -367,7 +367,7 @@ function createMinifiedConfig(/** @type {PackageFormat} */ format) {
367367
terser({
368368
module: /^esm/.test(format),
369369
compress: {
370-
ecma: 2015,
370+
ecma: 2016,
371371
pure_getters: true,
372372
},
373373
safari10: true,

0 commit comments

Comments
 (0)