{"id":41290,"library":"immutable-devtools","title":"Immutable DevTools","description":"Chrome DevTools custom formatter for Immutable.js collections (List, Map, Set, Stack, Record). Version 0.1.5, no recent releases since 2016. Transforms opaque internal structures into readable listings in the Console and Scope panel. Must be explicitly installed in browser environments; works only with Chrome v47+ and requires enabling custom formatters in DevTools settings. Intended for development-only use. Provides a Chrome extension alternative. Covers common immutable types but not Seq, Range, or Repeat.","status":"maintenance","version":"0.1.5","language":"javascript","source_language":"en","source_url":"https://github.com/andrewdavey/immutable-devtools","tags":["javascript","immutable","devtools","chrome"],"install":[{"cmd":"npm install immutable-devtools","lang":"bash","label":"npm"},{"cmd":"yarn add immutable-devtools","lang":"bash","label":"yarn"},{"cmd":"pnpm add immutable-devtools","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"The library requires an Immutable.js instance to install formatters; must be called with installDevTools(Immutable).","package":"immutable","optional":false}],"imports":[{"note":"The module exports a single function via default export. Named destructuring will result in undefined.","wrong":"const { installDevTools } = require('immutable-devtools')","symbol":"installDevTools","correct":"import installDevTools from 'immutable-devtools'"},{"note":"For CJS, use default require. The package has no named exports.","wrong":"const { default: installDevTools } = require('immutable-devtools')","symbol":"default import (installDevTools)","correct":"const installDevTools = require('immutable-devtools')"},{"note":"Package has no type definitions; use dynamic require or @ts-ignore to avoid TS errors.","wrong":"import { installDevTools } from 'immutable-devtools'","symbol":"TypeScript usage","correct":"// @ts-ignore\nimport installDevTools from 'immutable-devtools'"}],"quickstart":{"code":"// Install: npm install --save-dev immutable-devtools\nimport Immutable from 'immutable';\nimport installDevTools from 'immutable-devtools';\n\n// Only in development\nif (process.env.NODE_ENV !== 'production') {\n  installDevTools(Immutable);\n  console.log('Immutable DevTools installed. Enable custom formatters in Chrome DevTools settings.');\n}\n\n// Now when you log an Immutable collection:\nconst list = Immutable.List([1, 2, 3]);\nconsole.log(list); // Chrome DevTools will show [1, 2, 3] instead of the internal structure","lang":"javascript","description":"Installs DevTools formatter for Immutable.js collections, showing how to conditionally require only in development and how to enable formatters in Chrome."},"warnings":[{"fix":"Open DevTools, press F1, scroll to Console section, check 'Enable custom formatters'.","message":"Must enable custom formatters in Chrome DevTools manually: DevTools Settings > Console > Enable custom formatters.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Wrap require/import in environment check: if (process.env.NODE_ENV !== 'production') { ... } or use webpack DefinePlugin.","message":"The package is a development-only tool; installing in production may cause issues or bundle size increase.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Consider using Chrome extension 'Immutable.js Object Formatter' by mattzeunert for automatic updates.","message":"No updates since 2016; may not work with newer Immutable.js versions or Chrome changes.","severity":"deprecated","affected_versions":">=0.1.5"},{"fix":"Use default require: 'const installDevTools = require(...)'","message":"CommonJS require using destructuring: 'const { installDevTools } = require(...)' yields undefined.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use default import: 'import installDevTools from ...'","message":"ESM import with named import: 'import { installDevTools } from ...' fails because package only has default export.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'0.1.5':16 '2016':21 'altern':65 'browser':40 'chrome':3,45,63,79 'collect':9 'common':67 'consol':31 'cover':66 'custom':5,50 'develop':58 'development-on':57 'devtool':2,4,53,78 'enabl':49 'environ':41 'explicit':37 'extens':64 'formatt':6,51 'immut':1,68,77 'immutable.js':8 'instal':38 'intend':55 'intern':24 'javascript':76 'list':10,28 'map':11 'must':35 'opaqu':23 'panel':34 'provid':61 'rang':73 'readabl':27 'recent':18 'record':14 'releas':19 'repeat':75 'requir':48 'scope':33 'seq':72 'set':12,54 'sinc':20 'stack':13 'structur':25 'transform':22 'type':69 'use':60 'v47':46 'version':15 'work':42","created_at":"2026-06-04T18:51:41.501445+00:00","updated_at":"2026-06-04T18:51:41.501445+00:00","problems":[{"fix":"Replace with 'const installDevTools = require('immutable-devtools')'","cause":"Using named destructuring require 'const { installDevTools } = require(...)' instead of default require.","error":"Uncaught TypeError: installDevTools is not a function"},{"fix":"Replace with 'import installDevTools from 'immutable-devtools''","cause":"Using named ES6 import 'import { installDevTools } from ...'","error":"Uncaught TypeError: installDevTools is not a function"},{"fix":"Ensure you pass the Immutable object: installDevTools(Immutable)","cause":"Called installDevTools() without passing the Immutable module.","error":"ImmutableDevTools: Must be called with Immutable.js instance"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/andrewdavey/immutable-devtools#readme","github":"https://github.com/andrewdavey/immutable-devtools","docs":null,"changelog":null,"pypi":null,"npm":"immutable-devtools","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}