diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 6b6fa4336..fb7d19ebe 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -6,26 +6,33 @@ const gutil = require("gulp-util"); const gulp = require("gulp"); const path = require("path"); -const scripts = "./packages/*/src/**/*.js"; -const dest = "packages"; +export const build = gulp.series(buildPackages, buildUtils); -let srcEx, libFragment; +export const watch = gulp.series(build, () => { + const scripts = [ + getBuildConfig("packages").scripts, + getBuildConfig("utils").scripts + ]; + gulp.watch(scripts, { debounceDelay: 200 }, build).on("error", () => {}); +}); -if (path.win32 === path) { - srcEx = /(packages\\[^\\]+)\\src\\/; - libFragment = "$1\\lib\\"; -} else { - srcEx = new RegExp("(packages/[^/]+)/src/"); - libFragment = "$1/lib/"; +export function buildPackages() { + return getBuildTask(getBuildConfig("packages")); } -export function build() { +export function buildUtils() { + return getBuildTask(getBuildConfig("utils")); +} + +export default build; + +function getBuildTask({ scripts, dest }) { return gulp .src(scripts) .pipe( through.obj((file, enc, callback) => { file._path = file.path; - file.path = file.path.replace(srcEx, libFragment); + file.path = path.resolve(file.base, swapSrcWithLib(file.relative)); callback(null, file); }) ) @@ -40,8 +47,15 @@ export function build() { .pipe(gulp.dest(dest)); } -export const watch = gulp.series(build, () => { - gulp.watch(scripts, { debounceDelay: 200 }, build).on("error", () => {}); -}); +function getBuildConfig(dir) { + const scripts = `./${dir}/*/src/**/*.js`; + const dest = dir; -export default build; + return { scripts, dest }; +} + +function swapSrcWithLib(srcPath) { + const parts = srcPath.split(path.sep); + parts[1] = "lib"; + return parts.join(path.sep); +} diff --git a/package.json b/package.json index 42e131d83..82042c970 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,13 @@ "build": "gulp build", "changelog": "lerna-changelog", "clean": "lerna clean", - "coverage": "jest --coverage --maxWorkers=4", + "coverage": "jest --coverage --maxWorkers=4 --no-cache", "coverage-ci": "codecov -f coverage/coverage-final.json", "fix": "eslint --fix .", "lint": "eslint .", "publish": "git pull origin master --rebase && npm run build && npm test && lerna publish", "publish-internal": "git pull origin master --rebase && npm run build && NPM_DIST_TAG=internal ./node_modules/.bin/lerna publish --skip-git", - "test": "jest --maxWorkers=4", + "test": "jest --maxWorkers=4 --no-cache", "test-ci": "npm run bootstrap && npm run build && npm run coverage", "updated": "lerna updated", "watch": "gulp watch" @@ -61,11 +61,13 @@ "/fixtures/" ], "roots": [ - "packages" + "packages", + "utils" ], "coverageDirectory": "./coverage/" }, "workspaces": [ - "packages/*" + "packages/*", + "utils/*" ] } diff --git a/packages/babel-plugin-minify-builtins/__tests__/minify-builtins.js b/packages/babel-plugin-minify-builtins/__tests__/minify-builtins.js index 7837a6e47..706450f63 100644 --- a/packages/babel-plugin-minify-builtins/__tests__/minify-builtins.js +++ b/packages/babel-plugin-minify-builtins/__tests__/minify-builtins.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform").snapshot( - require("../src/index") -); +const thePlugin = require("test-transform").snapshot(require("../src/index")); describe("minify-builtins", () => { thePlugin( diff --git a/packages/babel-plugin-minify-constant-folding/__tests__/constant-folding-test.js b/packages/babel-plugin-minify-constant-folding/__tests__/constant-folding-test.js index 408738f40..58c9d9e71 100644 --- a/packages/babel-plugin-minify-constant-folding/__tests__/constant-folding-test.js +++ b/packages/babel-plugin-minify-constant-folding/__tests__/constant-folding-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("constant-folding-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-minify-dead-code-elimination/__tests__/dead-code-elimination-test.js b/packages/babel-plugin-minify-dead-code-elimination/__tests__/dead-code-elimination-test.js index 4c622c3ca..19b2a63fd 100644 --- a/packages/babel-plugin-minify-dead-code-elimination/__tests__/dead-code-elimination-test.js +++ b/packages/babel-plugin-minify-dead-code-elimination/__tests__/dead-code-elimination-test.js @@ -1,10 +1,10 @@ jest.autoMockOff(); const babel = require("babel-core"); -const unpad = require("../../../utils/unpad"); +const unpad = require("unpad"); const deadcode = require("../src/index"); const simplify = require("../../babel-plugin-minify-simplify/src/index"); -const thePlugin = require("../../../utils/test-transform")(deadcode); +const thePlugin = require("test-transform")(deadcode); function transformWithSimplify(code) { return babel.transform(code, { diff --git a/packages/babel-plugin-minify-flip-comparisons/__tests__/flip-comparisons-test.js b/packages/babel-plugin-minify-flip-comparisons/__tests__/flip-comparisons-test.js index 4483df74f..b35aa46f2 100644 --- a/packages/babel-plugin-minify-flip-comparisons/__tests__/flip-comparisons-test.js +++ b/packages/babel-plugin-minify-flip-comparisons/__tests__/flip-comparisons-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("flip-comparisons", () => { thePlugin( diff --git a/packages/babel-plugin-minify-guarded-expressions/__tests__/guarded-expressions-test.js b/packages/babel-plugin-minify-guarded-expressions/__tests__/guarded-expressions-test.js index 92b4a1414..ddd0d285f 100644 --- a/packages/babel-plugin-minify-guarded-expressions/__tests__/guarded-expressions-test.js +++ b/packages/babel-plugin-minify-guarded-expressions/__tests__/guarded-expressions-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("guarded-expressions-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-minify-infinity/__tests__/infinity-test.js b/packages/babel-plugin-minify-infinity/__tests__/infinity-test.js index bb99574cf..d1c4a381d 100644 --- a/packages/babel-plugin-minify-infinity/__tests__/infinity-test.js +++ b/packages/babel-plugin-minify-infinity/__tests__/infinity-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("minify-infinity", () => { thePlugin( diff --git a/packages/babel-plugin-minify-mangle-names/__tests__/mangle-names-test.js b/packages/babel-plugin-minify-mangle-names/__tests__/mangle-names-test.js index c84e74e54..cf009685d 100644 --- a/packages/babel-plugin-minify-mangle-names/__tests__/mangle-names-test.js +++ b/packages/babel-plugin-minify-mangle-names/__tests__/mangle-names-test.js @@ -1,7 +1,7 @@ jest.autoMockOff(); const mangler = require("../src/index"); -const thePlugin = require("../../../utils/test-transform")(mangler); +const thePlugin = require("test-transform")(mangler); describe("mangle-names", () => { thePlugin( diff --git a/packages/babel-plugin-minify-mangle-names/__tests__/mangler-block-scoping.js b/packages/babel-plugin-minify-mangle-names/__tests__/mangler-block-scoping.js index cdb493961..83c67a98b 100644 --- a/packages/babel-plugin-minify-mangle-names/__tests__/mangler-block-scoping.js +++ b/packages/babel-plugin-minify-mangle-names/__tests__/mangler-block-scoping.js @@ -1,7 +1,7 @@ jest.autoMockOff(); const babel = require("babel-core"); -const unpad = require("../../../utils/unpad"); +const unpad = require("unpad"); const traverse = require("babel-traverse").default; describe("mangler with block-scoping", () => { diff --git a/packages/babel-plugin-minify-numeric-literals/__tests__/numeric-literals-test.js b/packages/babel-plugin-minify-numeric-literals/__tests__/numeric-literals-test.js index 383194fcd..630c54448 100644 --- a/packages/babel-plugin-minify-numeric-literals/__tests__/numeric-literals-test.js +++ b/packages/babel-plugin-minify-numeric-literals/__tests__/numeric-literals-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("numeric-literals", () => { thePlugin( diff --git a/packages/babel-plugin-minify-simplify/__tests__/simplify-test.js b/packages/babel-plugin-minify-simplify/__tests__/simplify-test.js index ef29adfa4..4f1ee3689 100644 --- a/packages/babel-plugin-minify-simplify/__tests__/simplify-test.js +++ b/packages/babel-plugin-minify-simplify/__tests__/simplify-test.js @@ -35,7 +35,7 @@ jest.autoMockOff(); const comparisonPlugin = require("../../babel-plugin-transform-simplify-comparison-operators/src"); const plugin = require("../src/index"); -const thePlugin = require("../../../utils/test-transform")(plugin); +const thePlugin = require("test-transform")(plugin); describe("simplify-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-minify-type-constructors/__tests__/type-constructors-test.js b/packages/babel-plugin-minify-type-constructors/__tests__/type-constructors-test.js index be00d7f4f..ddbfffcfb 100644 --- a/packages/babel-plugin-minify-type-constructors/__tests__/type-constructors-test.js +++ b/packages/babel-plugin-minify-type-constructors/__tests__/type-constructors-test.js @@ -2,8 +2,8 @@ jest.autoMockOff(); const babel = require("babel-core"); const plugin = require("../src/index"); -const unpad = require("../../../utils/unpad"); -const thePlugin = require("../../../utils/test-transform")(plugin); +const unpad = require("unpad"); +const thePlugin = require("test-transform")(plugin); describe("type-constructors-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-inline-consecutive-adds/__tests__/transform-inline-consecutive-adds-test.js b/packages/babel-plugin-transform-inline-consecutive-adds/__tests__/transform-inline-consecutive-adds-test.js index f55baa305..d8d8b2c90 100644 --- a/packages/babel-plugin-transform-inline-consecutive-adds/__tests__/transform-inline-consecutive-adds-test.js +++ b/packages/babel-plugin-transform-inline-consecutive-adds/__tests__/transform-inline-consecutive-adds-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-inline-consecutive-adds-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-inline-environment-variables/__tests__/inline-env-var-test.js b/packages/babel-plugin-transform-inline-environment-variables/__tests__/inline-env-var-test.js index dfa216bda..b649c33ab 100644 --- a/packages/babel-plugin-transform-inline-environment-variables/__tests__/inline-env-var-test.js +++ b/packages/babel-plugin-transform-inline-environment-variables/__tests__/inline-env-var-test.js @@ -1,7 +1,7 @@ jest.autoMockOff(); const plugin = require("../src/index"); -const thePlugin = require("../../../utils/test-transform")(plugin); +const thePlugin = require("test-transform")(plugin); describe("inline-env-plugin", () => { let prev; diff --git a/packages/babel-plugin-transform-member-expression-literals/__tests__/transform-member-expression-literals-test.js b/packages/babel-plugin-transform-member-expression-literals/__tests__/transform-member-expression-literals-test.js index 1e0921730..7fc20ec53 100644 --- a/packages/babel-plugin-transform-member-expression-literals/__tests__/transform-member-expression-literals-test.js +++ b/packages/babel-plugin-transform-member-expression-literals/__tests__/transform-member-expression-literals-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-member-expressions-literals-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js b/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js index 8b474d139..2005c325b 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js +++ b/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-merge-sibling-variables-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-minify-booleans/__tests__/booleans-test.js b/packages/babel-plugin-transform-minify-booleans/__tests__/booleans-test.js index a998b9440..ded332eb3 100644 --- a/packages/babel-plugin-transform-minify-booleans/__tests__/booleans-test.js +++ b/packages/babel-plugin-transform-minify-booleans/__tests__/booleans-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("boolean-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-node-env-inline/__tests__/node-env-inline-test.js b/packages/babel-plugin-transform-node-env-inline/__tests__/node-env-inline-test.js index f463fcb3a..1857220f3 100644 --- a/packages/babel-plugin-transform-node-env-inline/__tests__/node-env-inline-test.js +++ b/packages/babel-plugin-transform-node-env-inline/__tests__/node-env-inline-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("node-env-inline-plugin", () => { let prev; diff --git a/packages/babel-plugin-transform-property-literals/__tests__/transform-property-literals-test.js b/packages/babel-plugin-transform-property-literals/__tests__/transform-property-literals-test.js index db37b72c9..fb6ada027 100644 --- a/packages/babel-plugin-transform-property-literals/__tests__/transform-property-literals-test.js +++ b/packages/babel-plugin-transform-property-literals/__tests__/transform-property-literals-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-property-literals-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-regexp-constructors/__tests__/transform-regexp-constructors-test.js b/packages/babel-plugin-transform-regexp-constructors/__tests__/transform-regexp-constructors-test.js index c46ff75cf..a059a069d 100644 --- a/packages/babel-plugin-transform-regexp-constructors/__tests__/transform-regexp-constructors-test.js +++ b/packages/babel-plugin-transform-regexp-constructors/__tests__/transform-regexp-constructors-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-regexp-constructors-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-remove-console/__tests__/remove-console-test.js b/packages/babel-plugin-transform-remove-console/__tests__/remove-console-test.js index b3e237ee5..b7d999ca0 100644 --- a/packages/babel-plugin-transform-remove-console/__tests__/remove-console-test.js +++ b/packages/babel-plugin-transform-remove-console/__tests__/remove-console-test.js @@ -1,7 +1,7 @@ jest.autoMockOff(); const plugin = require("../src/index"); -const thePlugin = require("../../../utils/test-transform")(plugin); +const thePlugin = require("test-transform")(plugin); describe("remove-console-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-remove-debugger/__tests__/remove-debugger-test.js b/packages/babel-plugin-transform-remove-debugger/__tests__/remove-debugger-test.js index 135b1fe5d..444fc3d53 100644 --- a/packages/babel-plugin-transform-remove-debugger/__tests__/remove-debugger-test.js +++ b/packages/babel-plugin-transform-remove-debugger/__tests__/remove-debugger-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("remove-debugger-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-remove-undefined/__tests__/babel-plugin-transform-remove-undefined-test.js b/packages/babel-plugin-transform-remove-undefined/__tests__/babel-plugin-transform-remove-undefined-test.js index 671c46a9c..e0de6a764 100644 --- a/packages/babel-plugin-transform-remove-undefined/__tests__/babel-plugin-transform-remove-undefined-test.js +++ b/packages/babel-plugin-transform-remove-undefined/__tests__/babel-plugin-transform-remove-undefined-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("transform-remove-undefined-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/__tests__/strict-equals-test.js b/packages/babel-plugin-transform-simplify-comparison-operators/__tests__/strict-equals-test.js index 3e91533e3..4235cb1ed 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/__tests__/strict-equals-test.js +++ b/packages/babel-plugin-transform-simplify-comparison-operators/__tests__/strict-equals-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("simplify-comparison-operators-plugin", () => { thePlugin( diff --git a/packages/babel-plugin-transform-undefined-to-void/__tests__/undefined-test.js b/packages/babel-plugin-transform-undefined-to-void/__tests__/undefined-test.js index 2791c15a5..bf76a51fe 100644 --- a/packages/babel-plugin-transform-undefined-to-void/__tests__/undefined-test.js +++ b/packages/babel-plugin-transform-undefined-to-void/__tests__/undefined-test.js @@ -1,8 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")( - require("../src/index") -); +const thePlugin = require("test-transform")(require("../src/index")); describe("undefined-plugin", () => { thePlugin( diff --git a/packages/babel-preset-minify/__tests__/babili-es2015-tests.js b/packages/babel-preset-minify/__tests__/babili-es2015-tests.js index 49cc15e93..9ead77abd 100644 --- a/packages/babel-preset-minify/__tests__/babili-es2015-tests.js +++ b/packages/babel-preset-minify/__tests__/babili-es2015-tests.js @@ -3,7 +3,7 @@ jest.autoMockOff(); const es2015 = require("babel-preset-es2015"); const minifyPreset = require("../src/index"); -const thePlugin = require("../../../utils/test-transform")(null, { +const thePlugin = require("test-transform")(null, { plugins: [], minified: false, presets: [minifyPreset, es2015] diff --git a/packages/babel-preset-minify/__tests__/preset-tests.js b/packages/babel-preset-minify/__tests__/preset-tests.js index e704e8049..4f7bf2c54 100644 --- a/packages/babel-preset-minify/__tests__/preset-tests.js +++ b/packages/babel-preset-minify/__tests__/preset-tests.js @@ -1,6 +1,6 @@ jest.autoMockOff(); -const thePlugin = require("../../../utils/test-transform")(null, { +const thePlugin = require("test-transform")(null, { plugins: [], minified: false, presets: [require("../src/index")] diff --git a/packages/gulp-babel-minify/__tests__/gulp-babili-test.js b/packages/gulp-babel-minify/__tests__/gulp-babili-test.js index 4f0ca1137..53fb7754a 100644 --- a/packages/gulp-babel-minify/__tests__/gulp-babili-test.js +++ b/packages/gulp-babel-minify/__tests__/gulp-babili-test.js @@ -4,7 +4,7 @@ const gutil = require("gulp-util"); const babelCore = require("babel-core"); const minifyPreset = require("babel-preset-minify"); -const unpad = require("../../../utils/unpad"); +const unpad = require("unpad"); const gulpBabelMinify = require("../src/index"); describe("gulp-babel-minify", () => { diff --git a/utils/test-transform/package.json b/utils/test-transform/package.json new file mode 100644 index 000000000..f0a18c800 --- /dev/null +++ b/utils/test-transform/package.json @@ -0,0 +1,6 @@ +{ + "name": "test-transform", + "version": "0.0.0", + "private": true, + "main": "lib/test-transform.js" +} diff --git a/utils/test-transform.js b/utils/test-transform/src/test-transform.js similarity index 98% rename from utils/test-transform.js rename to utils/test-transform/src/test-transform.js index 318706b83..e7ab0d267 100644 --- a/utils/test-transform.js +++ b/utils/test-transform/src/test-transform.js @@ -1,6 +1,6 @@ const babel = require("babel-core"); -const unpad = require("./unpad"); +const unpad = require("unpad"); function _transform(source, options) { return babel.transform(unpad(source), options).code.trim(); diff --git a/utils/unpad/package.json b/utils/unpad/package.json new file mode 100644 index 000000000..cbecfb820 --- /dev/null +++ b/utils/unpad/package.json @@ -0,0 +1,6 @@ +{ + "name": "unpad", + "version": "0.0.0", + "private": true, + "main": "lib/unpad.js" +} diff --git a/utils/unpad.js b/utils/unpad/src/unpad.js similarity index 100% rename from utils/unpad.js rename to utils/unpad/src/unpad.js