diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..796c69f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,34 @@ +# CHANGELOG + +## 2.1.0 + +- Range formatter [#2](https://github.com/immutable-js/immutable-devtools/pull/2) by [@jdeniau](https://github.com/jdeniau) + +## 2.0.1 + +Fix browser extension not working on Firefox. + +## 2.0.0 + +No change in this version, but use the same version as the browser extension. + +## 1.1.0 + +### Added + +- Compatibility with firefox [#2](https://github.com/jdeniau/immutable-object-formatter-extension/pull/2) by [@jdeniau](https://github.com/jdeniau) +- Add tests for v5 version [#3](https://github.com/jdeniau/immutable-object-formatter-extension/pull/3) by [@jdeniau](https://github.com/jdeniau) + +### Changed + +- upgrade immutable-devtools to v0.3.0 [#1](https://github.com/jdeniau/immutable-object-formatter-extension/pull/1) by [@jdeniau](https://github.com/jdeniau) + +## v0.3.0 + +- [BREAKING] Release this package as ESM instead of CommonJS. Drop support for NodeJS < 18. + +## v0.2.0 + +- Release under `@jdeniau/immutable-devtools` name. +- Add dark mode support https://github.com/jdeniau/immutable-devtools/commit/cee668d10a551d9bec6c3a960e36f8230a07ba16 +- Fix issue with the string `"null"` https://github.com/jdeniau/immutable-devtools/commit/e6262f02074ce64fb024314d66929eeec8d12b8b diff --git a/README.md b/README.md index c087e72..17d7f1b 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The library currently has formatters for: - [x] `Set` & `OrderedSet` - [x] `Stack` - [x] `Record` -- [ ] `Range` (let me know if you use this :-), add :+1: to [#21](https://github.com/andrewdavey/immutable-devtools/issues/21)) +- [x] `Range` - [ ] `Repeat` (if you wish this, add :+1: to [#22](https://github.com/andrewdavey/immutable-devtools/issues/22)) - [ ] `Seq` — I do not have an idea how to display it. If you know, [write it down into #23](https://github.com/andrewdavey/immutable-devtools/issues/23) diff --git a/packages/devtools/CHANGELOG.md b/packages/devtools/CHANGELOG.md deleted file mode 100644 index 1ce5cb3..0000000 --- a/packages/devtools/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -# CHANGELOG - -## v0.3.0 - -- [BREAKING] Release this package as ESM instead of CommonJS. Drop support for NodeJS < 18. - -## v0.2.0 - -- Release under `@jdeniau/immutable-devtools` name. -- Add dark mode support https://github.com/jdeniau/immutable-devtools/commit/cee668d10a551d9bec6c3a960e36f8230a07ba16 -- Fix issue with the string `"null"` https://github.com/jdeniau/immutable-devtools/commit/e6262f02074ce64fb024314d66929eeec8d12b8b diff --git a/packages/devtools/index.html b/packages/devtools/index.html index 1064c4e..f2c394a 100644 --- a/packages/devtools/index.html +++ b/packages/devtools/index.html @@ -1,10 +1,10 @@ Immutable DevTools Demo - - - diff --git a/packages/devtools/src/createFormatters.js b/packages/devtools/src/createFormatters.js index 7873909..4818fa4 100644 --- a/packages/devtools/src/createFormatters.js +++ b/packages/devtools/src/createFormatters.js @@ -212,6 +212,28 @@ export default function createFormatter(Immutable) { } }; + const RangeFormatter = { + header(o) { + if (!Immutable.isSeq(o)) + return null; + + // there is no proper way to check if the object is a Range for now + if ( + typeof o._start === 'undefined' || + typeof o._end === 'undefined' || + typeof o._step === 'undefined' || + typeof o.toString !== 'function' + ) { + return null + } + + const out = o.toString().replace(/^Range /, ''); + + return ['span', ['span', immutableNameStyle, 'Range'], ['span', out]]; + }, + hasBody: () => false, + }; + return { RecordFormatter, OrderedMapFormatter, @@ -219,6 +241,7 @@ export default function createFormatter(Immutable) { ListFormatter, MapFormatter, SetFormatter, - StackFormatter + StackFormatter, + RangeFormatter } } \ No newline at end of file diff --git a/packages/devtools/src/index.js b/packages/devtools/src/index.js index e38b17b..9274360 100644 --- a/packages/devtools/src/index.js +++ b/packages/devtools/src/index.js @@ -26,6 +26,7 @@ function install(Immutable) { MapFormatter, SetFormatter, StackFormatter, + RangeFormatter, } = createFormatters(Immutable); gw.devtoolsFormatters.push( @@ -35,7 +36,8 @@ function install(Immutable) { ListFormatter, MapFormatter, SetFormatter, - StackFormatter + StackFormatter, + RangeFormatter ); installed = true; diff --git a/packages/extension/CHANGELOG.md b/packages/extension/CHANGELOG.md deleted file mode 100644 index 3089cd6..0000000 --- a/packages/extension/CHANGELOG.md +++ /dev/null @@ -1,12 +0,0 @@ -# CHANGELOG - -## 1.1.0 - -### Added - -- Compatibility with firefox [#2](https://github.com/jdeniau/immutable-object-formatter-extension/pull/2) by [@jdeniau](https://github.com/jdeniau) -- Add tests for v5 version [#3](https://github.com/jdeniau/immutable-object-formatter-extension/pull/3) by [@jdeniau](https://github.com/jdeniau) - -### Changed - -- upgrade immutable-devtools to v0.3.0 [#1](https://github.com/jdeniau/immutable-object-formatter-extension/pull/1) by [@jdeniau](https://github.com/jdeniau) diff --git a/packages/extension/package.json b/packages/extension/package.json index 12f5691..ea4219a 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -12,7 +12,7 @@ "author": "", "license": "ISC", "dependencies": { - "@jdeniau/immutable-devtools": "^0.3.0", + "@jdeniau/immutable-devtools": "workspace:^", "immutable": "^5.1.2" }, "devDependencies": { diff --git a/packages/extension/test-page/test-v5.js b/packages/extension/test-page/test-v5.js index ccefc67..9b7577d 100644 --- a/packages/extension/test-page/test-v5.js +++ b/packages/extension/test-page/test-v5.js @@ -15,30 +15,33 @@ function runTests(){ var f = Foo() console.log("Expand this and check child renders as a Map", f) - window.record = new ABRecord(); - window.record2 = new ABRecord({a: 2}); - console.log(window.record); - console.log(window.record2); + const record = new ABRecord(); + const record2 = new ABRecord({a: 2}); + console.log(record); + console.log(record2); - window.orderedMap = Immutable.OrderedMap({key: "value"}); - window.orderedMap2 = Immutable.OrderedMap([["key", "value"], ["key2", "value2"]]); - console.log(window.orderedMap); - console.log(window.orderedMap2); + const orderedMap = Immutable.OrderedMap({key: "value"}); + const orderedMap2 = Immutable.OrderedMap([["key", "value"], ["key2", "value2"]]); + console.log(orderedMap); + console.log(orderedMap2); - window.orderedSet = Immutable.OrderedSet(["hello", "aaa"]); - console.log(window.orderedSet); + const orderedSet = Immutable.OrderedSet(["hello", "aaa"]); + console.log(orderedSet); - window.list = Immutable.List(["hello", "world"]); - console.log(window.list) + const list = Immutable.List(["hello", "world"]); + console.log(list) - window.map = Immutable.Map({hello: "world"}) - console.log(window.map) + const map = Immutable.Map({hello: "world"}) + console.log(map) - window.set = Immutable.Set(["hello", "aaa"]) - console.log(window.set) + const set = Immutable.Set(["hello", "aaa"]) + console.log(set) - window.stack = Immutable.Stack(["hello", "aaa"]) - console.log(window.stack) + const stack = Immutable.Stack(["hello", "aaa"]) + console.log(stack) + + const range = Immutable.Range(0, 10, 2); + console.log(range); console.log("shoudln't cause error", Immutable.Record.prototype) diff --git a/yarn.lock b/yarn.lock index d333f2f..367c75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1097,7 +1097,7 @@ __metadata: dependencies: "@babel/core": "npm:^7.27.1" "@babel/preset-env": "npm:^7.27.2" - "@jdeniau/immutable-devtools": "npm:^0.3.0" + "@jdeniau/immutable-devtools": "workspace:^" "@rollup/plugin-babel": "npm:^6.0.4" "@rollup/plugin-node-resolve": "npm:^16.0.1" immutable: "npm:^5.1.2" @@ -1142,13 +1142,6 @@ __metadata: languageName: node linkType: hard -"@jdeniau/immutable-devtools@npm:^0.3.0": - version: 0.3.0 - resolution: "@jdeniau/immutable-devtools@npm:0.3.0" - checksum: 10c0/00ff6d165f8cef60ff1f976b722f47bd27e871e852de8473ad3f7b4b4be5919fb10379e80cb9f42df3dcc6875553b376d385a7b861aaffaa24a7bc1366312d36 - languageName: node - linkType: hard - "@jdeniau/immutable-devtools@workspace:^, @jdeniau/immutable-devtools@workspace:packages/devtools": version: 0.0.0-use.local resolution: "@jdeniau/immutable-devtools@workspace:packages/devtools"