> For the complete documentation index, see [llms.txt](https://marblejs.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://marblejs.gitbook.io/docs/other/api-reference/core/bindeagerlyto.md).

# bindEagerlyTo

Binds injection token to eager dependency.

### **Importing** <a href="#importing" id="importing"></a>

```typescript
import { bindEagerlyTo } from '@marblejs/core';
```

### **Type declaration**

```
bindEagerlyTo ::  ContextToken -> ContextReader -> BoundDependency

```

The function is responsible for binding context token to `ContextReader` which can be a **fp-ts** `Reader` instance or plain **sync/async** `() => T`. The function is producing a eager binding, which means that, the dependency will be evaluated on startup.

### **Example**

```typescript
import { reader, bindEagerlyTo, createContextToken } from '@marblejs/core';
import { createServer } from '@marblejs/http';
import { pipe } from 'fp-ts/lib/function';
import * as R from 'fp-ts/lib/Reader';

// create sync reader

const FooSyncToken = createContextToken<ReturnType<typeof fooSync>>('FooSyncToken');

const fooSync = pipe(reader, R.map(ask => {
  const otherDependency = ask(OtherToken);
  
  return { ... };
});

// create async reader

const FooAsyncToken = createContextToken<ReturnType<typeof fooSync>>('FooSyncToken');

const fooAsync = pipe(reader, R.map(async ask => {
  const otherDependency = ask(OtherToken);
  
  return { ... };
});


// bind readers to tokens

const boundSyncDependency  = bindEagerlyTo(FooSyncToken)(fooSync);
const boundAsyncDependency = bindEagerlyTo(FooAsyncToken)(fooAsync);

```
