From 4d1616680d121b535ccf69087e041d7dd748885f Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Sun, 9 Jan 2022 15:57:20 -0500 Subject: [PATCH] Use rollup for redux-devtools-serialize --- packages/redux-devtools-serialize/.babelrc | 6 +++- .../redux-devtools-serialize/.eslintignore | 2 +- .../redux-devtools-serialize/.eslintrc.js | 14 +++++---- packages/redux-devtools-serialize/README.md | 12 ++++---- .../redux-devtools-serialize/package.json | 19 +++++++----- .../redux-devtools-serialize/rollup.config.js | 29 +++++++++++++++++++ yarn.lock | 8 ++++- 7 files changed, 69 insertions(+), 21 deletions(-) create mode 100644 packages/redux-devtools-serialize/rollup.config.js diff --git a/packages/redux-devtools-serialize/.babelrc b/packages/redux-devtools-serialize/.babelrc index 3313ff9e..5ed95986 100644 --- a/packages/redux-devtools-serialize/.babelrc +++ b/packages/redux-devtools-serialize/.babelrc @@ -1,3 +1,7 @@ { - "presets": ["@babel/preset-env", "@babel/preset-typescript"] + "presets": [ + ["@babel/preset-env", { "targets": "defaults" }], + "@babel/preset-typescript" + ], + "plugins": ["@babel/plugin-transform-runtime"] } diff --git a/packages/redux-devtools-serialize/.eslintignore b/packages/redux-devtools-serialize/.eslintignore index a65b4177..1521c8b7 100644 --- a/packages/redux-devtools-serialize/.eslintignore +++ b/packages/redux-devtools-serialize/.eslintignore @@ -1 +1 @@ -lib +dist diff --git a/packages/redux-devtools-serialize/.eslintrc.js b/packages/redux-devtools-serialize/.eslintrc.js index 4de5f294..68537a81 100644 --- a/packages/redux-devtools-serialize/.eslintrc.js +++ b/packages/redux-devtools-serialize/.eslintrc.js @@ -1,10 +1,14 @@ module.exports = { - extends: '../../eslintrc.ts.base.json', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - }, + extends: '../../eslintrc.js.base.json', overrides: [ + { + files: ['*.ts'], + extends: '../../eslintrc.ts.base.json', + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'], + }, + }, { files: ['test/**/*.ts'], extends: '../../eslintrc.ts.jest.base.json', diff --git a/packages/redux-devtools-serialize/README.md b/packages/redux-devtools-serialize/README.md index 28a88858..e3600aa8 100644 --- a/packages/redux-devtools-serialize/README.md +++ b/packages/redux-devtools-serialize/README.md @@ -12,8 +12,8 @@ Just pass the Immutable library to our class: ```js import Immutable from 'immutable'; -import Serialize from '@redux-devtools/serialize'; -const { stringify, parse } = Serialize.immutable(Immutable); +import { immutable } from '@redux-devtools/serialize'; +const { stringify, parse } = immutable(Immutable); const data = Immutable.fromJS({ foo: 'bar', baz: { qux: 42 } }); const serialized = stringify(data); @@ -32,10 +32,10 @@ To parse a Record class back, you need to specify a reference to it: ```js import Immutable from 'immutable'; -import Serialize from '@redux-devtools/serialize'; +import { immutable } from '@redux-devtools/serialize'; const ABRecord = Immutable.Record({ a: 1, b: 2 }); -const { stringify, parse } = Serialize.immutable(Immutable, [ABRecord]); +const { stringify, parse } = immutable(Immutable, [ABRecord]); const myRecord = new ABRecord({ b: 3 }); const serialized = stringify(myRecord); @@ -52,7 +52,7 @@ You can pass custom replacer and reviver functions to Serialize: ```js import Immutable from 'immutable'; -import Serialize from '@redux-devtools/serialize'; +import { immutable } from '@redux-devtools/serialize'; function customReplacer(key, value, defaultReplacer) { if (value === 1) { @@ -72,7 +72,7 @@ function customReviver(key, value, defaultReviver) { return defaultReviver(key, value); } -const { stringify, parse } = Serialize.immutable( +const { stringify, parse } = immutable( Immutable, null, customReplacer, diff --git a/packages/redux-devtools-serialize/package.json b/packages/redux-devtools-serialize/package.json index 24b9be17..0fcb6d15 100644 --- a/packages/redux-devtools-serialize/package.json +++ b/packages/redux-devtools-serialize/package.json @@ -12,17 +12,16 @@ }, "license": "MIT", "author": "Mihail Diordiev (https://github.com/zalmoxisus)", - "main": "lib/index.js", - "types": "lib/index.d.ts", + "main": "dist/redux-devtools-serialize.cjs.js", + "module": "dist/redux-devtools-serialize.esm.js", + "types": "dist/index.d.ts", "repository": { "type": "git", "url": "https://github.com/reduxjs/redux-devtools.git" }, "scripts": { - "build": "yarn run build:types && yarn run build:js", - "build:types": "tsc --emitDeclarationOnly", - "build:js": "babel src --out-dir lib --extensions \".ts\" --source-maps inline", - "clean": "rimraf lib", + "build": "rollup -c", + "clean": "rimraf dist", "test": "jest", "lint": "eslint . --ext .ts", "type-check": "tsc --noEmit", @@ -30,13 +29,16 @@ "prepublish": "yarn run type-check && yarn run lint && yarn run test" }, "dependencies": { + "@babel/runtime": "^7.16.7", "jsan": "^3.1.14" }, "devDependencies": { - "@babel/cli": "^7.16.7", "@babel/core": "^7.16.7", + "@babel/eslint-parser": "^7.16.5", + "@babel/plugin-transform-runtime": "^7.16.7", "@babel/preset-env": "^7.16.7", "@babel/preset-typescript": "^7.16.7", + "@rollup/plugin-babel": "^5.3.0", "@types/jest": "^27.4.0", "@types/jsan": "^3.1.2", "@typescript-eslint/eslint-plugin": "^5.8.1", @@ -47,7 +49,10 @@ "immutable": "^4.0.0", "jest": "^27.4.5", "rimraf": "^3.0.2", + "rollup": "^2.63.0", + "rollup-plugin-typescript2": "^0.31.1", "ts-jest": "^27.1.2", + "tslib": "^2.3.1", "typescript": "~4.5.4" }, "peerDependencies": { diff --git a/packages/redux-devtools-serialize/rollup.config.js b/packages/redux-devtools-serialize/rollup.config.js new file mode 100644 index 00000000..b5374356 --- /dev/null +++ b/packages/redux-devtools-serialize/rollup.config.js @@ -0,0 +1,29 @@ +import typescript from 'rollup-plugin-typescript2'; +import babel from '@rollup/plugin-babel'; + +const config = [ + { + input: 'src/index.ts', + output: [ + { + file: 'dist/redux-devtools-log-monitor.cjs.js', + format: 'cjs', + }, + { + file: 'dist/redux-devtools-log-monitor.esm.js', + format: 'esm', + }, + ], + plugins: [ + typescript(), + babel({ + babelHelpers: 'runtime', + extensions: ['.ts'], + plugins: ['@babel/plugin-transform-runtime'], + }), + ], + external: [/@babel\/runtime/, 'jsan'], + }, +]; + +export default config; diff --git a/yarn.lock b/yarn.lock index adf3127f..444da965 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5159,10 +5159,13 @@ __metadata: version: 0.0.0-use.local resolution: "@redux-devtools/serialize@workspace:packages/redux-devtools-serialize" dependencies: - "@babel/cli": ^7.16.7 "@babel/core": ^7.16.7 + "@babel/eslint-parser": ^7.16.5 + "@babel/plugin-transform-runtime": ^7.16.7 "@babel/preset-env": ^7.16.7 "@babel/preset-typescript": ^7.16.7 + "@babel/runtime": ^7.16.7 + "@rollup/plugin-babel": ^5.3.0 "@types/jest": ^27.4.0 "@types/jsan": ^3.1.2 "@typescript-eslint/eslint-plugin": ^5.8.1 @@ -5174,7 +5177,10 @@ __metadata: jest: ^27.4.5 jsan: ^3.1.14 rimraf: ^3.0.2 + rollup: ^2.63.0 + rollup-plugin-typescript2: ^0.31.1 ts-jest: ^27.1.2 + tslib: ^2.3.1 typescript: ~4.5.4 peerDependencies: immutable: ^4.0.0