modernize js and use babel (#8973)
* modernize js and use babel - add babel toolchain to transform modern JS to ES5 - extend eslint config for modern rules - fixes linting issues via `eslint --fix` and manual fixes * run 'make css' to satisfy CI * code style tweaks and set js indendation to 2 in .editorconfig * regenerate js
This commit is contained in:
		
							parent
							
								
									4b5ebb93e4
								
							
						
					
					
						commit
						3621944c2d
					
				
					 10 changed files with 5309 additions and 3823 deletions
				
			
		|  | @ -24,7 +24,7 @@ indent_size = 2 | ||||||
| 
 | 
 | ||||||
| [*.js] | [*.js] | ||||||
| indent_style = space | indent_style = space | ||||||
| indent_size = 4 | indent_size = 2 | ||||||
| 
 | 
 | ||||||
| [Makefile] | [Makefile] | ||||||
| indent_style = tab | indent_style = tab | ||||||
|  |  | ||||||
							
								
								
									
										39
									
								
								.eslintrc
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								.eslintrc
									
									
									
									
									
								
							|  | @ -1,28 +1,51 @@ | ||||||
| root: true | root: true | ||||||
| 
 | 
 | ||||||
| extends: | extends: | ||||||
|  |   - eslint-config-airbnb-base | ||||||
|   - eslint:recommended |   - eslint:recommended | ||||||
| 
 | 
 | ||||||
| parserOptions: | parserOptions: | ||||||
|   ecmaVersion: 2015 |   ecmaVersion: 2020 | ||||||
| 
 | 
 | ||||||
| env: | env: | ||||||
|   browser: true |   browser: true | ||||||
|   jquery: true |  | ||||||
|   es6: true |   es6: true | ||||||
|  |   jquery: true | ||||||
|   node: true |   node: true | ||||||
| 
 | 
 | ||||||
| globals: | globals: | ||||||
|   Clipboard: false |   Clipboard: false | ||||||
|   CodeMirror: false |   CodeMirror: false | ||||||
|   emojify: false |  | ||||||
|   SimpleMDE: false |  | ||||||
|   Vue: false |  | ||||||
|   Dropzone: false |   Dropzone: false | ||||||
|   u2fApi: false |   emojify: false | ||||||
|   hljs: false |   hljs: false | ||||||
|  |   SimpleMDE: false | ||||||
|  |   u2fApi: false | ||||||
|  |   Vue: false | ||||||
| 
 | 
 | ||||||
| rules: | rules: | ||||||
|   no-unused-vars: [error, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, ignoreRestSiblings: true}] |   camelcase: [0] | ||||||
|   prefer-const: [2, {destructuring: all}] |   comma-dangle: [2, only-multiline] | ||||||
|  |   consistent-return: [0] | ||||||
|  |   default-case: [0] | ||||||
|  |   func-names: [0] | ||||||
|  |   max-len: [0] | ||||||
|  |   newline-per-chained-call: [0] | ||||||
|  |   arrow-body-style: [0] | ||||||
|  |   no-alert: [0] | ||||||
|  |   no-continue: [0] | ||||||
|  |   no-mixed-operators: [0] | ||||||
|  |   no-multi-assign: [0] | ||||||
|  |   no-new: [0] | ||||||
|  |   no-param-reassign: [0] | ||||||
|  |   no-plusplus: [0] | ||||||
|  |   no-restricted-syntax: [0] | ||||||
|  |   no-shadow: [0] | ||||||
|  |   no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, ignoreRestSiblings: true}] | ||||||
|  |   no-use-before-define: [0] | ||||||
|   no-var: [2] |   no-var: [2] | ||||||
|  |   one-var-declaration-per-line: [0] | ||||||
|  |   one-var: [0] | ||||||
|  |   prefer-const: [2, {destructuring: all}] | ||||||
|  |   prefer-destructuring: [0] | ||||||
|  |   radix: [2, as-needed] | ||||||
|  |  | ||||||
							
								
								
									
										2774
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2774
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										17
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								package.json
									
									
									
									
									
								
							|  | @ -5,14 +5,21 @@ | ||||||
