From 50ca7ac6dc93a384183ea6178c2c185a839d1c56 Mon Sep 17 00:00:00 2001 From: Rick Eyre Date: Sun, 3 Jun 2018 17:19:47 -0400 Subject: [PATCH] feat(redux-yolo): export reducers separately from services add compilation of build in --- packages/redux-yolo/.gitignore | 1 + packages/redux-yolo/package-lock.json | 206 ++++++++++++++++++ packages/redux-yolo/package.json | 15 +- .../redux-yolo/src/__tests__/index.test.js | 5 +- packages/redux-yolo/src/index.js | 12 +- packages/redux-yolo/src/yolo.js | 7 + 6 files changed, 232 insertions(+), 14 deletions(-) create mode 100644 packages/redux-yolo/.gitignore create mode 100644 packages/redux-yolo/src/yolo.js diff --git a/packages/redux-yolo/.gitignore b/packages/redux-yolo/.gitignore new file mode 100644 index 0000000..a65b417 --- /dev/null +++ b/packages/redux-yolo/.gitignore @@ -0,0 +1 @@ +lib diff --git a/packages/redux-yolo/package-lock.json b/packages/redux-yolo/package-lock.json index 3ffc19b..2ab0577 100644 --- a/packages/redux-yolo/package-lock.json +++ b/packages/redux-yolo/package-lock.json @@ -420,6 +420,13 @@ "lodash": "4.17.10" } }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true, + "optional": true + }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", @@ -450,6 +457,29 @@ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", "dev": true }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.15.1", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.10", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -1097,6 +1127,25 @@ "babel-types": "6.26.0" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, "babel-preset-env": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", @@ -1312,6 +1361,13 @@ "tweetnacl": "0.14.5" } }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true, + "optional": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1505,6 +1561,37 @@ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + } + } + }, "ci-info": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", @@ -1622,6 +1709,12 @@ "delayed-stream": "1.0.0" } }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, "compare-versions": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.2.1.tgz", @@ -1935,6 +2028,12 @@ "is-symbol": "1.0.1" } }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2707,6 +2806,12 @@ "map-cache": "0.2.2" } }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3552,6 +3657,12 @@ "through": "2.3.8" } }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -3582,6 +3693,16 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -5013,6 +5134,17 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -5337,6 +5469,19 @@ "util-deprecate": "1.0.2" } }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" + } + }, "realpath-native": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", @@ -5346,6 +5491,15 @@ "util.promisify": "1.0.0" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.1.7" + } + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -5722,6 +5876,13 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "optional": true + }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", @@ -5760,12 +5921,42 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" + } + }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, + "shx": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", + "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", + "dev": true, + "requires": { + "es6-object-assign": "1.1.0", + "minimist": "1.2.0", + "shelljs": "0.7.8" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -6428,6 +6619,12 @@ } } }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6450,6 +6647,15 @@ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", "dev": true }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", diff --git a/packages/redux-yolo/package.json b/packages/redux-yolo/package.json index bef9128..0d1973f 100644 --- a/packages/redux-yolo/package.json +++ b/packages/redux-yolo/package.json @@ -2,10 +2,17 @@ "name": "redux-yolo", "version": "0.0.0", "description": "YOLO; so why waste your time writing redux boilerplate?", - "main": "index.js", + "main": "lib/index.js", "scripts": { - "test": "eslint src && jest src" + "clean": "shx rm -rf lib", + "babel": "babel src --out-dir lib --ignore test.js", + "test": "eslint src && jest src", + "build": "npm run clean && npm run babel" }, + "files": [ + "src", + "lib" + ], "repository": { "type": "git", "url": "git+https://github.com/Lemonpeach/react-redux-yolo.git" @@ -23,6 +30,7 @@ "homepage": "https://github.com/Lemonpeach/react-redux-yolo#readme", "devDependencies": { "@scotia/eslint-config-scotiabank-base": "^1.3.0", + "babel-cli": "^6.26.0", "babel-core": "^6.26.3", "babel-eslint": "^8.2.3", "babel-plugin-module-resolver": "^3.1.1", @@ -32,7 +40,8 @@ "eslint-import-resolver-babel-module": "^4.0.0", "eslint-plugin-import": "^2.12.0", "jest": "^23.1.0", - "regenerator-runtime": "^0.11.1" + "regenerator-runtime": "^0.11.1", + "shx": "^0.2.2" }, "jest": { "collectCoverage": true, diff --git a/packages/redux-yolo/src/__tests__/index.test.js b/packages/redux-yolo/src/__tests__/index.test.js index 4871bb6..aee575a 100644 --- a/packages/redux-yolo/src/__tests__/index.test.js +++ b/packages/redux-yolo/src/__tests__/index.test.js @@ -1,6 +1,7 @@ -import yolo, { ReduxYolo } from '../index'; +import yolo from '../index'; +import { ReduxYolo } from '../yolo'; -describe('index', () => { +describe('yolo', () => { test('exports a function', () => { const dispatch = jest.fn(); expect(yolo(dispatch)).toBeInstanceOf(ReduxYolo); diff --git a/packages/redux-yolo/src/index.js b/packages/redux-yolo/src/index.js index 8c7b424..c9e5a56 100644 --- a/packages/redux-yolo/src/index.js +++ b/packages/redux-yolo/src/index.js @@ -1,10 +1,4 @@ -import { reducer } from './reducers'; +import yolo from './yolo'; -export class ReduxYolo { - constructor(dispatch) { - this.dispatch = dispatch; - this.reducer = reducer; - } -} - -export default dispatch => new ReduxYolo(dispatch); +export default yolo; +export { reducer } from './reducers'; diff --git a/packages/redux-yolo/src/yolo.js b/packages/redux-yolo/src/yolo.js new file mode 100644 index 0000000..528631a --- /dev/null +++ b/packages/redux-yolo/src/yolo.js @@ -0,0 +1,7 @@ +export class ReduxYolo { + constructor(dispatch) { + this.dispatch = dispatch; + } +} + +export default dispatch => new ReduxYolo(dispatch);