Skip to content

Pass command helper to command's eject method #192

@mwistrand

Description

@mwistrand

Bug

eject is currently treated as a command rather than an operation on commands, and as such any given command's eject method is passed a unique Helper rather than that associated with the command. As a result, it is not possible to access the command's options in the dojorc, as the helper's configuration uses eject as its internal key, so helper.configuration.get() actually reads from the non-existent eject key. This also means that calling helper.configuration.set() from within eject methods across commands results in multiple writes to the same object.

Package Version:

Code

// dojorc
{
    "my-command": {
          "hello": "world"
    }
}

```typescript
eject(helper: Helper) {
    console.log(helper.configuration.get());
    helper.configuration.set({ "hello": "dojo 2 world" });
}

Expected behavior:

{ "hello": "world" } is logged to the console and the dojorc is updated to:

{
    "my-command": { "hello": "dojo 2 world" }
}

Actual behavior:

{} is logged to the console as there is no eject key, and the dojorc is updated to:

{
    "my-command": { "hello": "world" },
    "eject": { "hello": "dojo 2 world" }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions