Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(plugin): v4.0.0 #344

Merged
merged 9 commits into from
Sep 1, 2018
11 changes: 8 additions & 3 deletions .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"useBuiltIns": true,
"targets": {
"node": "4.8"
"node": "6.9.0"
},
"exclude": [
"transform-async-to-generator",
Expand All @@ -15,15 +15,20 @@
]
],
"plugins": [
"transform-runtime"
[
"transform-object-rest-spread",
{
"useBuiltIns": true
}
]
],
"env": {
"test": {
"presets": [
"env"
],
"plugins": [
"transform-runtime"
"transform-object-rest-spread"
]
}
}
Expand Down
156 changes: 156 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
unit_tests: &unit_tests
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: NPM Rebuild
command: npm install
- run:
name: Run unit tests.
command: npm run ci:test
canary_tests: &canary_tests
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: NPM Rebuild
command: npm install
- run:
name: Install Webpack Canary
command: npm i --no-save webpack@next
- run:
name: Run unit tests.
command: if [[ $(compver --name webpack --gte next --lt latest) < 1 ]] ; then printf "Next is older than Latest - Skipping Canary Suite"; else npm run ci:test ; fi

version: 2
jobs:
dependency_cache:
docker:
- image: webpackcontrib/circleci-node-base:latest
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: Install Dependencies
command: npm install
- save_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
paths:
- ./node_modules

