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

react-rosie

v2.2.0

Published

Factory for building React Props, Powered by RosieJS

Downloads

22

Readme

React-Rosie

React-Rosie takes the power of RosieJs and adds some specific upgrades for React. The upgrades allow you to quickly generate Factories from your component's PropTypes.

// factories/user.js
import { dateString, dateStringGenerator } from 'utils/PropTypes';
import Factory from 'react-rosie';

export default new Factory()
  .validator(dateString, dateStringGenerator)
  .props({
    date: dateString.isRequired,
    username: React.PropTypes.string.isRequired,
    displayName: React.PropTypes.string
   });

validator and props are both new methods added onto Rosie's Factory class.

Supported Generators

  • Any

  • Array

  • Bool

  • Func

  • Node

  • Number

  • Object

  • String

  • ArrayOf

  • InstanceOf

  • ObjectOf

  • OneOf

  • OneOfType

  • Shape

API

Factory.setUpReact( React )

React-Rosie needs your React instance so it can decode and apply generators for each of Reacts standard PropTypes. This function needs to be called before part of your code uses React PropTypes. We recommend that you do this first thing in your test setup.

instance.validator( validatorFn, generator_function )

The validatorFn should be the same function that is passed in as your components custom PropType validator.

note: you must register your custom validator before passing it to the props method.

instance.props( PropTypesDictionary, [options] )

React-Rosie will match up React's standard PropTypes with a generator and automatically setup your factory.

If the prop isRequired then that property will be set as an attribute that will always be included in the factory unless overridden.

If the prop is not required then it'll be an optional property. Optional properties will be undefined unless explicitly included by passing the option of _PROPNAME: true.

Options

Options use a nested format that can be as deep or as shallow as you'd like. Options can be used to control things like likely-hood of array length.

array
  • weight - key of length, value of decimal percentage of likely-hood

    EXAMPLE: { 0: .3, 1: .4, 2: .1, 3: .1, 4: .1 }

func
  • stub - function you'd like to have ran
number
  • min - Min (inclusive) of the random value range
  • max - Max (exclusive) of the random value range
string
  • stringLength - length of string
arrayOf
  • weight - key of length, value of decimal percentage of likely-hood

    EXAMPLE: { 0: .3, 1: .4, 2: .1, 3: .1, 4: .1 }

instanceOf
  • args - Arguments passed to the constructor
objectOf
  • keys - <Array > Keys of the object
  • opts - Options of the type
shape
      • another full Options object for the nested shape

Example

import User from './factories/user';

// with displayName
const user1 = User.build({}, { _displayName: true });

// without displayName
const user2 = User.build();