potassium 5.2.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +22 -9
  3. data/.node-version +1 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +26 -0
  6. data/docs/DSL.md +5 -5
  7. data/lib/potassium/assets/.circleci/config.yml.erb +102 -0
  8. data/lib/potassium/assets/.eslintrc.json +343 -0
  9. data/lib/potassium/assets/.rubocop.yml +515 -0
  10. data/lib/potassium/assets/.stylelintrc.json +46 -0
  11. data/lib/potassium/assets/Dockerfile.ci +1 -1
  12. data/lib/potassium/assets/Makefile.erb +6 -32
  13. data/lib/potassium/assets/README.yml +51 -7
  14. data/lib/potassium/assets/active_admin/admin-component.vue +35 -0
  15. data/lib/potassium/assets/active_admin/admin_application.js +14 -0
  16. data/lib/potassium/assets/active_admin/init_activeadmin_vue.rb +10 -0
  17. data/lib/potassium/assets/api/base_controller.rb +1 -3
  18. data/lib/potassium/assets/app/javascript/app.spec.js +14 -0
  19. data/lib/potassium/assets/app/uploaders/base_uploader.rb +13 -0
  20. data/lib/potassium/assets/app/uploaders/image_uploader.rb +5 -0
  21. data/lib/potassium/assets/bin/cibuild.erb +18 -1
  22. data/lib/potassium/assets/bin/setup.erb +1 -1
  23. data/lib/potassium/assets/config/database_mysql.yml.erb +2 -2
  24. data/lib/potassium/assets/config/database_postgresql.yml.erb +2 -2
  25. data/lib/potassium/assets/config/shrine.rb +33 -0
  26. data/lib/potassium/assets/docker-compose.ci.yml +1 -0
  27. data/lib/potassium/assets/lib/tasks/auto_annotate_models.rake +2 -1
  28. data/lib/potassium/assets/package.json +4 -1
  29. data/lib/potassium/cli/commands/create.rb +1 -0
  30. data/lib/potassium/cli_options.rb +6 -6
  31. data/lib/potassium/helpers/template-helpers.rb +4 -0
  32. data/lib/potassium/recipes/admin.rb +3 -3
  33. data/lib/potassium/recipes/annotate.rb +1 -1
  34. data/lib/potassium/recipes/ci.rb +1 -1
  35. data/lib/potassium/recipes/database_container.rb +5 -4
  36. data/lib/potassium/recipes/draper.rb +1 -1
  37. data/lib/potassium/recipes/file_storage.rb +15 -33
  38. data/lib/potassium/recipes/front_end.rb +128 -5
  39. data/lib/potassium/recipes/mailer.rb +5 -2
  40. data/lib/potassium/recipes/node.rb +21 -0
  41. data/lib/potassium/recipes/rack_cors.rb +18 -15
  42. data/lib/potassium/recipes/schedule.rb +1 -1
  43. data/lib/potassium/recipes/style.rb +21 -3
  44. data/lib/potassium/recipes/vue_admin.rb +124 -0
  45. data/lib/potassium/templates/application.rb +4 -2
  46. data/lib/potassium/version.rb +4 -3
  47. data/potassium.gemspec +6 -5
  48. data/spec/features/database_container_spec.rb +1 -1
  49. data/spec/features/file_storage_spec.rb +12 -16
  50. data/spec/features/front_end_spec.rb +74 -0
  51. data/spec/features/new_project_spec.rb +1 -1
  52. data/spec/features/node_spec.rb +28 -0
  53. data/spec/features/power_types_spec.rb +5 -16
  54. data/spec/features/vue_admin_spec.rb +47 -0
  55. data/spec/support/potassium_test_helpers.rb +23 -9
  56. metadata +56 -29
  57. data/lib/potassium/assets/.circleci/config.yml +0 -20
  58. data/lib/potassium/assets/active_admin/active_admin.js.coffee +0 -4
  59. data/lib/potassium/assets/active_admin/init_activeadmin_angular.rb +0 -8
  60. data/lib/potassium/assets/testing/paperclip.rb +0 -59
  61. data/lib/potassium/recipes/angular_admin.rb +0 -56
  62. data/spec/features/front_end.rb +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9fb3b1b4a6ac80cce023a76b98629143523145baa3adcdf7a8afa46a56c97a1