node8-latest:
docker:
- image: webpackcontrib/circleci-node8:latest
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: NPM Rebuild
command: npm install
- run:
name: Run unit tests.
command: npm run ci:coverage
- run:
name: Submit coverage data to codecov.
command: bash <(curl -s https://codecov.io/bash)
when: on_success
node6-latest:
docker:
- image: webpackcontrib/circleci-node6:latest
<<: *unit_tests
node10-latest:
docker:
- image: webpackcontrib/circleci-node10:latest
<<: *unit_tests
node8-canary:
docker:
- image: webpackcontrib/circleci-node8:latest
<<: *canary_tests
analysis:
docker:
- image: webpackcontrib/circleci-node-base:latest
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: NPM Rebuild
command: npm install
- run:
name: Run linting.
command: npm run lint
- run:
name: Run NSP Security Check.
command: npm run security
- run:
name: Validate Commit Messages
command: npm run ci:lint:commits
publish:
docker:
- image: webpackcontrib/circleci-node-base:latest
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: NPM Rebuild
command: npm install
# - run:
# name: Validate Commit Messages
# command: npm run release:validate
- run:
name: Publish to NPM
command: printf "noop running conventional-github-releaser"

version: 2.0
workflows:
version: 2
validate-publish:
jobs:
- dependency_cache
- node6-latest:
requires:
- dependency_cache
filters:
tags:
only: /.*/
- analysis:
requires:
- dependency_cache
filters:
tags:
only: /.*/
- node8-latest:
requires:
- analysis
- node6-latest
filters:
tags:
only: /.*/
- node10-latest:
requires:
- analysis
- node6-latest
filters:
tags:
only: /.*/
- node8-canary:
requires:
- analysis
- node6-latest
filters:
tags:
only: /.*/
- publish:
requires:
- node8-latest
- node8-canary
- node10-latest
filters:
branches:
only:
- master
8 changes: 3 additions & 5 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# http://editorconfig.org

root = true
# editorconfig.org

[*]
charset = utf-8
Expand All @@ -11,5 +9,5 @@ insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
insert_final_newline = true
trim_trailing_whitespace = false
4 changes: 3 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
dist/*
lib/*
/node_modules
/dist
145 changes: 13 additions & 132 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,138 +1,19 @@
{
"root": true,
"parserOptions": {
"ecmaVersion": "7",
"sourceType": "module",
"ecmaFeatures": {
"impliedStrict": true,
"experimentalObjectRestSpread": true
},
"extends": "webpack",
"globals": {
"document": true,
"window": true
},
"env": {
"es6": true,
"node": true,
"mocha": true
"parserOptions": {
"sourceType": "script"
},
"rules": {
"strict": [2, "global"],
"no-constant-condition": [2, {"checkLoops": false}],
"no-undef": 2,
"no-use-before-define": 2,
"new-cap": 0,
"no-const-assign": 2,
"key-spacing": 0,
"block-spacing": [2, "never"],
"array-bracket-spacing": [2, "never"],
"brace-style": [2, "1tbs", {"allowSingleLine": true}],
"camelcase": [2, {"properties": "always"}],
"comma-spacing": [2, {"before": false, "after": true}],
"max-statements-per-line": [2, {"max": 1}],
"no-debugger": 1,
"no-trailing-spaces": 1,
"eol-last": 0,
"no-dupe-keys": 2,
"no-dupe-args": 2,
"no-dupe-class-members": 2,
"max-len": [1, {"code": 110, "ignoreUrls": true}],
"newline-before-return": 1,
"newline-after-var": 1,
"newline-per-chained-call": ["error", {"ignoreChainWithDepth":2 }],
"prefer-rest-params": 2,
"func-style": [1, "expression"],
"no-useless-rename": 1,
"prefer-spread": 1,
"template-curly-spacing": [2, "never"],
"no-useless-constructor": 1,
"no-useless-computed-key": 2,
"no-this-before-super": 2,
"no-class-assign": 2,
"no-duplicate-imports": 2,
"no-duplicate-case": 2,
"no-empty-character-class": 2,
"no-ex-assign": 2,
"no-empty": 2,
"no-extra-boolean-cast": 1,
"quote-props": [2, "as-needed"],
"no-return-assign": 0,
"one-var-declaration-per-line": [2, "always"],
"no-whitespace-before-property": 1,
"no-underscore-dangle": 0,
"max-nested-callbacks": [2, 4],
"space-unary-ops": [1, {
"words": true,
"nonwords": false
}],
"space-infix-ops": 2,
"keyword-spacing": [2, {"before": true, "after": true}],
"space-in-parens": [2, "never"],
"space-before-function-paren": [1, "never"],
"max-depth": [2, 6],
"linebreak-style": [2, "unix"],
"space-before-blocks": [1, "always"],
"arrow-spacing": [2, {"before": true, "after": true}],
"generator-star-spacing": [2, {"before": true, "after": false}],
"constructor-super": 2,
"object-shorthand": [1, "always"],
"no-unused-vars": 2,
"no-multi-spaces": 0,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-redeclare": 2,
"no-self-compare": 2,
"no-throw-literal": 2,
"wrap-iife": [2, "inside"],
"operator-linebreak": [2, "after"],
"operator-assignment": [2, "always"],
"object-curly-spacing": [2, "never"],
"no-spaced-func": 2,
"no-unneeded-ternary": 1,
"padded-blocks": [2, "never"],
"prefer-template": 1,
"no-func-assign": 2,
"no-inner-declarations": 2,
"no-invalid-regexp": 2,
"no-regex-spaces": 1,
"no-unreachable": 1,
"no-proto": 2,
"no-sparse-arrays": 2,
"valid-typeof": 2,
"block-scoped-var": 2,
"dot-location": [2, "property"],
"dot-notation": 2,
"eqeqeq": 2,
"no-alert": 2,
"no-case-declarations": 2,
"no-empty-pattern": 2,
"no-eval": 2,
"no-extra-bind": 1,
"no-labels": 2,
"no-lone-blocks": 2,
"no-lonely-if": 2,
"no-multiple-empty-lines": 1,
"no-nested-ternary": 2,
"no-restricted-syntax": ["error", "WithStatement"],
"no-mixed-spaces-and-tabs": 1,
"no-loop-func": 2,
"use-isnan": 2,
"no-irregular-whitespace": 1,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"prefer-const": 0,
"one-var": [2, {"uninitialized": "always"}],
"curly": 0,
"computed-property-spacing": [2, "never"],
"comma-style": [2, "last"],
"no-console": 1,
"indent": [2, 2, {
"SwitchCase": 1,
"VariableDeclarator": {
"var": 2,
"let": 2,
"const": 3
}
}],
"quotes": [2, "single"],
"semi": [2, "never"],
"no-extra-semi": 0
"comma-dangle": ["error", "never"],
"consistent-return": "off",
"no-param-reassign": "off",
"no-underscore-dangle": "off",
"prefer-destructuring": ["error", {"object": false, "array": false}],
"prefer-rest-params": "off",
"strict": ["error", "safe"]
}
}
11 changes: 11 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = {
root: true,
plugins: ['prettier'],
extends: ['@webpack-contrib/eslint-config-webpack'],
rules: {
'prettier/prettier': [
'error',
{ singleQuote: true, trailingComma: 'es5', arrowParens: 'always' },
],
},
};
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
* text=auto
bin/* eol=lf
bin/* eol=lf
package-lock.json -diff
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# These are the default owners for everything in
# webpack-contrib
@webpack-contrib/org-maintainers

# Add repository specific users / groups
# below here for libs that are not maintained by the org.
Loading