Skip to content

Commit

Permalink
Move core source to scoped package, use "redux-saga" only as proxy to…
Browse files Browse the repository at this point in the history
… it (#1712)

* Move core source to scoped package, use "redux-saga" only as proxy to it

* Workaround for rollup/rollup#2620

* Use distinct filenames for redux-saga proxy package

* Add missing default reexport in redux-saga index.d.ts
  • Loading branch information
Andarist committed Dec 30, 2018
1 parent f55c6d2 commit 6d7cb99
Show file tree
Hide file tree
Showing 18 changed files with 224 additions and 78 deletions.
2 changes: 1 addition & 1 deletion packages/babel-plugin-redux-saga/package.json
Expand Up @@ -33,6 +33,6 @@
"source-map": "^0.6.1"
},
"peerDependencies": {
"redux-saga": "^1.0.0-beta.0"
"redux-saga": "^1.0.0-rc.0"
}
}
2 changes: 1 addition & 1 deletion packages/core/effects/package.json
@@ -1,5 +1,5 @@
{
"name": "redux-saga/effects",
"name": "@redux-saga/core/effects",
"private": true,
"main": "../dist/redux-saga-effects.cjs.js",
"module": "../dist/redux-saga-effects.esm.js"
Expand Down
27 changes: 3 additions & 24 deletions packages/core/package.json
@@ -1,10 +1,9 @@
{
"name": "redux-saga",
"name": "@redux-saga/core",
"version": "1.0.0-rc.0",
"description": "Saga middleware for Redux to handle Side Effects",
"main": "./dist/redux-saga-core.cjs.js",
"module": "./dist/redux-saga-core.esm.js",
"unpkg": "./dist/redux-saga.min.umd.js",
"files": [
"dist",
"effects",
Expand All @@ -19,10 +18,7 @@
"build": "rollup -c",
"postbuild": "node ./scripts/createProxyCjsEntries.js",
"prepare": "npm run build",
"preversion": "npm test",
"release:patch": "npm version patch && npm publish && git push --follow-tags",
"release:minor": "npm version minor && npm publish && git push --follow-tags",
"release:major": "npm version major && npm publish && git push --follow-tags"
"preversion": "npm test"
},
"repository": "https://github.com/redux-saga/redux-saga/tree/master/packages/core",
"keywords": [
Expand All @@ -33,12 +29,6 @@
"effects",
"side effects"
],
"bundlesize": [
{
"path": "./dist/redux-saga.min.umd.js",
"maxSize": "6.5 Kb"
}
],
"author": "Yassine ELOUAFI <yelouafi@gmail.com>",
"contributors": [
"Mateusz Burzyński <mateuszburzynski@gmail.com> (https://github.com/Andarist)",
Expand All @@ -62,7 +52,6 @@
"typescript-tuple": "^2.1.0"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.0.0",
Expand All @@ -80,18 +69,8 @@
"rollup-plugin-babel": "^4.0.3",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^1.1.1",
"rollup-plugin-uglify": "^2.0.1",
"typescript": "^3.2.1",
"typings-tester": "^0.2.2"
},
"typings": "./index.d.ts",
"npmName": "redux-saga",
"npmFileMap": [
{
"basePath": "/dist/",
"files": [
"*.js"
]
}
]
"typings": "./index.d.ts"
}
34 changes: 2 additions & 32 deletions packages/core/rollup.config.js
Expand Up @@ -3,7 +3,6 @@ import alias from 'rollup-plugin-alias'
import nodeResolve from 'rollup-plugin-node-resolve'
import babel from 'rollup-plugin-babel'
import replace from 'rollup-plugin-replace'
import uglify from 'rollup-plugin-uglify'
import { rollup as lernaAlias } from 'lerna-alias'
import pkg from './package.json'

Expand Down Expand Up @@ -34,13 +33,12 @@ const rewriteRuntimeHelpersImports = ({ types: t }) => ({
},
})