4
- data.tar.gz: 0e99964ae4b0d55e7d8ba7bd610240e22d40203450cb8651009418970bcf16d3
3
+ metadata.gz: 0542ddf33e06d797cf282c823b87d5a418280c5b31b16f4f42b9b5b54499f474
4
+ data.tar.gz: 265838f7ff77f19b6ffdd0c2ecdefd3d6c33ebde2c68ec210a167b403cb70b26
5
5
  SHA512:
6
- metadata.gz: e759b1f5f9b8ff6a6eebcfa1e60366fb7a4cc188fb1561a2367439155014312f5dcfe168c8a8a1a3e1a2c43de2f6e837cea04cb0746b4452aae5090f5635755b
7
- data.tar.gz: 7a1ea34a7dde786ab915f79c9b1e59a62bf0f593dd1d331cd0a25284669b66e74d4628b62e4846ce6aeb1bae933ea965ae88fece52b424effad7c82dbeb87ad7
6
+ metadata.gz: 94b505b8058415e3b2dbcfd7161ebdb1bc9e212bd19510004212cda9ea7cddd7eb25de0b6716a628bc66614177a12b41ce866c121212d1b106b3948084e05b30
7
+ data.tar.gz: f41bfc6224f310f21ba12f9949c358333158343e1dd20665980e9cb3f6132436486f30b2ffc49500acf2c6566db7d46a9906291303583d3bec6ff2fcfc9d7ed4
@@ -6,7 +6,12 @@ jobs:
6
6
  shell: /bin/bash --login
7
7
 
8
8
  docker:
9
- - image: circleci/ruby:2.5.5-node
9
+ - image: circleci/ruby:2.7.0-node
10
+ environment:
11
+ GEM_HOME: /home/circleci/app/vendor/bundle
12
+ BUNDLE_JOBS: 4
13
+ BUNDLE_RETRY: 3
14
+ BUNDLE_PATH: /home/circleci/app/vendor/bundle
10
15
 
11
16
  steps:
12
17
  - checkout
@@ -14,16 +19,24 @@ jobs:
14
19
 
15
20
  - restore_cache:
16
21
  keys:
17
- - v1-dep-{{ .Branch }}-
18
- - v1-dep-master-
19
- - run: bundle install
22
+ - potassium-bundle-{{ .Branch }}-
23
+ - potassium-bundle-master-
24
+ - potassium-bundle-
25
+ - run: gem install bundler:2.0.2
26
+ - run: bundle _2.0.2_ install
20
27
  - run: gem install hound-cli
21
- - save_cache:
22
- key: v1-dep-{{ .Branch }}-{{ epoch }}
23
- paths:
24
- - vendor/bundle
25
28
  - run:
26
- command: bundle exec rspec --color --require spec_helper --format=doc --format progress $(circleci tests glob spec/**/*_spec.rb | circleci tests split)
29
+ command: |
30
+ bundle exec rspec --color --require spec_helper --profile 10 \
31
+ --format progress --format documentation \
32
+ --format RspecJunitFormatter --out test_results/rspec.xml \
33
+ $(circleci tests glob spec/**/*_spec.rb | circleci tests split --split-by=timings)
27
34
  environment:
28
35
  RAILS_ENV: test
29
36
  RACK_ENV: test
