Skip to content

Latest commit

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..

README.md

@movie-effect/omdb

npm version License: MIT

An Effect-based client for the OMDb API.

Installation

npm install @movie-effect/omdb effect @effect/platform @effect/platform-node
# or
pnpm add @movie-effect/omdb effect @effect/platform @effect/platform-node

Features

  • Full TypeScript support with Effect
  • Type-safe API responses with Schema validation
  • Built-in rate limiting
  • Observability with Effect tracing

Authentication

This library requires an OMDb API key.

  1. Go to omdbapi.com/apikey.aspx
  2. Choose a plan (free tier: 1,000 requests/day)
  3. Enter your email and submit
  4. Check your email and activate your API key

For local development, set the OMDB_API_KEY environment variable:

export OMDB_API_KEY="your-api-key"

The key should be appended as a URL param to all requests, e.g.,

http://www.omdbapi.com/?i=tt3896198&apikey=MY_API_KEY

Quick Start

import { NodeHttpClient } from '@effect/platform-node'
import { OmdbClient, OmdbConfig } from '@movie-effect/omdb'
import { Console, Effect } from 'effect'

const program = Effect.gen(function*() {
  const client = yield* OmdbClient
  const movie = yield* client.getByTitle('Inception')
  yield* Console.log(movie.Title, movie.Year)
})

const runnable = program.pipe(
  Effect.provide(OmdbClient.Default),
  Effect.provide(OmdbConfig.layer({ apiKey: 'your-api-key' })),
  Effect.provide(NodeHttpClient.layer),
)

Effect.runPromise(runnable)

API Coverage

  • Search by title or IMDb ID
  • Detailed movie/series information
  • Season and episode details

Related Packages

License

MIT