const createConfig = ({ input, output, external, env, min = false, useESModules = output.format !== 'cjs' }) => ({
const createConfig = ({ input, output, external, env, useESModules = output.format !== 'cjs' }) => ({
input,
experimentalCodeSplitting: typeof input !== 'string',
output: {
...output,
name: 'ReduxSaga',
exports: 'named',
...output,
},
external: makeExternalPredicate(external === 'peers' ? peerDeps : deps.concat(peerDeps)),
plugins: [
Expand All @@ -66,15 +64,6 @@ const createConfig = ({ input, output, external, env, min = false, useESModules
replace({
'process.env.NODE_ENV': JSON.stringify(env),
}),
min &&
uglify({
compress: {
pure_getters: true,
unsafe: true,
unsafe_comps: true,
warnings: false,
},
}),
].filter(Boolean),
})

Expand Down Expand Up @@ -110,23 +99,4 @@ export default [
},
env: 'development',
}),
createConfig({
input: 'src/index.umd.js',
output: {
file: 'dist/redux-saga.umd.js',
format: 'umd',
},
external: 'peers',
env: 'development',
}),
createConfig({
input: 'src/index.umd.js',
output: {
file: 'dist/redux-saga.min.umd.js',
format: 'umd',
},
external: 'peers',
env: 'production',
min: true,
}),
]
5 changes: 1 addition & 4 deletions packages/deferred/package.json
Expand Up @@ -13,10 +13,7 @@
"clean": "rimraf dist",
"prebuild": "npm run clean",
"build": "rollup -c",
"prepare": "npm run build",
"release:patch": "npm version patch && npm publish && git push --follow-tags",
"release:minor": "npm version minor && npm publish && git push --follow-tags",
"release:major": "npm version major && npm publish && git push --follow-tags"
"prepare": "npm run build"
},
"repository": "https://github.com/redux-saga/redux-saga/tree/master/packages/deferred",
"keywords": [
Expand Down
5 changes: 1 addition & 4 deletions packages/delay-p/package.json
Expand Up @@ -13,10 +13,7 @@
"clean": "rimraf dist",
"prebuild": "npm run clean",
"build": "rollup -c",
"prepare": "npm run build",
"release:patch": "npm version patch && npm publish && git push --follow-tags",
"release:minor": "npm version minor && npm publish && git push --follow-tags",
"release:major": "npm version major && npm publish && git push --follow-tags"
"prepare": "npm run build"
},
"repository": "https://github.com/redux-saga/redux-saga/tree/master/packages/delay-p",
"keywords": [
Expand Down
5 changes: 1 addition & 4 deletions packages/is/package.json
Expand Up @@ -13,10 +13,7 @@
"clean": "rimraf dist",
"prebuild": "npm run clean",
"build": "rollup -c",
"prepare": "npm run build",
"release:patch": "npm version patch && npm publish && git push --follow-tags",
"release:minor": "npm version minor && npm publish && git push --follow-tags",
"release:major": "npm version major && npm publish && git push --follow-tags"
"prepare": "npm run build"
},
"repository": "https://github.com/redux-saga/redux-saga/tree/master/packages/is",
"keywords": [],
Expand Down
23 changes: 23 additions & 0 deletions packages/redux-saga/.babelrc.js
@@ -0,0 +1,23 @@
const { NODE_ENV, BABEL_ENV } = process.env

const cjs = BABEL_ENV === 'cjs' || NODE_ENV === 'test'
const loose = true

module.exports = {
presets: [
[
'@babel/preset-env',
{
loose,
modules: false,
forceAllTransforms: true,
exclude: ['transform-regenerator'],
},
],
],
plugins: [
cjs && '@babel/plugin-transform-modules-commonjs',
['@babel/plugin-proposal-object-rest-spread', { loose }],
'babel-plugin-annotate-pure-calls',
].filter(Boolean),
}
1 change: 1 addition & 0 deletions packages/redux-saga/effects.d.ts
@@ -0,0 +1 @@
export * from '@redux-saga/core/effects'
6 changes: 6 additions & 0 deletions packages/redux-saga/effects/package.json
@@ -0,0 +1,6 @@
{
"name": "redux-saga/effects",
"private": true,
"main": "../dist/redux-saga-effects.cjs.js",
"module": "../dist/redux-saga-effects.esm.js"
}
2 changes: 2 additions & 0 deletions packages/redux-saga/index.d.ts
@@ -0,0 +1,2 @@
export * from '@redux-saga/core'
export { default } from '@redux-saga/core'
76 changes: 76 additions & 0 deletions packages/redux-saga/package.json
@@ -0,0 +1,76 @@
{
"name": "redux-saga",
"version": "1.0.0-rc.0",
"description": "Saga middleware for Redux to handle Side Effects",
"main": "./dist/redux-saga-core.cjs.js",
"module": "./dist/redux-saga-core.esm.js",
"unpkg": "./dist/redux-saga.umd.min.js",
"files": [
"dist",
"effects",
"*.d.ts"
],
"scripts": {
"bundlesize": "bundlesize",
"clean": "rimraf dist",
"prebuild": "npm run clean",
"build": "rollup -c",
"prepare": "npm run build"
},
"repository": "https://github.com/redux-saga/redux-saga/tree/master/packages/core",
"keywords": [
"javascript",
"redux",
"middleware",
"saga",
"effects",
"side effects"
],
"bundlesize": [
{
"path": "./dist/redux-saga.min.umd.js",
"maxSize": "6.5 Kb"
}
],
"author": "Yassine ELOUAFI <yelouafi@gmail.com>",
"contributors": [
"Mateusz Burzyński <mateuszburzynski@gmail.com> (https://github.com/Andarist)",
"Mikhail Shustov <restrry@gmail.com> (https://github.com/restrry)",
"Shi Feichao <842351815@qq.com> (https://github.com/shinima)",
"Daniel Lytkin <dan.lytkin@gmail.com (https://github.com/aikoven)"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/redux-saga/redux-saga/issues"
},
"homepage": "https://redux-saga.js.org/",
"dependencies": {
"@redux-saga/core": "^1.0.0-rc.0"
},
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.0.0",
"@babel/polyfill": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"bundlesize": "^0.11.0",
"lerna-alias": "^3.0.2",
"rimraf": "^2.4.3",
"rollup": "^0.65.2",
"rollup-plugin-alias": "^1.4.0",
"rollup-plugin-babel": "^4.0.3",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^1.1.1",
"rollup-plugin-uglify": "^2.0.1"
},
"typings": "./index.d.ts",
"npmName": "redux-saga",
"npmFileMap": [
{
"basePath": "/dist/",
"files": [
"*.js"
]
}
]
}
100 changes: 100 additions & 0 deletions packages/redux-saga/rollup.config.js
@@ -0,0 +1,100 @@
import * as path from 'path'
import alias from 'rollup-plugin-alias'
import nodeResolve from 'rollup-plugin-node-resolve'
import babel from 'rollup-plugin-babel'
import replace from 'rollup-plugin-replace'
import uglify from 'rollup-plugin-uglify'
import { rollup as lernaAlias } from 'lerna-alias'
import pkg from './package.json'

const ensureArray = maybeArr => (Array.isArray(maybeArr) ? maybeArr : [maybeArr])

const makeExternalPredicate = externalArr => {
if (!externalArr.length) {
return () => false
}
const pattern = new RegExp(`^(${externalArr.join('|')})($|/)`)
return id => pattern.test(id)
}

const deps = Object.keys(pkg.dependencies || {})
const peerDeps = Object.keys(pkg.peerDependencies || {})

let aliases = lernaAlias()
aliases = {
'@redux-saga/core/effects': aliases['@redux-saga/core'].replace(/index\.js$/, 'effects.js'),
'@babel/runtime/helpers/extends': require.resolve('@babel/runtime/helpers/esm/extends'),
...aliases,
}

const createConfig = ({ input, output, external, env, min = false }) => ({
input,
experimentalCodeSplitting: typeof input !== 'string',
output: ensureArray(output).map(format => ({
name: 'ReduxSaga',
exports: 'named',
...format,
})),
external: makeExternalPredicate(external === 'peers' ? peerDeps : deps.concat(peerDeps)),
plugins: [
alias(aliases),
nodeResolve({
jsnext: true,
}),
babel({
exclude: 'node_modules/**',
babelrcRoots: path.resolve(__dirname, '../*'),
}),
env &&
replace({
'process.env.NODE_ENV': JSON.stringify(env),
}),
min &&
uglify({
compress: {
pure_getters: true,
unsafe: true,
unsafe_comps: true,
warnings: false,
},
}),
].filter(Boolean),
})

export default [
createConfig({
input: {
core: 'src/index.js',
effects: 'src/effects.js',
},
output: [
{
dir: 'dist',
format: 'esm',
},
{
dir: 'dist',
format: 'cjs',
},
].map(format => ({ entryFileNames: 'redux-saga-[name]-npm-proxy.[format].js', ...format })),
}),
createConfig({
input: 'src/index.umd.js',
output: {
file: pkg.unpkg.replace(/\.min\.js$/, '.js'),
format: 'umd',
},
external: 'peers',
env: 'development',
}),
createConfig({
input: 'src/index.umd.js',
output: {
file: pkg.unpkg,
format: 'umd',
},
external: 'peers',
env: 'production',
min: true,
}),
]
1 change: 1 addition & 0 deletions packages/redux-saga/src/effects.js
@@ -0,0 +1 @@
export * from '@redux-saga/core/effects'
3 changes: 3 additions & 0 deletions packages/redux-saga/src/index.js
@@ -0,0 +1,3 @@
export * from '@redux-saga/core'
import createSagaMiddleware from '@redux-saga/core'
export default createSagaMiddleware
File renamed without changes.

0 comments on commit 6d7cb99

Please sign in to comment.