react-create-component-cli is simple cli tool to create boilerplate for react components. It makes use of nunjucks templates to construct the component files.
Currently this package creates components using the assumption that you are using a few libraries within your react/redux application. These are not required to create basic components.
$ npm i -g @jkirkpatrick24/react-create-component-cli
$ mkcpt $ARGS
$ mkcpt --name TestComponent --hasDependencies --isConnected
// TestComponent.react.js
import React from 'react';
import { compose } from 'redux';
import resolveDependencies from 'react-resolve-dependencies';
import { connect } from 'react-redux';
import { makeConnectArgs } from 'redux-threads';
import * as selectors from '../selectors';
import * as actions from '../actions';
export class TestComponent extends React.PureComponent {
static dependencies = [];
render() {
return(
);
}
}
const pageThread = [
selectors,
actions,
(stateProps, dispatchProps) => ({})
]
const connectArgs = makeConnectArgs(
pageThread
);
export default compose(
resolveDependencies()
connect(...connectArgs)
)(TestComponent);
Currently makes use of the following flags
--cdm // false
--cwm // false
--cwu // false
--ext // react.js
--hasConstructor // false
--hasDependencies // false
--isConnected // false
--isPure // true
--isFunctional // false
--name // index
defaults to false.
Creates the componentDidMount
lifecycle method if true
defaults to false.
Creates the componentWillMount
lifecycle method if true
defaults to false.
Creates the componentWillUnmount
lifecycle method if true
defaults to false.
Creates the class constructor
method if true
Defaults to false. Includes the react-resolve-dependencies library.
adds to component:
import resolveDependencies from 'react-resolve-dependencies';
static dependencies = [];
export default resolveDependencies()(componentName);
Defaults to false
Includes imports and boilerplate for a redux connected component (Assuming the use of redux-threads)
adds to component:
import { connect } from 'react-redux';
import { makeConnectArgs } from 'redux-threads';
import * as selectors from '../selectors';
import * as actions from '../actions';
const pageThread = [
selectors,
actions,
(stateProps, dispatchProps) => ({})
]
const connectArgs = makeConnectArgs(
pageThread
);
compose(
connect(...connectArgs)
)()
Defaults to false
renders a functional component
const {{ name }} => () {
return (
);
}
export default name
Defaults to true.
While true, uses React.PureComponent
. Otherwise uses React.Component
Defaults to "index".
Name of the component.
MIT.