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

@exirain/header

v0.0.29

Published

Generic header that would be injected as dependency for all projects

Downloads

8

Readme

Export Components

General information

Changelog file could be found here link

Creating package

To create npm package for export components:

  • Navitage to : exportcomponents root directory
  • Run npm pack command to create package locally
    • If you made updates to the package please relate to this file before creating package

To publish npm newely created package:

  • Run npm publish --access public
  • Authorize in npm and package would be published

Adding dependency from remote

  • Since this package currently being deployed to @exirain account therefore it would need to be related from @exirain
  • Add to package.json @exirain/header: followed by version, list of available version could be found here

Adding dependency as local package

  • When you build the package file, put it in root directory of the application
  • Add to package.json @exirain/header: file:name-of-the-generated-package
    • If having import issues like NOT FOUND try adding to vite.config.ts resolve: { alias: { '@exirain': ${path.resolve(__dirname, 'node_modules/@exirain/header/src')} }, }

Using package

  • Importing components
    • import { Header } from '@exirain/header/src/index' for Header only
    • import { Header, MainNavigation } from '@exirain/header/src/index' for Header and Menu
  • Make sure that App.tsx fetches initial user info and stores it in store that provided by application
    • If you want to use local package, put created package to the root of react app and add depenency like "@exirain/header": "file:exirain-header-0.0.5.tgz" (use proper version)

Using MainNavigation component

  • In Layout component you need to provide fetching and caching the menu.json file, code snippet would be:
    const CACHE_NAME = 'mainmenu-cache';
    const [MainMenuItems, setMainMenuItems] = useState([])
    const {data, isLoading, status} = useQuery({
    queryKey: [import.meta.env.REACT_APP_MENU_URL + import.meta.env.REACT_APP_MENU_PATH],
    onSuccess: (res: any) => {
    try {
    setMainMenuItems(res);
    localStorage.setItem(CACHE_NAME, JSON.stringify(res));
    } catch (e) {
    console.log(e);
    }},
    onError: (error: any) => {
    setMainMenuItems(getCache());
    } }); function getCache(): any {
    const cache = localStorage.getItem(CACHE_NAME) || '{}';
    return JSON.parse(cache);
    }
  • Then pass this MainMenu items to menu component <MainNavigation items={MainMenuItems}/>
    • If you want to use only local file provided by package then pass empty array instead []

Using Header component

  • Example of using header component
  • Make sure all these variables are set in .env file or docker-compose file
  • Using user store is critical for header to function since it contains information about user that would be shown in Header
    • User store script in examples folder
    • You must fetch initial data in App.tsx file and then delegate it to header for displaying

Implemented examples:

  • https://github.com/buerokratt/Training-Module
  • https://github.com/buerokratt/Service-Module
  • https://github.com/buerokratt/Analytics-Module