1.3.0 • Published 15 days ago

@effect-aws/client-s3 v1.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
15 days ago

@effect-aws/client-s3

Installation

npm install --save @effect-aws/client-s3

Usage

With default S3Client instance:

import { S3Service, DefaultS3ServiceLayer } from "@effect-aws/client-s3";

const program = Effect.flatMap(S3Service, (s3) => s3.headObject(args));

const result = pipe(
  program,
  Effect.provide(DefaultS3ServiceLayer),
  Effect.runPromise,
);

With custom S3Client instance:

import {
  S3Service,
  BaseS3ServiceLayer,
  S3ClientInstance,
} from "@effect-aws/client-s3";

const program = Effect.flatMap(S3Service, (s3) => s3.headObject(args));

const S3ClientInstanceLayer = Layer.succeed(
  S3ClientInstance,
  new S3Client({ region: "eu-central-1" }),
);

const result = await pipe(
  program,
  Effect.provide(BaseS3ServiceLayer),
  Effect.provide(S3ClientInstanceLayer),
  Effect.runPromise,
);

With custom S3Client configuration:

import {
  S3Service,
  BaseS3ServiceLayer,
  DefaultS3ClientConfigLayer,
  S3ClientInstance,
  S3ClientInstanceConfig,
} from "@effect-aws/client-s3";

const program = Effect.flatMap(S3Service, (s3) => s3.headObject(args));

const S3ClientInstanceLayer = Layer.provide(
  Layer.effect(
    S3ClientInstance,
    S3ClientInstanceConfig.pipe(
      Effect.map(
        (config) => new S3Client({ ...config, region: "eu-central-1" }),
      ),
    ),
  ),
  DefaultS3ClientConfigLayer,
);

const result = await pipe(
  program,
  Effect.provide(BaseS3ServiceLayer),
  Effect.provide(S3ClientInstanceLayer),
  Effect.runPromiseExit,
);

or map over DefaultS3ClientConfigLayer layer context and update the configuration...

1.3.0

15 days ago

1.2.0

2 months ago

1.1.1

2 months ago

1.0.2

3 months ago

1.1.0

3 months ago

1.0.1

3 months ago

1.0.0

4 months ago

0.7.0

5 months ago

0.6.0

5 months ago

0.5.0

6 months ago

0.4.1

6 months ago

0.4.0

7 months ago

0.3.0

7 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.1.0

8 months ago