Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

generator-spock

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generator-spock

React/Redux Yeoman Generators

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

generator-spock

Spock - Star Trek

Installation

First, install Yeoman and generator-spock using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-spock

Available Generators

  • Action
  • Component
  • Reducer
  • Selector
  • Story

Options

All generators take these options:

  • destinationFolder: where to create the file, defaults to current directory
  • moduleName: the name of what you want to create, e.g.: MyComponent, reducer, CartActions, etc
  • filename: unless specified the filename is the module name. You don't need to pass the extension

Action Generator

yo spock:action

Actions example output:

/**
 * ShoppingCart Actions
 */

//  Action Types

// Action Creators

// Async Actions

Component Generator

yo spock:component

Options: class, functional, connected, native, class typescript, functional typescript

Class option example output:

/**
 * ShoppingCart
 */
import React from 'react';

export default class ShoppingCart extends React.Component {
    render() {
        return (
            <div className="shopping-cart">
                ShoppingCart component
            </div>
        );
    }
}

Functional option example output:

/**
 * ShoppingCart
 */
import React from 'react';

const ShoppingCart = () => {
    return (
        <div className="shopping-cart">
            ShoppingCart component
        </div>
    );
};

export default ShoppingCart;

Connected option example output:

/**
 * ShoppingCart
 */
import React from 'react';
import { connect } from 'react-redux';
import ShoppingCart from './ShoppingCart';

const makeMapToStateProps = (state) => ({})

const mapDispatchToProps = (dispath) => ({});

export default connect(makeMapToStateProps, mapDispatchToProps)(ShoppingCart);

Functional Native option example output:

/**
 * ShoppingCart
 */
import React from 'react';
import { View } from 'react-native';

const ShoppingCart = () => {
    return (
        <View>
            ShoppingCart component
        </View>
    );
};

export default ShoppingCart;

Class Typescript option example output:

/**
 * ShoppingCart
 */
import * as React from 'react';

interface Props {

}

export default class ShoppingCart extends React.Component<Props, {}> {
    render() {
        return (
            <div className="shopping-cart">
                ShoppingCart component
            </div>
        );
    }
}

Functional Typescript option example output:

/**
 * ShoppingCart
 */
import * as React from 'react';

interface Props {

}

const ShoppingCart: React.FC = (props: Props) => {
    return (
        <div className="shopping-cart">
            ShoppingCart component
        </div>
    );
};

export default ShoppingCart;

Reducer Generator

yo spock:reducer

The reducer generator also supports typescript. The only difference will be the file extension.

Options: page, module

Page option example output:

/**
* ShoppingCart Reducer
*/
import { combineReducers } from 'redux';

export default combineReducers({

});

Module option example output:

/**
 * ShoppingCart Reducer
 */
export default (state = {}, action) => {
    switch (action.type) {
        default:
            return state;
    }
};

Selector Generator

yo spock:selector

The selector generator also supports typescript. The only difference will be the file extension.

Example output:

/**
 * ShoppingCart Selectors
 */
import { createSelector } from 'reselect';

const rootSelector = state => state;

export const sampleSelector = createSelector(
    [rootSelector],
    state => state
);

Story Generator

yo spock:story

Example output

/**
 * ShoppingCart Stories
 */
import React from 'react';
import { storiesOf } from '@storybook/react';

const stories = storiesOf('ShoppingCart', module);

stories.add('ShoppingCart', () => (
    <div>
        ShoppingCart
    </div>
));

Example typescript output

/**
 * ShoppingCart Stories
 */
import * as React from 'react';
import { storiesOf } from '@storybook/react';

const stories = storiesOf('ShoppingCart', module);

stories.add('ShoppingCart', () => (
    <div>
        ShoppingCart
    </div>
));

License

MIT © Rafael Rozon

Keywords

FAQs

Package last updated on 17 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc