# Bagubagu Schematics

## Develop

First thing first

```bash
npm install -g schematics-cli
git clone https://github.com/bagubagu/s.git
yarn install
yarn build
```

### Modify table component

Modify `src/table/files/*`

to test:

```bash
# Test from an example angular project
cd example

# this will not really create the files
# because it's running in dry-run mode
schematics ..:table

# to see the changes
schematics ..:table --dry-run=false
```

### Create new component

1. Add your new component to `src/collection.json`
1. mkdir `src/newcomponent`
1. create your new component, use `src/table` as example

To test the component

```bash
cd example

# this will run in dry-run mode (not changing anything)
schematics ..:mycomponent

# set dry-run to false, to see changes
schematics ..:mycomponent --dry-run=false
```

### Test from an existing angular project

```bash
# link our schematics to global
cd s
npm link .

# test from hijrah-admin
cd ../hijrah-admin
npm link @bagubagu/schematics
ng g @bagubagu/schematics:table
```


## How to use

```bash
npm i -g @bagubagu/schematics
```


#### Create <anything>.json for @bagubagu/schematics

```bash
cd ./angular_project/src/app/
generate-json-schematics
```
This will generate ` <file_name>.json ` in `./angular_project/src/app`


### Create new table

```bash
 ng g @bagubagu/schematics:table <table_name> --project=<project_name>
```

Note: Before creating a new table please make sure that <table_name>.json's path is included (and/or) <table_name>.json does exists




### Create new Service

```bash
 
 # this will run in dry-run mode (not changing anything)
 ng g @bagubagu/schematics:service <service_name> --project=<project_name>

```

### Create new Pipe
```bash

  ng g @bagubagu/schematics:pipe <pipe_name> --project=<project_name>

```


## Example

### Create Table 
```bash 
  cd ./project/hehe/product/
  generate-json-schematics 

```

```
? What do you want to create?  (Use arrow keys)
  Form
❯ Table
```

```bash

  ng g @bagubagu/schematics:table product/product-list --dry-run=false

```

### Create Form

```bash 
  cd example/src/app/product/
  generate-json-schematics 

```

```
? What do you want to create?  (Use arrow keys)
❯ Form
  Table
```

```bash
  cd example/
  ng g @bagubagu/schematics:form product/product-add --dry-run=false

```


### Service

```bash
   cd example/
   ng g @bagubagu/schematics:service product/product --project=example --dry-run=false

```

### Pipe

```bash
  cd example/
  ng g @bagubagu/schematics:pipe product --project=example --dry-run=false
  
```  
