Skip to content

Enhance - ng generate route #192

Closed
Closed
@Brocco

Description

@Brocco

ng route update

The current mechanism to add routes does not provide the flexibility that is needed to generate routes

Current

ng route library yields:

|-- app
|   |-- library
|   |   |-- library-detail.component.html
|   |   |-- library-detail.component.css
|   |   |-- library-detail.component.spec.ts
|   |   |-- library-detail.component.ts
|   |   |-- library-list.component.html
|   |   |-- library-list.component.css
|   |   |-- library-list.component.spec.ts
|   |   |-- library-list.component.ts
|   |   |-- library-root.component.spec.ts
|   |   |-- library-root.component.ts
|   |   |-- library.service.spec.ts
|   |   |-- library.service.ts
|   |-- ...
|-- app.ts

Issues

  • Not all routes will want a root, list and detail components.
  • All routes are added to the root (no child routes)
  • Need to be more granular with what is generated (via params)

Concerns with new proposal

  • Simplicity - make it easy for devs to use
  • Style - adhere to a community accepted style guide

Proposed

Create a list of parameters to configure what is generated out of ng route <name>

Parameters

  • Parent [optional]
    • will specify where the new route will be placed
    • will allow adding of child routes without cd-ing to that route/directory
  • routes [optional]
    • list of child routes to be created

Parameters can be specified via command line i.e.

  • With children

    ng generate route library --routes book reference
  • Create base with one child then add another by specifying parent

    ng generate route library --routes book
    ng generate route book --parent library

When calling the command with no arguments the user can be prompted

ng generate route
> Name of the route to generate?
> Parent route? (hit enter for no parent)
> Child route?

If more than one instance of parent is found the user will be prompted to choose

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions