npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@idomatic/core

v1.1.69

Published

IDomatic idomatic is a CLI tool that automatically adds id attributes to your HTML/JSX/TSX components. It helps improve your testing and QA processes by ensuring that key elements always have unique, predictable identifiers.

Readme

IDomatic idomatic is a CLI tool that automatically adds id attributes to your HTML/JSX/TSX components. It helps improve your testing and QA processes by ensuring that key elements always have unique, predictable identifiers.

Note: idomatic is optimized for React and HTML-based projects (including Vue and Angular). You can choose your framework during setup, and the tool will create a default configuration accordingly.

Features

Automatic ID Injection: Scans your project files and injects id attributes into components that are missing them.

Configurable Behavior: Customize the prefix, specify file extensions, exclude certain tags, and more.

Dry Run and Write Modes: Preview changes before actually updating your files.

Framework Specific Defaults: Pre-populated configurations for React (JS/TSX) or HTML-based projects (HTML/Vue/Angular).

Easy Integration: Use with your existing build or CI/CD processes.

Installation

To install idomatic, simply run the initializer command:

npm init @idomatic

This command will guide you through selecting your framework and automatically install the necessary configuration file and parser for your project. The default configuration file (e.g., .idomatic.config.json) will be created in your project's root.

Usage

CLI Commands After installation and configuration, you can run idomatic using the following commands:

Dry Run: Preview the changes without modifying any files.

npx idomatic scan --dry

Write Mode: Apply the changes to your files.

npx idomatic scan --write

If you run npx idomatic scan without any flags, a usage message will be shown.

Configuration File The configuration file .idomatic.config.json is created during the setup process. Here is an example configuration for a React project:

{
"attributeName": "id",
"prefix": "auto-id-",
"excludeTags": ["html", "head", "script"],
"includeExtensions": ["js", "jsx", "ts", "tsx"],
"excludeFiles": []
}

You can customize these values to better suit your project’s needs. For HTML/Vue/Angular projects, the includeExtensions field will be set to ["html", "vue", "ng.html"].

⚠️ Angular Users: It is recommended to use templateUrl with a separate .html file rather than defining inline templates in .ts files. idomatic processes external HTML templates correctly but does not support inline templates in Angular components. Using templateUrl ensures your component's HTML is picked up during scanning.

How It Works

Setup: Run the setup command (e.g npm init @idomatic) to choose your framework and create a configuration file.

Scanning: The tool uses your configuration to search for files matching the specified extensions.

Dry Run: Lists the files that would be processed without modifying them.

Write Mode: Processes each file, adding id attributes where needed.

Parsing: Depending on the file type, idomatic imports the appropriate parser (@idomatic/parser-js for JavaScript/JSX/TSX or @idomatic/parser-html for HTML-based files) to modify your code using an Abstract Syntax Tree (AST).

Example

Imagine you have a React component without an id attribute:

function Button() {
  return <button>Click me</button>;
}

After running idomatic in write mode, the component might be transformed to:

function Button() {
  return (
    <button id="auto-id-123e4567-e89b-12d3-a456-426614174000">Click me</button>
  );
}

The generated id includes a prefix (from the configuration) and a unique identifier.

Contributing Contributions are welcome! Feel free to open issues or pull requests on GitHub.