Skip to content

Enhance - ng generate route #192

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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