@movie-effect/omdb
v0.1.0
Published
An Effect-based client for the OMDb API
Maintainers
Readme
@movie-effect/omdb
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-nodeFeatures
- 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.
- Go to omdbapi.com/apikey.aspx
- Choose a plan (free tier: 1,000 requests/day)
- Enter your email and submit
- 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_KEYQuick 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
- @movie-effect/omdb-cli - CLI for OMDb
- @movie-effect/core - Shared utilities