37
+ - save_cache:
38
+ key: potassium-bundle-{{ .Branch }}-{{ epoch }}
39
+ paths:
40
+ - vendor/bundle
41
+ - store_test_results:
42
+ path: test_results
@@ -0,0 +1 @@
1
+ 12
@@ -1 +1 @@
1
- 2.5
1
+ 2.7
@@ -2,6 +2,32 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.0.0
6
+
7
+ Features:
8
+ - Update ActiveAdmin to 2.6 [#246](https://github.com/platanus/potassium/pull/246)
9
+ - Update bundler to 2.0 [#250](https://github.com/platanus/potassium/pull/250)
10
+ - Update Rails to 6.0.2 [#251](https://github.com/platanus/potassium/pull/251)
11
+ - Improve specs performance [#259](https://github.com/platanus/potassium/pull/259)
12
+ - Dasherize app name in docker compose related files [#261](https://github.com/platanus/potassium/pull/261)
13
+ - Split specs by timings in CircleCI [#263](https://github.com/platanus/potassium/pull/263)
14
+ - Update ruby to 2.7.0 [#264](https://github.com/platanus/potassium/pull/264)
15
+ - Add tailwindcss [#266](https://github.com/platanus/potassium/pull/266)
16
+ - Update rack-cors to 1.1 [#269](https://github.com/platanus/potassium/pull/269)
17
+ - Use safer CORS configuration exposing only API and public resources [#271](https://github.com/platanus/potassium/pull/271)
18
+ - Add option to support Vue in ActiveAdmin [#272](https://github.com/platanus/potassium/pull/272)
19
+ - Add tests for Vue [#273](https://github.com/platanus/potassium/pull/278)
20
+ - Remove simple commands and docker-compose args in Makefile [#279](https://github.com/platanus/potassium/pull/279)
21
+ - Remove Paperclip and add [Shrine](https://github.com/shrinerb/shrine) for file_storage recipe [#291](https://github.com/platanus/potassium/pull/291)
22
+ - Add linting job to CircleCI builds using [reviewdog](https://github.com/reviewdog/reviewdog) and per-project dependencies/configurations for linters [#292](https://github.com/platanus/potassium/pull/292)
23
+ - Remove angular_admin recipe [#297](https://github.com/platanus/potassium/pull/297)
24
+
25
+ Fix:
26
+ - Correctly use cache for bundle dependencies in CircleCI build [#244](https://github.com/platanus/potassium/pull/244) and [#258](https://github.com/platanus/potassium/pull/258)
27
+ - Fix model auto annotate [#260](https://github.com/platanus/potassium/pull/260)
28
+ - Fix sidekiq repeated installation on potassium create if selecting mailer [#262](https://github.com/platanus/potassium/pull/262)
29
+ - Include ApiErrorConcern in all environments [#270](https://github.com/platanus/potassium/pull/270)
30
+
5
31
  ## 5.2.3
6
32
 
7
33
  Features:
@@ -308,7 +308,7 @@ add_readme_header(:style_guide)
308
308
 
309
309
  ##### | `add_readme_section(header, section, iterpolation_values)`
310
310
 
311
- To add header's sections. Paperclip, for example:
311
+ To add header's sections. Devise, for example:
312
312
 
313
313
  ```yml
314
314
  readme:
@@ -316,11 +316,11 @@ readme:
316
316
  internal_dependencies:
317
317
  title: "Internal dependencies"
318
318
  sections:
319
- paperclip:
320
- title: "Uploads"
321
- body: "For managing uploads, this project uses..."
319
+ devise:
320
+ title: "Authentication"
321
+ body: "We are using the great..."
322
322
  ```
323
323
 
324
324
  ```ruby
325
- add_readme_section(:internal_dependencies, :paperclip)
325
+ add_readme_section(:internal_dependencies, :devise)
326
326
  ```
@@ -0,0 +1,102 @@
1
+ version: 2
2
+ jobs:
3
+ test:
4
+ working_directory: ~/app
5
+
6
+ docker:
7
+ - image: platanus/compose:1.22.0
8
+
9
+ steps:
10
+ - checkout
11
+ - setup_remote_docker
12
+
13
+ - run: docker info
14
+ - run: docker-compose -f docker-compose.ci.yml pull
15
+ - run: docker-compose -f docker-compose.ci.yml build test
16
+ - run: bin/cibuild services
17
+ - run: bin/cibuild deps
18
+
19
+ - run: bin/cibuild db
20
+ - run: bin/cibuild tests
21
+ <% if selected?(:front_end, :vue) %>
22
+ - run: bin/cibuild js_tests
23
+ <% end %>
24
+
25
+ lint:
26
+ docker:
27
+ - image: circleci/ruby:2.7-node
28
+ environment:
29
+ BUNDLE_JOBS: 4
30
+ BUNDLE_RETRY: 3
31
+ BUNDLE_PATH: vendor/bundle
32
+ steps:
33
+ - checkout
34
+
35
+ - restore_cache:
36
+ keys:
37
+ - bundle-dependencies-{{ checksum "Gemfile.lock" }}
38
+ - bundle-dependencies-
39
+
40
+ - restore_cache:
41
+ keys:
42
+ - yarn-dependencies-{{ checksum "yarn.lock" }}
43
+ - yarn-dependencies-
44
+
45
+ - run:
46
+ name: Install bundle dependencies
47
+ command: |
48
+ BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")
49
+ gem install bundler:$BUNDLER_VERSION
50
+ bundle _$(echo $BUNDLER_VERSION)_ install
51
+
52
+ - save_cache:
53
+ key: bundle-dependencies-{{ checksum "Gemfile.lock" }}
54
+ paths:
55
+ - vendor/bundle
56
+
57
+ - run:
58
+ name: Install yarn dependencies
59
+ command: yarn install --frozen-lockfile
60
+
61
+ - save_cache:
62
+ key: yarn-dependencies-{{ checksum "yarn.lock" }}
63
+ paths:
64
+ - node_modules
65
+
66
+ - run:
67
+ name: Install reviewdog
68
+ command: |
69
+ curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b ./bin
70
+
71
+ - run:
72
+ name: Get files to lint
73
+ command: git diff origin/master --name-only --diff-filter=d > tmp/files_to_lint
74
+
75
+ - run:
76
+ name: Run rubocop
77
+ shell: /bin/bash
78
+ command: |
79
+ cat tmp/files_to_lint | grep -E '.+\.(rb)$' | xargs bundle exec rubocop --force-exclusion \
80
+ | ./bin/reviewdog -reporter=github-pr-review -f=rubocop
81
+
82
+ - run:
83
+ name: Run eslint
84
+ shell: /bin/bash
85
+ command: |
86
+ cat tmp/files_to_lint | grep -E '.+\.(js|jsx|vue)$' | xargs yarn run eslint \
87
+ | ./bin/reviewdog -reporter=github-pr-review -f=eslint
88
+
89
+ - run:
90
+ name: Run stylelint
91
+ shell: /bin/bash
92
+ command: |
93
+ cat tmp/files_to_lint | grep -E '.+\.(scss|css|less)$' | xargs yarn run stylelint \
94
+ | ./bin/reviewdog -reporter=github-pr-review -f=stylelint
95
+
96
+ workflows:
97
+ version: 2
98
+ test_and_lint:
99
+ jobs:
100
+ - test
101
+ - lint:
102
+ context: org-global
@@ -0,0 +1,343 @@
1
+ {
2
+ "env": {
3
+ "es6": true
4
+ },
5
+ "parserOptions": {
6
+ "ecmaVersion": 2018,
7
+ "sourceType": "module"
8
+ },
9
+ "plugins": ["import"],
10
+ "settings": {
11
+ "import/resolver": {
12
+ "node": {
13
+ "extensions": [".js", ".json"]
14
+ }
15
+ }
16
+ },
17
+ "extends": [
18
+ "plugin:vue/strongly-recommended"
19
+ ],
20
+ "rules": {
21
+ "accessor-pairs": 0,
22
+ "array-callback-return": 2,
23
+ "block-scoped-var": 2,
24
+ "complexity": [1, {
25
+ "max": 20
26
+ }],
27
+ "consistent-return": 2,
28
+ "curly": [2, "multi-line"],
29
+ "default-case": [2, {
30
+ "commentPattern": "^no default$"
31
+ }],
32
+ "dot-notation": [1, {
33
+ "allowKeywords": true
34
+ }],
35
+ "dot-location": [2, "property"],
36
+ "eqeqeq": [2],
37
+ "guard-for-in": 2,
38
+ "no-alert": 1,
39
+ "no-case-declarations": 2,
40
+ "no-div-regex": 0,
41
+ "no-else-return": 2,
42
+ "no-empty-function": [2, {
43
+ "allow": ["arrowFunctions", "functions", "methods"]
44
+ }],
45
+ "no-empty-pattern": 2,
46
+ "no-eval": 2,
47
+ "no-extend-native": 2,
48
+ "no-extra-bind": 2,
49
+ "no-fallthrough": 2,
50
+ "no-floating-decimal": 2,
51
+ "no-implicit-coercion": 0,
52
+ "no-implicit-globals": 2,
53
+ "no-implied-eval": 2,
54
+ "no-invalid-this": 0,
55
+ "no-iterator": 2,
56
+ "no-extra-label": 2,
57
+ "no-labels": [2, {
58
+ "allowLoop": false,
59
+ "allowSwitch": false
60
+ }],
61
+ "no-lone-blocks": 2,
62
+ "no-loop-func": 2,
63
+ "no-magic-numbers": [2, {
64
+ "ignore": [0, 1, -1]
65
+ }],
66
+ "no-multi-spaces": 2,
67
+ "no-multi-str": 2,
68
+ "no-native-reassign": 2,
69
+ "no-new": 2,
70
+ "no-new-func": 2,
71
+ "no-new-wrappers": 2,
72
+ "no-octal": 2,
73
+ "no-octal-escape": 2,
74
+ "no-param-reassign": [2, {
75
+ "props": false
76
+ }],
77
+ "no-proto": 2,
78
+ "no-redeclare": 2,
79
+ "no-return-assign": 2,
80
+ "no-script-url": 2,
81
+ "no-self-assign": 2,
82
+ "no-self-compare": 2,
83
+ "no-sequences": 2,
84
+ "no-throw-literal": 2,
85
+ "no-unmodified-loop-condition": 0,
86
+ "no-unused-expressions": 2,
87
+ "no-unused-labels": 2,
88
+ "no-useless-call": 0,
89
+ "no-useless-concat": 2,
90
+ "no-useless-escape": 2,
91
+ "no-void": 0,
92
+ "no-warning-comments": [1, {
93
+ "terms": ["todo", "fixme", "xxx"],
94
+ "location": "start"
95
+ }],
96
+ "no-with": 2,
97
+ "radix": 2,
98
+ "vars-on-top": 2,
99
+ "wrap-iife": [2, "any"],
100
+ "yoda": 2,
101
+ "comma-dangle": [2, "always-multiline"],
102
+ "no-cond-assign": [2, "always"],
103
+ "no-console": 0,
104
+ "no-debugger": 0,
105
+ "no-constant-condition": 2,
106
+ "no-control-regex": 2,
107
+ "no-dupe-args": 2,
108
+ "no-dupe-keys": 2,
109
+ "no-duplicate-case": 2,
110
+ "no-empty": 2,
111
+ "no-empty-character-class": 2,
112
+ "no-ex-assign": 2,
113
+ "no-extra-boolean-cast": 0,
114
+ "no-extra-parens": [0, "all", {
115
+ "conditionalAssign": true,
116
+ "nestedBinaryExpressions": false,
117
+ "returnAssign": false
118
+ }],
119
+ "no-extra-semi": 2,
120
+ "no-func-assign": 2,
121
+ "no-inner-declarations": 2,
122
+ "no-invalid-regexp": 2,
123
+ "no-irregular-whitespace": 2,
124
+ "no-negated-in-lhs": 2,
125
+ "no-obj-calls": 2,
126
+ "no-regex-spaces": 2,
127
+ "no-sparse-arrays": 2,
128
+ "no-unexpected-multiline": 0,
129
+ "no-unreachable": 2,
130
+ "no-unsafe-finally": 2,
131
+ "use-isnan": 2,
132
+ "valid-jsdoc": 0,
133
+ "valid-typeof": 2,
134
+ "arrow-body-style": [2, "as-needed"],
135
+ "arrow-parens": 0,
136
+ "arrow-spacing": [2, {
137
+ "before": true,
138
+ "after": true
139
+ }],
140
+ "constructor-super": 0,
141
+ "generator-star-spacing": [2, {
142
+ "before": true,
143
+ "after": false
144
+ }],
145
+ "no-class-assign": 2,
146
+ "no-confusing-arrow": [2, {
147
+ "allowParens": true
148
+ }],
149
+ "no-const-assign": 2,
150
+ "no-dupe-class-members": 2,
151
+ "no-duplicate-imports": 2,
152
+ "no-new-symbol": 2,
153
+ "no-restricted-imports": 0,
154
+ "no-this-before-super": 0,
155
+ "no-useless-computed-key": 2,
156
+ "no-useless-constructor": 2,
157
+ "no-var": 2,
158
+ "object-shorthand": [2, "always", {
159
+ "ignoreConstructors": false,
160
+ "avoidQuotes": true
161
+ }],
162
+ "prefer-arrow-callback": [2, {
163
+ "allowNamedFunctions": false,
164
+ "allowUnboundThis": true
165
+ }],
166
+ "prefer-const": [2, {
167
+ "destructuring": "any",
168
+ "ignoreReadBeforeAssign": true
169
+ }],
170
+ "prefer-reflect": 0,
171
+ "no-caller": 2,
172
+ "prefer-rest-params": 2,
173
+ "prefer-spread": 2,
174
+ "prefer-template": 2,
175
+ "require-yield": 2,
176
+ "sort-imports": 0,
177
+ "template-curly-spacing": 2,
178
+ "yield-star-spacing": [2, "before"],
179
+ "import/no-unresolved": [0],
180
+ "import/named": 0,
181
+ "import/default": 0,
182
+ "import/namespace": 0,
183
+ "import/export": 2,
184
+ "import/no-named-as-default": 0,
185
+ "import/no-named-as-default-member": 0,
186
+ "import/no-deprecated": 0,
187
+ "import/no-extraneous-dependencies": [0, {
188
+ "devDependencies": false,
189
+ "optionalDependencies": false
190
+ }],
191
+ "import/no-mutable-exports": 2,
192
+ "import/no-commonjs": 0,
193
+ "import/no-amd": 2,
194
+ "import/no-nodejs-modules": 0,
195
+ "import/imports-first": [2, "absolute-first"],
196
+ "import/no-duplicates": 2,
197
+ "import/no-namespace": 0,
198
+ "import/extensions": [0, "never"],
199
+ "import/order": [0, {
200
+ "groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
201
+ "newlines-between": "never"
202
+ }],
203
+ "import/newline-after-import": 2,
204
+ "import/prefer-default-export": 2,
205
+ "array-bracket-spacing": [2, "never"],
206
+ "block-spacing": [2, "always"],
207
+ "brace-style": [2, "1tbs", {
208
+ "allowSingleLine": true
209
+ }],
210
+ "camelcase": [2, {
211
+ "properties": "always"
212
+ }],
213
+ "comma-spacing": [2, {
214
+ "before": false,
215
+ "after": true
216
+ }],
217
+ "comma-style": [2, "last"],
218
+ "computed-property-spacing": [2, "never"],
219
+ "consistent-this": [2, "self"],
220
+ "eol-last": 2,
221
+ "func-names": 0,
222
+ "func-style": [2, "declaration"],
223
+ "id-blacklist": 0,
224
+ "id-length": 0,
225
+ "id-match": 0,
226
+ "indent": [2, 2],
227
+ "key-spacing": [2, {
228
+ "beforeColon": false,
229
+ "afterColon": true
230
+ }],
231
+ "keyword-spacing": [2, {
232
+ "before": true,
233
+ "after": true,
234
+ "overrides": {
235
+ "return": {
236
+ "after": true
237
+ },
238
+ "throw": {
239
+ "after": true
240
+ },
241
+ "case": {
242
+ "after": true
243
+ }
244
+ }
245
+ }],
246
+ "linebreak-style": [2, "unix"],
247
+ "lines-around-comment": 0,
248
+ "max-depth": [2, 4],
249
+ "max-len": [2, 120, {
250
+ "ignorePattern": "^\\s.+class=\""
251
+ }],
252
+ "max-nested-callbacks": [2, 4],
253
+ "max-params": [1, 4],
254
+ "max-statements": [1, 10],
255
+ "max-statements-per-line": [2, {
256
+ "max": 1
257
+ }],
258
+ "new-cap": [2, {
259
+ "newIsCap": true
260
+ }],
261
+ "new-parens": 2,
262
+ "newline-after-var": 0,
263
+ "newline-before-return": 2,
264
+ "newline-per-chained-call": [2, {
265
+ "ignoreChainWithDepth": 3
266
+ }],
267
+ "no-array-constructor": 2,
268
+ "no-bitwise": 1,
269
+ "no-continue": 0,
270
+ "no-inline-comments": 0,
271
+ "no-lonely-if": 0,
272
+ "no-mixed-spaces-and-tabs": 2,
273
+ "no-multiple-empty-lines": [2, {
274
+ "max": 1,
275
+ "maxEOF": 1
276
+ }],
277
+ "no-negated-condition": 2,
278
+ "no-nested-ternary": 2,
279
+ "no-new-object": 2,
280
+ "no-plusplus": 0,
281
+ "no-restricted-syntax": [2, "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"],
282
+ "no-spaced-func": 2,
283
+ "no-ternary": 0,
284
+ "no-trailing-spaces": 2,
285
+ "no-underscore-dangle": [1],
286
+ "no-unneeded-ternary": [2, {
287
+ "defaultAssignment": false
288
+ }],
289
+ "no-whitespace-before-property": 2,
290
+ "object-curly-spacing": [2, "always"],
291
+ "object-property-newline": [0, {
292
+ "allowMultiplePropertiesPerLine": true
293
+ }],
294
+ "one-var": [2, "never"],
295
+ "one-var-declaration-per-line": [2, "always"],
296
+ "operator-assignment": 2,
297
+ "operator-linebreak": [2, "after"],
298
+ "padded-blocks": [2, "never"],
299
+ "quote-props": [2, "as-needed", {
300
+ "keywords": false,
301
+ "unnecessary": false,
302
+ "numbers": false
303
+ }],
304
+ "quotes": [2, "single", {
305
+ "avoidEscape": true
306
+ }],
307
+ "require-jsdoc": 0,
308
+ "semi": [2, "always"],
309
+ "semi-spacing": [2, {
310
+ "before": false,
311
+ "after": true
312
+ }],
313
+ "sort-vars": 0,
314
+ "space-before-blocks": 2,
315
+ "space-before-function-paren": [2, {
316
+ "anonymous": "always",
317
+ "named": "never"
318
+ }],
319
+ "space-in-parens": [2, "never"],
320
+ "space-infix-ops": 2,
321
+ "space-unary-ops": 0,
322
+ "spaced-comment": [2],
323
+ "wrap-regex": 0,
324
+ "init-declarations": 0,
325
+ "no-catch-shadow": 2,
326
+ "no-delete-var": 0,
327
+ "no-label-var": 2,
328
+ "no-restricted-globals": 0,
329
+ "no-shadow": 2,
330
+ "no-shadow-restricted-names": 2,
331
+ "no-undef": 2,
332
+ "no-undef-init": 2,
333
+ "no-unused-vars": [2, {
334
+ "vars": "local",
335
+ "args": "after-used"
336
+ }],
337
+ "no-use-before-define": 2,
338
+ "vue/max-len": ["error", {
339
+ "code": 120,
340
+ "ignoreHTMLAttributeValues": true
341
+ }]
342
+ }
343
+ }