# atomic-reactor-cli

> A CLI for creating Atomic Reactor Awesomeness

Latest version **2.1.29** (published 2020-05-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install atomic-reactor-cli
pnpm add atomic-reactor-cli
yarn add atomic-reactor-cli
bun add atomic-reactor-cli
```

Provides the command `arcli`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 2.1.29 |
| Published | 2020-05-06 |
| First published | 2017-11-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=8.11.4 |
| Dependencies | 25 |
| Unpacked size | 167.1 KB |
| Known vulnerabilities | 0 (+40 in 4 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Cam Tullos |
| Maintainers | camdagr8, jdillick, reykjavikingur |
| Keywords | actinium, react, reactium, redux, framework, javascript, ddd, cli |

## Links

- npm: https://www.npmjs.com/package/atomic-reactor-cli
- Repository: https://github.com/Atomic-Reactor/CLI
- Homepage: https://github.com/Atomic-Reactor/CLI#readme
- Issues: https://github.com/Atomic-Reactor/CLI/issues
- npm.io page: https://npm.io/package/atomic-reactor-cli

## Dependencies (25)

- [npm](https://npm.io/package/npm.md) ^6.14.5
- [ora](https://npm.io/package/ora.md) ^3.4.0
- [tar](https://npm.io/package/tar.md) ^6.0.2
- [axios](https://npm.io/package/axios.md) ^0.19.2
- [chalk](https://npm.io/package/chalk.md) ^3.0.0
- [parse](https://npm.io/package/parse.md) ^2.13.0
- [globby](https://npm.io/package/globby.md) ^10.0.2
- [moment](https://npm.io/package/moment.md) ^2.25.3
- [prompt](https://npm.io/package/prompt.md) ^1.0.0
- [semver](https://npm.io/package/semver.md) ^6.3.0
- [request](https://npm.io/package/request.md) ^2.88.2
- [slugify](https://npm.io/package/slugify.md) ^1.4.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^8.1.0
- [prettier](https://npm.io/package/prettier.md) ^1.19.1
- [camelcase](https://npm.io/package/camelcase.md) ^5.3.1
- [commander](https://npm.io/package/commander.md) ^4.1.1
- [decamelize](https://npm.io/package/decamelize.md) ^3.2.0
- [handlebars](https://npm.io/package/handlebars.md) ^4.7.6
- [underscore](https://npm.io/package/underscore.md) ^1.10.2
- [object-path](https://npm.io/package/object-path.md) ^0.11.4
- [cli-spinners](https://npm.io/package/cli-spinners.md) ^2.3.0
- [folder-zipper](https://npm.io/package/folder-zipper.md) ^1.0.0
- [action-sequence](https://npm.io/package/action-sequence.md) ^1.1.1
- [fs-readdir-recursive](https://npm.io/package/fs-readdir-recursive.md) ^1.1.0
- [@atomic-reactor/decompress](https://npm.io/package/@atomic-reactor/decompress.md) ^4.2.3

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 2.1.29 (latest) — 2020-05-06
- 2.1.28 — 2020-05-06
- 2.1.26 — 2020-05-05
- 2.1.25 — 2020-05-05
- 2.1.23 — 2020-04-22
- 2.1.22 — 2020-04-22
- 2.1.21 — 2020-04-03
- 2.1.20 — 2020-03-16
- 2.1.19 — 2019-12-15
- 2.1.18 — 2019-12-15
- 2.1.17 — 2019-12-05
- 2.1.16 — 2019-11-14
- 2.1.15 — 2019-11-14
- 2.1.14 — 2019-11-06
- 2.1.13 — 2019-10-23
- … 122 more at https://npm.io/package/atomic-reactor-cli/versions

## README

# Atomic Reactor CLI
A CLI for creating Atomic Reactor Awesomeness!


# Installation
```
$ npm install -g atomic-reactor-cli
```


# Usage

```
$ arcli <command> [options]

Options:
  -v, --version                 Output the version number.
  -h, --help                    Output usage information.

Commands:
  config [options]              ARCLI:    Set ARCLI key:value pairs.
  commander [options]           ARCLI:    Create a CLI function.

  cloud [options]               Actinium: Create a new Parse.Cloud function file.
  actinium [options] <install>  Actinium: Download and install.

  component [options]           Reactium: Create or replace a component.
  empty                         Reactium: Removes the default demo, styles, toolkit elements, and assets.
  reactium <install> [options]  Reactium: Download and install.
  reactium <update> [options]   Reactium: Update core.
  rename [options]              Reactium: Rename a component.
  style [options]               Reactium: Create a style sheet.

  element [action] [options]    Toolkit:  Manage toolkit elements.
                                          Available actions: create | updated | remove.
  group [action] [options]      Toolkit:  Manage toolkit groups.
                                          Available actions: create | updated | remove.  
```


## Commands

### `<config>`
Set or change configuration options.

#### Usage
```
$ arcli config --key 'reactium.repo' --value 'https://github.com/Atomic-Reactor/Reactium/archive/develop.zip'
```

_The above would set the Reactium install package to the `develop` branch._


#### Flags:
--key, --value

##### -- key
The config object key.
Use dot notation to access deeper keys in the config object.

##### --value
The config object value.
You can set array values by putting a space between each value.

```
$ arcli config --key 'toolkit.types' --value 'atom molecule organism template link page'
```

###### Default config
```
{
  "prompt": {
    "delimiter": "",
    "prefix": "[ARCLI] > ",
    "prefixColor": "cyan"
  },
  "commands": [
    "[root]/commands",               // Resolves to the ~/global/node_modules/ARCLI/commands directory. Used for global commands.
    "[cwd]/.core/.cli/commands",     // Resolves to the ~/project/.core/.cli/commands directory. Used for application core commands.
    "[cwd]/.cli/commands"            // Resolves to the ~/project/.cli/commands directory. Used for project specific commands.
  ],
  "reactium": {
    "repo": "https://github.com/Atomic-Reactor/Reactium/archive/master.zip",
    "types": [
      "functional",
      "class"
    ]
  },
  "actinium": {
    "repo": "https://github.com/Atomic-Reactor/Actinium-2.0/archive/master.zip"
  },
  "toolkit": {
    "types": [
      "atom",
      "molecule",
      "organism",
      "template",
      "link"
    ]
  }
}
```


### `<commander>`
Create custom ARCLI commands.

#### Usage
```
$ arcli commander
```

> _You will be prompted for a destination and command name_


#### Flags:
--destination, --command, --overwrite

##### -d, --destination
Path where the command is saved.

If you're creating a project specific command, use the shortcut: `cwd/` when specifying the destination.

> _This is the recommended location for custom commands._
```
$ arcli commander --destination 'cwd/my/function'
```

_The boilerplate code for a new ARCLI function will be created in the `~/.cli/commands/my/function` directory._


If you're creating an application specific command, use the shortcut `app/` when specifying the destination.

> Beware: _Application specific commands are only suggested if you're contributing to the application and want those commands pushed out to future versions. For instance if you want to create a new Reactium or Actinium core command and plan on submitting a pull request for your new feature. Otherwise, they will be overwritten when you update your version of Reactium or Actinium._
```
$ arcli commander -d 'app/my/function'
```

_The boilerplate code for a new ARCLI function will be created in the `~/.core/.cli/commands/my/function` directory._


If you're creating a new ARCLI command, use the shortcut `root/` when specifying the destination.

> Beware: _Root commands are only suggested if you're contributing to ARCLI and plan on submitting a pull request for your new feature. Otherwise, they will be overwritten whenever you update your version of ARCLI._

```
$ arcli commander -d 'root/my/function'
```

##### -c, --command
The command prompt.

```
$ arcli commander --command fubar --destination 'cwd/fubar'
```

You can create a command that accepts parameters as well:

```
$ arcli commander --command 'fubar test'
```

_Creates a command that would be run by entering the following: `arcli fubar test`_


## Reactium Commands

### `<reactium> <install>`

Downloads and installs Reactium into the current working directory. If the directory is not empty, you will be prompted to overwrite it or cancel the operation.

#### Usage

```
$ arcli reactium install
```

> _The config `reactium.repo` url is used when downloading Reactium._

##### -o, --overwrite
Overwrite the current working directory if it's not empty.

##### -e, --empty
Install Reactium without the default demo pages, components, and toolkit.


### `<reactium> <update>`
Downloads and installs Reactium `.core` and updates to the `package.json` into the current working directory.
The current version of your project will be backed up to the `.BACKUP` directory before update.

#### Usage
```
$ arcli reactium update
```

### `<empty>`
Removes the default demo, styles, toolkit elements, and assets.

#### Usage

```
$ arcli empty --no-demo
```

##### -D, --no-demo
Keep the default demo site and components.

##### -T, --no-toolkit
Keep the default toolkit elements.

##### -S, --no-style
Do not empty the ~/src/assets/style/style.scss file.

##### -F, --no-font
Do not empty the ~/src/assets/fonts directory.

##### -I, --no-images
Do not empty the ~/src/assets/images directory.



### `<component>`
Create or replace a Reactium component.

#### Usage
```
$ arcli component
```

#### Flags:
--name, --destination, --type, --type, --route, --redux, --redux-all, --actions, --actionTypes, --reducers, --services, --stylesheet, --overwrite

##### -n, --name
The component name. Used when importing the component.

##### -d, --destination
Path of the component's parent directory.
If you're creating a component named `Fubar` and specify `components/` as the `--destination`, the component will be saved to:

```
~/project/src/app/components/Fubar
```

##### -t, --type
The type of component to create.
Uses the config `reactium.types` value for the list of types.
Default types: `functional | class`

##### --route
Includes the `route.js` file for a routed component.

##### --redux
Create a Redux Class component.

_`--redux` must be specified for any of the redux includes to apply._

##### --redux-all
Include all Redux related files.

##### --actions
Include Redux `actions.js` file.

##### --actionTypes
Include Redux `actionTypes.js` file.

##### --reducers
Include Redux `reducers.js` file.

##### --services
Include `services.js` file for creating adhoc service calls.

##### --stylesheet
Include `_style.scss` file and import into a parent stylesheet.


### `<rename>`
Rename a Reactium component.

#### Usage

```
$ arcli rename --from 'FooBar' --to 'Fubar' --replace
```

#### Flags:
--from, --to, --directory, --replace

##### -f, --from
Component's current name.

##### -t, --to
Component's new name.

##### -d, --directory
Component's parent directory.

##### -r, --replace
Replace the component name in other files.
Each file is backed up in the `~/.BACKUP` directory.

> _You can use the shortcut `components/`, `common-ui/`, or `cwd/` when specifying the directory._

### `<style>`
Create a Reactium or Toolkit stylesheet.

#### Usage
```
$ arcli style -d 'cwd/public/assets/style' -f 'my-style.scss' -o
```

#### Flags:
--destination, --filename, --overwrite

##### -d, --destination
Path where the stylesheet is saved.

> _You can use the shortcut `components/`, `common-ui/`, or `cwd/` when specifying the destination._

##### -f, --filename
The file name of the stylesheet.

##### -o, --overwrite
Overwrite an existing version of the stylesheet.


## Toolkit Commands


### `<element> <create|update|remove>`
Manage toolkit elements.

#### Usage
```
$ arcli element create

$ arcli element update

$ arcli element remove
```

_If no flags are specified, you will be prompted to input corresponding values._

#### Flags:
--id, --name, --group, --label, --menu-order, --stylesheet, --documentation, --code, --dna

##### --id
The element ID. Used when indexing the element in the toolkit manifest file.

##### --name
The element name. Used when importing the element into other components.

##### --group
The group the element is apart of.
Groups are how the toolkit menu structures elements.

##### --label
The menu link text.

##### --menu-order
The menu link index relative to other elements in the group.

##### --stylesheet
Add a stylesheet for the element.

##### --documentation
Create a readme for the element and display it in the toolkit.

##### --code
Show the Code View for the element.

##### --dna
Show the DNA info for the element.


### `<group> <create|update|remove>`
Manage toolkit groups. Use this command to move things around in the toolkit manifest.

#### Usage

```
$ arcli group create
```

#### Flags:
--id, --menu-order, --label, --overwrite

##### --id
The group id.

##### --menu-order
The toolkit manifest index.

##### --label
The menu item text label.

##### --overwrite
Overwrite the group object,


## Actinium Commands


### `<actinium> <install>`
Downloads and installs Actinium into the current working directory. If the directory is not empty, you will be prompted to overwrite it or cancel the operation.

#### Usage
```
$ arcli actinium install
```

#### Flags:
--overwrite

##### -o, --overwrite
Overwrite the current working directory if it's not empty.


### `<cloud>`
Actinium uses The [Parse Platform](https://parseplatform.org/) and this command helps in creating new Parse.Cloud functions.

#### Usage
```
$ arcli cloud
```

#### Flags:
--destination, --collection, --definitions, --beforeFind, --beforeDelete, --beforeSave, --afterSave, --afterDelete, --overwrite

##### --destination
Parent directory of the Cloud Function.

> _Actinium looks in the `~/src/app/cloud` directory for .js files and loads them as cloud functions._
> _You can use the `cloud/` shortcut when specifying the destination. Example: `$ arcli element --destination 'cloud/my/function` will put the cloud function in the `~/src/app/cloud/my/function` directory._

##### --collection
The database collection for before/after hooks.

```
// Use the Parse.User collection
$ arcli element --collection '_User'
```

##### --definition
Parse.Cloud.define() definitions.
```
$ arcli element --definitions 'userSave userDelete'
```

> _Note: you can specify multiple definitions by putting a space between values._

##### --beforeFind
Include Parse.Cloud.beforeFind(COLLECTION) function.

##### --beforeDelete
Include Parse.Cloud.beforeDelete(COLLECTION) function.

##### --beforeSave
Include Parse.Cloud.beforeSave(COLLECTION) function.

##### --afterDelete
Include Parse.Cloud.afterDelete(COLLECTION) function.

##### --afterSave
Include Parse.Cloud.afterSave(COLLECTION) function.


> _See the [Parse Cloud Guide](https://docs.parseplatform.org/cloudcode/guide/) for more information on Cloud functions._


_Masterfully Powered By:_
![](https://image.ibb.co/ee2WaG/atomic_reactor.png)

---
_Source: https://npm.io/package/atomic-reactor-cli · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
