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 🙏

© 2024 – Pkg Stats / Ryan Hefner

shesha-react

v1.0.54

Published

Library

Downloads

6

Readme

Welcome to Shesha v3.0 Storybook

Build Status

Documentation is here

This is the place where all of the React web components for Shesha Web version 3 are documented!. This boilerplate was inspired by this library

Code Structure

@shesha/react-components/
    next-example/
      .storybook
      assets
      pages 
      server
      stories
      typings
    src/
      components/
      models/
      styles/
      typings/
      utils/
        index.tsx
        styles.scss
        typings.d.ts
  .babelrc
  .editorconfig
  .eslintignore
  .eslintrc
  .gitignore
  .travis.yml
  package-lock.json
  package.json
  README.md
  rollup.config.js
  tsconfig.json
  tsconfig.test.json
  tslint.json

How to contribute

To contribute, you need to create your new component under src/components/componentName. Make sure that every componet is then imported and exporteed in the src/components/componentName/index.tsx file.

Creating the component

Each component folder should be the name of the component in camelCase. The component name should be in PascalCase. Inside the folder, there should be at least 2 files, namely, index.tsx, which will contain the component and styles.scss, which will be containing the styles for that component. Below is an example:

@shesha/react-components/
    src/
      components/
        componentName
          index.tsx
          styles.scss.tsx

Development

Local development is broken into two parts (ideally using two tabs).

First, run rollup to watch your src/ module and automatically recompile it into dist/ whenever you make changes.

npm start # runs rollup with watch flag

The second part will be running the storybook, under next-example that's linked to the local version of your module.

# (in another tab)
cd next-example
npm run storybook # runs storybook server

Now, anytime you make a change to your library in src/ or to the example app's example/src, create-react-app will live-reload your local dev server so you can iterate on your component in real-time.

To import your componate named MyComponent, in your stories (or in your nextjs application, under next-example) you just write a statement like below

import { MyComponent } from '@shesha/react-components';

Versioning and publishing

Versioning

We use generate changelog to generate changelogs from git commands. Please read this article on version semantic versioning.

There are scripts in place to assist you with versioning. They are the following:

npm run changelog:major
npm run changelog:minor
npm run changelog:patch

You will run an appropriate one based on the changes you made. This will make sure that the version is changed in the package.json file and the log is added in the CHANGELOG.md file. You do not need to manually do that.

Publishing

In order to publish to npm you must have first signed in with the credetials to our private npm registry. To use local server you need to change registry using following command:

npm set registry http://npm.boxfusion.co.za:4873/';

Sinopia falls back to the global server if the package doesn't exists on the local server

From there, you can login to npm using the command: npm login

To publish, the command is

npm publish

This builds cjs and es versions of your module to dist/ and then publishes your module to npm.

Make sure that any npm modules you want as peer dependencies are properly marked as peerDependencies in package.json. The rollup config will automatically recognize them as peers and not try to bundle them in your module.

TODOs

  • [ ] Add code coverage - Azure DevOps coverage
  • [ ] Add unit tests - Azure DevOps tests with custom labels
  • [ ] Allow the consumer to customize the components in .SCSS, using Webpack
  • [ ] Get @storybook/addon-info to work properly. (Currently when you click the show info button, it does not show the props for the components.