# broccoli-node-api

> Broccoli Plugin API Types

Latest version **1.7.0** (published 2019-08-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install broccoli-node-api
pnpm add broccoli-node-api
yarn add broccoli-node-api
bun add broccoli-node-api
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.7.0 |
| Published | 2019-08-14 |
| First published | 2018-08-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 11.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Jo Liss |
| Maintainers | krisselden, rwjblue, stefanpenner, thoov |

## Links

- npm: https://www.npmjs.com/package/broccoli-node-api
- Repository: https://github.com/broccolijs/broccoli-node-api
- Homepage: https://github.com/broccolijs/broccoli-node-api#readme
- Issues: https://github.com/broccolijs/broccoli-node-api/issues
- npm.io page: https://npm.io/package/broccoli-node-api

## Recent versions

- 1.7.0 (latest) — 2019-08-14
- 1.6.0 — 2019-07-16
- 1.5.0 — 2019-07-15
- 1.4.0 — 2019-07-12
- 1.3.0 — 2019-07-12
- 1.2.0 — 2019-07-10
- 1.1.0 — 2018-08-25
- 1.0.0 — 2018-08-24

## README

# `broccoli-node-api`

TypeScript types for the [Broccoli Node Api](https://github.com/broccolijs/broccoli/blob/master/docs/node-api.md)

- [`broccoli-node-api`](#broccoli-node-api)
  - [Exports](#exports)
    - [Node](#node)
    - [InputNode](#inputnode)
    - [NodeCommon](#nodecommon)
    - [NodeMap](#nodemap)
    - [TransformNode](#transformnode)
    - [SourceNode](#sourcenode)
    - [FeatureSet](#featureset)
    - [NodeInfo](#nodeinfo)
    - [NodeType](#nodetype)
    - [NodeInfoMap](#nodeinfomap)
    - [NodeInfoCommon](#nodeinfocommon)
    - [TransformNodeInfo](#transformnodeinfo)
    - [CallbackObject](#callbackobject)
    - [SourceNodeInfo](#sourcenodeinfo)

## Exports

### Node

```ts
type Node = TransformNode | SourceNode;
```

[Node Documentation](https://github.com/broccolijs/broccoli/blob/master/docs/node-api.md#part-2-node-api-specification)

---

### InputNode

```ts
type InputNode = Node | string;
```

---

### NodeCommon

```ts
interface NodeCommon<T extends NodeInfo> {
  __broccoliFeatures__: FeatureSet;
  __broccoliGetInfo__: (builderFeatures: FeatureSet) => T;
}
```

---

### NodeMap

```ts
interface NodeMap = {
  transform: TransformNode;
  source: SourceNode;
};
```

---

### TransformNode

```ts
interface TransformNode extends NodeCommon<TransformNodeInfo> {}
```

---

### SourceNode

```ts
interface SourceNode extends NodeCommon<SourceNodeInfo> {}
```

---

### FeatureSet

```ts
interface FeatureSet {
  [feature: string]: boolean;
}
```

---

### NodeInfo

```ts
type NodeInfo = TransformNodeInfo | SourceNodeInfo;
```

[NodeInfo Documentation](https://github.com/broccolijs/broccoli/blob/master/docs/node-api.md#the-nodeinfo-object)

---

### NodeType

```ts
type NodeType = "transform" | "source";
```

---

### NodeInfoMap

```ts
interface NodeInfoMap = {
  transform: TransformNodeInfo;
  source: SourceNodeInfo;
};
```

---

### NodeInfoCommon

```ts
interface NodeInfoCommon<T extends NodeType> {
  nodeType: T;
  name: string;
  annotation: string | null | undefined;
  instantiationStack: string;
}
```

---

### TransformNodeInfo

```ts
interface TransformNodeInfo extends NodeInfoCommon<"transform"> {
  inputNodes: Node[];
  setup(
    features: FeatureSet,
    options: { inputPaths: string[]; outputPath: string; cachePath: string }
  ): void;
  getCallbackObject(): CallbackObject;
  persistentOutput: boolean;
  needsCache: boolean;
  volatile: boolean;
  trackInputChanges: boolean;
}
```

[TransformNodeInfo Documentation](https://github.com/broccolijs/broccoli/blob/master/docs/node-api.md#transform-nodes)

---

### CallbackObject

```ts
interface CallbackObject {
  build(buildChangeObject?: BuildChangeObject): Promise<void> | void;
}
```

---

### BuildChangeObject

```ts
interface BuildChangeObject {
  changedNodes: boolean[];
}
```

---

### SourceNodeInfo

```ts
interface SourceNodeInfo extends NodeInfoCommon<"source"> {
  sourceDirectory: string;
  watched: boolean;
}
```

[SourceNodeInfo Documentation](https://github.com/broccolijs/broccoli/blob/master/docs/node-api.md#source-nodes)

---
_Source: https://npm.io/package/broccoli-node-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