|     "node": ">=8" |     "node": ">=8" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "autoprefixer": "9.6.1", |     "@babel/core": "7.7.2", | ||||||
|     "eslint": "6.3.0", |     "@babel/preset-env": "7.7.1", | ||||||
|  |     "autoprefixer": "9.7.1", | ||||||
|  |     "babel-loader": "8.0.6", | ||||||
|  |     "core-js": "3.4.1", | ||||||
|  |     "eslint": "6.6.0", | ||||||
|  |     "eslint-config-airbnb-base": "14.0.0", | ||||||
|  |     "eslint-plugin-import": "2.18.2", | ||||||
|     "less": "3.10.3", |     "less": "3.10.3", | ||||||
|     "less-plugin-clean-css": "1.5.1", |     "less-plugin-clean-css": "1.5.1", | ||||||
|     "postcss-cli": "6.1.3", |     "postcss-cli": "6.1.3", | ||||||
|     "stylelint": "10.1.0", |     "stylelint": "11.1.1", | ||||||
|     "stylelint-config-standard": "18.3.0", |     "stylelint-config-standard": "19.0.0", | ||||||
|     "updates": "8.5.3", |     "terser-webpack-plugin": "2.2.1", | ||||||
|  |     "updates": "9.0.1", | ||||||
|     "webpack": "4.41.2", |     "webpack": "4.41.2", | ||||||
|     "webpack-cli": "3.3.10" |     "webpack-cli": "3.3.10" | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|  | @ -73,7 +73,7 @@ a{cursor:pointer} | ||||||
| .right.stackable.menu{margin-left:auto;display:flex;align-items:inherit;flex-direction:inherit} | .right.stackable.menu{margin-left:auto;display:flex;align-items:inherit;flex-direction:inherit} | ||||||
| .ui.left{float:left} | .ui.left{float:left} | ||||||
| .ui.right{float:right} | .ui.right{float:right} | ||||||
| .ui.button,.ui.menu .item{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto} | .ui.button,.ui.menu .item{-webkit-user-select:auto;-ms-user-select:auto;user-select:auto} | ||||||
| .ui.container.fluid.padded{padding:0 10px 0 10px} | .ui.container.fluid.padded{padding:0 10px 0 10px} | ||||||
| .ui.form .ui.button{font-weight:400} | .ui.form .ui.button{font-weight:400} | ||||||
| .ui.floating.label{z-index:10} | .ui.floating.label{z-index:10} | ||||||
|  | @ -233,14 +233,14 @@ i.icons .icon:first-child{margin-right:0} | ||||||
| i.icon.centerlock{top:1.5em} | i.icon.centerlock{top:1.5em} | ||||||
| .ui.label>.detail .icons{margin-right:.25em} | .ui.label>.detail .icons{margin-right:.25em} | ||||||
| .ui.label>.detail .icons .icon{margin-right:0} | .ui.label>.detail .icons .icon{margin-right:0} | ||||||
| .lines-num{vertical-align:top;text-align:right!important;color:#999;background:#f5f5f5;width:1%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} | .lines-num{vertical-align:top;text-align:right!important;color:#999;background:#f5f5f5;width:1%;-webkit-user-select:none;-ms-user-select:none;user-select:none} | ||||||
| .lines-num span:before{content:attr(data-line-number);line-height:20px!important;padding:0 10px;cursor:pointer;display:block} | .lines-num span:before{content:attr(data-line-number);line-height:20px!important;padding:0 10px;cursor:pointer;display:block} | ||||||
| .lines-code,.lines-num{padding:0!important} | .lines-code,.lines-num{padding:0!important} | ||||||
| .lines-code .hljs,.lines-code ol,.lines-code pre,.lines-num .hljs,.lines-num ol,.lines-num pre{background-color:#fff;margin:0;padding:0!important} | .lines-code .hljs,.lines-code ol,.lines-code pre,.lines-num .hljs,.lines-num ol,.lines-num pre{background-color:#fff;margin:0;padding:0!important} | ||||||
| .lines-code .hljs li,.lines-code ol li,.lines-code pre li,.lines-num .hljs li,.lines-num ol li,.lines-num pre li{display:block;width:100%} | .lines-code .hljs li,.lines-code ol li,.lines-code pre li,.lines-num .hljs li,.lines-num ol li,.lines-num pre li{display:block;width:100%} | ||||||
| .lines-code .hljs li:before,.lines-code ol li:before,.lines-code pre li:before,.lines-num .hljs li:before,.lines-num ol li:before,.lines-num pre li:before{content:' '} | .lines-code .hljs li:before,.lines-code ol li:before,.lines-code pre li:before,.lines-num .hljs li:before,.lines-num ol li:before,.lines-num pre li:before{content:' '} | ||||||
| .lines-commit{vertical-align:top;color:#999;padding:0!important;background:#f5f5f5;width:1%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none} | .lines-commit{vertical-align:top;color:#999;padding:0!important;background:#f5f5f5;width:1%;-ms-user-select:none;-webkit-user-select:none;user-select:none} | ||||||
| .lines-commit .blame-info{width:350px;max-width:350px;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:0 0 0 10px} | .lines-commit .blame-info{width:350px;max-width:350px;display:block;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0 0 0 10px} | ||||||
| .lines-commit .blame-info .blame-data{display:flex;font-family:-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,Helvetica,Arial} | .lines-commit .blame-info .blame-data{display:flex;font-family:-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,Helvetica,Arial} | ||||||
| .lines-commit .blame-info .blame-data .blame-message{flex-grow:2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:20px} | .lines-commit .blame-info .blame-data .blame-message{flex-grow:2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:20px} | ||||||
| .lines-commit .blame-info .blame-data .blame-avatar,.lines-commit .blame-info .blame-data .blame-time{flex-shrink:0} | .lines-commit .blame-info .blame-data .blame-avatar,.lines-commit .blame-info .blame-data .blame-time{flex-shrink:0} | ||||||
|  | @ -333,7 +333,7 @@ i.icon.centerlock{top:1.5em} | ||||||
| .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0} | .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0} | ||||||
| .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px;word-break:break-word} | .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px;word-break:break-word} | ||||||
| .file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important} | .file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important} | ||||||
| .file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} | .file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} | ||||||
| .home .logo{max-width:220px} | .home .logo{max-width:220px} | ||||||
| @media only screen and (max-width:767px){.home .hero h1{font-size:3.5em} | @media only screen and (max-width:767px){.home .hero h1{font-size:3.5em} | ||||||
| .home .hero h2{font-size:2em} | .home .hero h2{font-size:2em} | ||||||
|  | @ -687,7 +687,7 @@ i.icon.centerlock{top:1.5em} | ||||||
| .repository .diff-box .header .file{flex:1;color:#888;word-break:break-all} | .repository .diff-box .header .file{flex:1;color:#888;word-break:break-all} | ||||||
| .repository .diff-box .header .button{margin:-5px 0 -5px 12px;padding:8px 10px;flex:0 0 auto} | .repository .diff-box .header .button{margin:-5px 0 -5px 12px;padding:8px 10px;flex:0 0 auto} | ||||||
| .repository .diff-file-box .header{background-color:#f7f7f7} | .repository .diff-file-box .header{background-color:#f7f7f7} | ||||||
| .repository .diff-file-box .file-body.file-code .lines-num{text-align:right;color:#a6a6a6;background:#fafafa;width:1%;min-width:50px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top} | .repository .diff-file-box .file-body.file-code .lines-num{text-align:right;color:#a6a6a6;background:#fafafa;width:1%;min-width:50px;-webkit-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top} | ||||||
| .repository .diff-file-box .file-body.file-code .lines-num span.fold{display:block;text-align:center} | .repository .diff-file-box .file-body.file-code .lines-num span.fold{display:block;text-align:center} | ||||||
| .repository .diff-file-box .file-body.file-code .lines-num-old{border-right:1px solid #ddd} | .repository .diff-file-box .file-body.file-code .lines-num-old{border-right:1px solid #ddd} | ||||||
| .repository .diff-file-box .code-diff{font-size:12px} | .repository .diff-file-box .code-diff{font-size:12px} | ||||||
|  | @ -698,7 +698,7 @@ i.icon.centerlock{top:1.5em} | ||||||
| .repository .diff-file-box .code-diff tbody tr .removed-code{background-color:#f99} | .repository .diff-file-box .code-diff tbody tr .removed-code{background-color:#f99} | ||||||
| .repository .diff-file-box .code-diff tbody tr .added-code{background-color:#9f9} | .repository .diff-file-box .code-diff tbody tr .added-code{background-color:#9f9} | ||||||
| .repository .diff-file-box .code-diff tbody tr [data-line-num]::before{content:attr(data-line-num);text-align:right} | .repository .diff-file-box .code-diff tbody tr [data-line-num]::before{content:attr(data-line-num);text-align:right} | ||||||
| .repository .diff-file-box .code-diff tbody tr .lines-type-marker{width:10px;min-width:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} | .repository .diff-file-box .code-diff tbody tr .lines-type-marker{width:10px;min-width:10px;-webkit-user-select:none;-ms-user-select:none;user-select:none} | ||||||
| .repository .diff-file-box .code-diff tbody tr [data-type-marker]::before{content:attr(data-type-marker);text-align:right;display:inline-block} | .repository .diff-file-box .code-diff tbody tr [data-type-marker]::before{content:attr(data-type-marker);text-align:right;display:inline-block} | ||||||
| .repository .diff-file-box .code-diff-unified tbody tr.del-code td{background-color:#ffe0e0!important;border-color:#f1c0c0!important} | .repository .diff-file-box .code-diff-unified tbody tr.del-code td{background-color:#ffe0e0!important;border-color:#f1c0c0!important} | ||||||
| .repository .diff-file-box .code-diff-unified tbody tr.add-code td{background-color:#d6fcd6!important;border-color:#c1e9c1!important} | .repository .diff-file-box .code-diff-unified tbody tr.add-code td{background-color:#d6fcd6!important;border-color:#c1e9c1!important} | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ body{background:#383c4a;color:#9e9e9e} | ||||||
| *{scrollbar-width:thin;scrollbar-color:#87ab63 rgba(255,255,255,.1)} | *{scrollbar-width:thin;scrollbar-color:#87ab63 rgba(255,255,255,.1)} | ||||||
| ::-webkit-scrollbar{-webkit-appearance:none!important;width:10px!important;height:10px!important} | ::-webkit-scrollbar{-webkit-appearance:none!important;width:10px!important;height:10px!important} | ||||||
| ::-webkit-scrollbar-track{border-radius:0!important;background:rgba(255,255,255,.1)!important} | ::-webkit-scrollbar-track{border-radius:0!important;background:rgba(255,255,255,.1)!important} | ||||||
| ::-webkit-scrollbar-thumb{cursor:pointer!important;border-radius:5px!important;transition:color .2s ease!important;background:#87ab63!important} | ::-webkit-scrollbar-thumb{cursor:pointer!important;border-radius:5px!important;-webkit-transition:color .2s ease!important;transition:color .2s ease!important;background:#87ab63!important} | ||||||
| ::-webkit-scrollbar-thumb:window-inactive{background:#87ab63!important} | ::-webkit-scrollbar-thumb:window-inactive{background:#87ab63!important} | ||||||
| ::-webkit-scrollbar-thumb:hover{background:#87ab63!important} | ::-webkit-scrollbar-thumb:hover{background:#87ab63!important} | ||||||
| a{color:#87ab63} | a{color:#87ab63} | ||||||
|  |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1498
									
								
								web_src/js/index.js
									
									
									
									
									
								
							
							
						
						
									
										1498
									
								
								web_src/js/index.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -9,12 +9,34 @@ module.exports = { | ||||||
|   devtool: 'source-map', |   devtool: 'source-map', | ||||||
|   output: { |   output: { | ||||||
|     path: path.resolve(__dirname, 'public/js'), |     path: path.resolve(__dirname, 'public/js'), | ||||||
|     filename: "[name].js" |     filename: '[name].js' | ||||||
|   }, |   }, | ||||||
|   optimization: { |   optimization: { | ||||||
|     minimize: true, |     minimize: true, | ||||||
|     minimizer: [new TerserPlugin({ |     minimizer: [new TerserPlugin({ | ||||||
|         sourceMap: true |       sourceMap: true, | ||||||
|     })], |     })], | ||||||
|   }, |   }, | ||||||
|  |   module: { | ||||||
|  |     rules: [ | ||||||
|  |       { | ||||||
|  |         test: /\.js$/, | ||||||
|  |         exclude: /node_modules/, | ||||||
|  |         use: { | ||||||
|  |           loader: 'babel-loader', | ||||||
|  |           options: { | ||||||
|  |             presets: [ | ||||||
|  |               [ | ||||||
|  |                 '@babel/preset-env', | ||||||
|  |                 { | ||||||
|  |                   useBuiltIns: 'entry', | ||||||
|  |                   corejs: 3, | ||||||
|  |                 } | ||||||
|  |               ] | ||||||
|  |             ] | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|  |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue