dojo / dojo/cli

Pass command helper to command's `eject` method

Open
#192 0 comments 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
TypeScript
Stars
27
Forks
30
PR merge metrics
No merged PRs in 30d

Description

**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" }
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.