Skip to main content Link Search Menu Expand Document (external link)

Multipart overview

Added in v1.0.0


Table of contents


constructors

makeChannel

Signature

export declare const makeChannel: <IE>(
  headers: Record<string, string>,
  bufferSize?: number
) => Channel.Channel<never, IE, Chunk.Chunk<Uint8Array>, unknown, MultipartError | IE, Chunk.Chunk<Part>, unknown>

Added in v1.0.0

makeConfig

Signature

export declare const makeConfig: (headers: Record<string, string>) => Effect.Effect<never, never, Multipasta.BaseConfig>

Added in v1.0.0

toPersisted

Signature

export declare const toPersisted: (
  stream: Stream.Stream<never, MultipartError, Part>,
  writeFile?: ((path: string, file: File) => Effect.Effect<FileSystem.FileSystem, MultipartError, void>) | undefined
) => Effect.Effect<FileSystem.FileSystem | Path.Path | Scope.Scope, MultipartError, Persisted>

Added in v1.0.0

errors

MultipartError

Signature

export declare const MultipartError: (reason: MultipartError["reason"], error: unknown) => MultipartError

Added in v1.0.0

MultipartError (interface)

Signature

export interface MultipartError extends Data.Case {
  readonly [ErrorTypeId]: ErrorTypeId
  readonly _tag: "MultipartError"
  readonly reason: "FileTooLarge" | "FieldTooLarge" | "BodyTooLarge" | "TooManyParts" | "InternalError" | "Parse"
  readonly error: unknown
}

Added in v1.0.0

fiber refs

fieldMimeTypes

Signature

export declare const fieldMimeTypes: FiberRef.FiberRef<Chunk.Chunk<string>>

Added in v1.0.0

maxFieldSize

Signature

export declare const maxFieldSize: FiberRef.FiberRef<FileSystem.Size>

Added in v1.0.0

maxFileSize

Signature

export declare const maxFileSize: FiberRef.FiberRef<Option.Option<FileSystem.Size>>

Added in v1.0.0

maxParts

Signature

export declare const maxParts: FiberRef.FiberRef<Option.Option<number>>

Added in v1.0.0

withFieldMimeTypes

Signature

export declare const withFieldMimeTypes: {
  (mimeTypes: ReadonlyArray<string>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
  <R, E, A>(effect: Effect.Effect<R, E, A>, mimeTypes: ReadonlyArray<string>): Effect.Effect<R, E, A>
}

Added in v1.0.0

withMaxFieldSize

Signature

export declare const withMaxFieldSize: {
  (size: FileSystem.SizeInput): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
  <R, E, A>(effect: Effect.Effect<R, E, A>, size: FileSystem.SizeInput): Effect.Effect<R, E, A>
}

Added in v1.0.0

withMaxFileSize

Signature

export declare const withMaxFileSize: {
  (size: Option.Option<FileSystem.SizeInput>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
  <R, E, A>(effect: Effect.Effect<R, E, A>, size: Option.Option<FileSystem.SizeInput>): Effect.Effect<R, E, A>
}

Added in v1.0.0

withMaxParts

Signature

export declare const withMaxParts: {
  (count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
  <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
}

Added in v1.0.0

models

Field (interface)

Signature

export interface Field extends Part.Proto {
  readonly _tag: "Field"
  readonly key: string
  readonly contentType: string
  readonly value: string
}

Added in v1.0.0

File (interface)

Signature

export interface File extends Part.Proto {
  readonly _tag: "File"
  readonly key: string
  readonly name: string
  readonly contentType: string
  readonly content: Stream.Stream<never, MultipartError, Uint8Array>
}

Added in v1.0.0

Part (type alias)

Signature

export type Part = Field | File

Added in v1.0.0

Persisted (interface)

Signature

export interface Persisted {
  readonly [key: string]: ReadonlyArray<PersistedFile> | string
}

Added in v1.0.0

PersistedFile (interface)

Signature

export interface PersistedFile extends Part.Proto {
  readonly _tag: "PersistedFile"
  readonly key: string
  readonly name: string
  readonly contentType: string
  readonly path: string
}

Added in v1.0.0

refinements

isField

Signature

export declare const isField: (u: unknown) => u is Field

Added in v1.0.0

schema

filesSchema

Signature

export declare const filesSchema: Schema.Schema<readonly PersistedFile[], readonly PersistedFile[]>

Added in v1.0.0

schemaJson

Signature

export declare const schemaJson: <I, A>(
  schema: Schema.Schema<I, A>
) => {
  (field: string): (persisted: Persisted) => Effect.Effect<never, ParseResult.ParseError, A>
  (persisted: Persisted, field: string): Effect.Effect<never, ParseResult.ParseError, A>
}

Added in v1.0.0

schemaPersisted

Signature

export declare const schemaPersisted: <I extends Persisted, A>(
  schema: Schema.Schema<I, A>
) => (persisted: Persisted) => Effect.Effect<never, ParseResult.ParseError, A>

Added in v1.0.0

type ids

ErrorTypeId

Signature

export declare const ErrorTypeId: typeof ErrorTypeId

Added in v1.0.0

ErrorTypeId (type alias)

Signature

export type ErrorTypeId = typeof ErrorTypeId

Added in v1.0.0

TypeId

Signature

export declare const TypeId: typeof TypeId

Added in v1.0.0

TypeId (type alias)

Signature

export type TypeId = typeof TypeId

Added in v1.0.0

utils

Part (namespace)

Added in v1.0.0

Proto (interface)

Signature

export interface Proto {
  readonly [TypeId]: TypeId
  readonly _tag: string
}

Added in v1.0.0