@effect-line/core
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

@effect-line/core

Core utilities and configurations for LINE Platform integration with Effect

Features

  • Type-safe configuration management
  • Secure handling of sensitive credentials
  • Shared utilities and helpers
  • Effect-based error handling

Installation

pnpm add @effect-line/core

Usage

Configuration

The package provides type-safe configuration management through Effect's Config module:

import { Effect, Config } from "effect"
import { LineConfig } from "@effect-line/core"

// Set up environment variables:
// LINE_CHANNEL_ID=your-channel-id
// LINE_CHANNEL_SECRET=your-channel-secret
// LINE_CHANNEL_ACCESS_TOKEN=your-channel-access-token

const program = Effect.gen(function* () {
  const config = yield* LineConfig
  
  // Channel ID is accessible
  console.log("Channel ID:", config.channelId)
  
  // Secret and Token are securely redacted
  console.log("Config:", config) // Sensitive fields are hidden
})

// Run with environment variables
program.pipe(
  Effect.provide(LineConfig.layer),
  Effect.runPromise
)

Type Safety

All configurations are fully type-safe:

interface LineConfig {
  readonly channelId: string
  readonly channelSecret: Secret
  readonly channelAccessToken: Secret
}

Error Handling

The configuration includes built-in error handling:

const programWithErrors = program.pipe(
  Effect.catchTag("ConfigError", (error) => 
    Console.error("Configuration error:", error.message)
  )
)

Utilities

The package also provides common utilities:

import { createSignature, validateSignature } from "@effect-line/core"

// Create a signature for webhook validation
const signature = createSignature(channelSecret, body)

// Validate an incoming webhook
const isValid = validateSignature(channelSecret, body, signature)

Related Packages

  • @effect-line/messaging-api - LINE Messaging API integration
  • @effect-line/cli - Command-line interface for LINE operations

License

MIT License - see the LICENSE file for details

Readme

Keywords

none

Package Sidebar

Install

npm i @effect-line/core

Weekly Downloads

69

Version

0.1.0

License

MIT

Unpacked Size

16.2 kB

Total Files

19

Last publish

Collaborators

  • hychen