# resolveHelper

[**@twine-protocol/twine-core v0.1.0**](https://docs.twine.world/twine-js/twine-protocol/twine-core/index) • **Docs**

***

[twine-js](https://docs.twine.world/twine-js/index) / [@twine-protocol/twine-core](https://docs.twine.world/twine-js/twine-protocol/twine-core/index) / resolveHelper

## Function: resolveHelper()

A helper function for implementing the [Resolver.resolve](https://docs.twine.world/twine-js/twine-protocol/interfaces/resolver#resolve) method

### Param

The fetchers to use

### Param

The query to resolve

### Param

Options for the resolution

### See

* [MemoryStore.resolve](https://docs.twine.world/twine-js/twine-protocol/classes/memorystore#resolve) for an example of how to use this
* [ResolveCallers](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolvecallers)

### Example

```js
class MemoryStore {
  async resolve(query: IntoResolveChainQuery, options?: ResolveOptions): Promise<ChainResolution>
  async resolve(query: IntoResolvePulseQuery, options?: ResolveOptions): Promise<PulseResolution>
  async resolve(query: any, options?: ResolveOptions) {
    return resolveHelper({
      fetchChain: ({ chainCID }) => this.fetch(chainCID) as Chain | null,
      fetchPulse: ({ pulseCID }) => this.fetch(pulseCID) as Pulse | null
    }, query, options)
  }
  //...
}
```

### resolveHelper(callers, thing, options)

> **resolveHelper**(`callers`, `thing`, `options`?): `Promise`<[`ChainResolution`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/chainresolution)>

A helper function for implementing the [Resolver.resolve](https://docs.twine.world/twine-js/twine-protocol/interfaces/resolver#resolve) method

#### Parameters

| Parameter  | Type                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| `callers`  | [`ResolveCallers`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolvecallers)               |
| `thing`    | [`IntoResolveChainQuery`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/intoresolvechainquery) |
| `options`? | [`ResolveOptions`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolveoptions)               |

#### Returns

`Promise`<[`ChainResolution`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/chainresolution)>

#### Param

The fetchers to use

#### Param

The query to resolve

#### Param

Options for the resolution

#### See

* [MemoryStore.resolve](https://docs.twine.world/twine-js/twine-protocol/classes/memorystore#resolve) for an example of how to use this
* [ResolveCallers](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolvecallers)

#### Example

```js
class MemoryStore {
  async resolve(query: IntoResolveChainQuery, options?: ResolveOptions): Promise<ChainResolution>
  async resolve(query: IntoResolvePulseQuery, options?: ResolveOptions): Promise<PulseResolution>
  async resolve(query: any, options?: ResolveOptions) {
    return resolveHelper({
      fetchChain: ({ chainCID }) => this.fetch(chainCID) as Chain | null,
      fetchPulse: ({ pulseCID }) => this.fetch(pulseCID) as Pulse | null
    }, query, options)
  }
  //...
}
```

#### Defined in

[packages/twine-core/src/resolver/helpers.ts:183](https://github.com/twine-protocol/twine-js/blob/3800995f9c83f4f5711bcf3062ea754a1e4448ce/packages/twine-core/src/resolver/helpers.ts#L183)

### resolveHelper(callers, thing, options)

> **resolveHelper**(`callers`, `thing`, `options`?): `Promise`<[`PulseResolution`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/pulseresolution)>

A helper function for implementing the [Resolver.resolve](https://docs.twine.world/twine-js/twine-protocol/interfaces/resolver#resolve) method

#### Parameters

| Parameter  | Type                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| `callers`  | [`ResolveCallers`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolvecallers)               |
| `thing`    | [`IntoResolvePulseQuery`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/intoresolvepulsequery) |
| `options`? | [`ResolveOptions`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolveoptions)               |

#### Returns

`Promise`<[`PulseResolution`](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/pulseresolution)>

#### Param

The fetchers to use

#### Param

The query to resolve

#### Param

Options for the resolution

#### See

* [MemoryStore.resolve](https://docs.twine.world/twine-js/twine-protocol/classes/memorystore#resolve) for an example of how to use this
* [ResolveCallers](https://docs.twine.world/twine-js/twine-protocol/twine-core/type-aliases/resolvecallers)

#### Example

```js
class MemoryStore {
  async resolve(query: IntoResolveChainQuery, options?: ResolveOptions): Promise<ChainResolution>
  async resolve(query: IntoResolvePulseQuery, options?: ResolveOptions): Promise<PulseResolution>
  async resolve(query: any, options?: ResolveOptions) {
    return resolveHelper({
      fetchChain: ({ chainCID }) => this.fetch(chainCID) as Chain | null,
      fetchPulse: ({ pulseCID }) => this.fetch(pulseCID) as Pulse | null
    }, query, options)
  }
  //...
}
```

#### Defined in

[packages/twine-core/src/resolver/helpers.ts:184](https://github.com/twine-protocol/twine-js/blob/3800995f9c83f4f5711bcf3062ea754a1e4448ce/packages/twine-core/src/resolver/helpers.ts#L184)
