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"