> For the complete documentation index, see [llms.txt](https://docs.twine.world/twine-js/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.twine.world/twine-js/twine-protocol/twine-core/functions/resolvehelper.md).

# resolveHelper

[**@twine-protocol/twine-core v0.1.0**](/twine-js/twine-protocol/twine-core/index.md) • **Docs**

***

[twine-js](/twine-js/index.md) / [@twine-protocol/twine-core](/twine-js/twine-protocol/twine-core/index.md) / resolveHelper

## Function: resolveHelper()

A helper function for implementing the [Resolver.resolve](/twine-js/twine-protocol/twine-core/interfaces/resolver.md#resolve) method

### Param

The fetchers to use

### Param

The query to resolve

### Param

Options for the resolution

### See

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

### 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`](/twine-js/twine-protocol/twine-core/type-aliases/chainresolution.md)>

A helper function for implementing the [Resolver.resolve](/twine-js/twine-protocol/twine-core/interfaces/resolver.md#resolve) method

#### Parameters

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

#### Returns

`Promise`<[`ChainResolution`](/twine-js/twine-protocol/twine-core/type-aliases/chainresolution.md)>

#### Param

The fetchers to use

#### Param

The query to resolve

#### Param

Options for the resolution

#### See

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

#### 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`](/twine-js/twine-protocol/twine-core/type-aliases/pulseresolution.md)>

A helper function for implementing the [Resolver.resolve](/twine-js/twine-protocol/twine-core/interfaces/resolver.md#resolve) method

#### Parameters

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

#### Returns

`Promise`<[`PulseResolution`](/twine-js/twine-protocol/twine-core/type-aliases/pulseresolution.md)>

#### Param

The fetchers to use

#### Param

The query to resolve

#### Param

Options for the resolution

#### See

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

#### 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)
