Feature: Basic Events, Models and Projections #2
@ -1,9 +1,9 @@
|
||||
import { ImageMimeType } from "../../../files/mime-type.js";
|
||||
import { DomainFile } from "./domain-file.js";
|
||||
import { StoredFile } from "./stored-file.js";
|
||||
|
||||
/**
|
||||
* Represents an image file.
|
||||
*/
|
||||
export interface ImageFile extends DomainFile {
|
||||
export interface ImageFile extends StoredFile {
|
||||
mimeType: ImageMimeType;
|
||||
}
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
export * from "./domain-file.js";
|
||||
export * from "./image-file.js";
|
||||
export * from "./stored-file.js";
|
||||
|
||||
@ -4,6 +4,6 @@ import { Entity } from "../entity.js";
|
||||
/**
|
||||
* Represents a file as managed by the domain.
|
||||
*/
|
||||
export interface DomainFile extends BaseFile, Entity {
|
||||
export interface StoredFile extends BaseFile, Entity {
|
||||
url: string;
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
import { PosixDate } from "../../time/posix-date.js";
|
||||
import { TaggedVariant } from "../../variant/variant.js";
|
||||
import { UUID } from "../types/uuid.js";
|
||||
|
||||
@ -10,3 +11,12 @@ export interface Event<TTag extends string = string, TPayload = any>
|
||||
streamId: UUID;
|
||||
payload: TPayload;
|
||||
}
|
||||
|
||||
/**
|
||||
* A stored event is an inmutable event, already stored, with it's version in the stream and timestamp.
|
||||
*/
|
||||
export interface StoredEvent<TTag extends string = string, TPayload = any>
|
||||
extends Readonly<Event<TTag, TPayload>> {
|
||||
readonly version: number;
|
||||
readonly timestamp: PosixDate;
|
||||
}
|
||||
|
||||
@ -25,11 +25,6 @@ interface BasicUseCaseDefinition<
|
||||
*/
|
||||
isAuthRequired: boolean;
|
||||
|
||||
/**
|
||||
* The required permissions to execute the use case.
|
||||
**/
|
||||
requiredPermissions?: string[];
|
||||
|
||||
/**
|
||||
* The use case function.
|
||||
*/
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
export * from "./base-file.js";
|
||||
export * from "./bytes.js";
|
||||
export * from "./in-memory-file.js";
|
||||
export * from "./invalid-file-type-error.js";
|
||||
export * from "./is-in-memory-file.js";
|
||||
export * from "./is-mime-type.js";
|
||||
export * from "./is-uploaded-file.js";
|
||||
export * from "./media-file.js";
|
||||
export * from "./mime-type.js";
|
||||
export * from "./uploaded-file.js";
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import validator from "validator";
|
||||
import { isRecord } from "../record/is-record.js";
|
||||
import { InMemoryFile } from "./uploaded-file.js";
|
||||
import { InMemoryFile } from "./in-memory-file.js";
|
||||
|
||||
const { isBase64, isMimeType } = validator;
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import { DomainFile } from "../domain/entity/files/domain-file.js";
|
||||
import { StoredFile } from "../domain/entity/files/stored-file.js";
|
||||
|
||||
/**
|
||||
* Represents a media file, either an image, a video or an audio file.
|
||||
*/
|
||||
export interface MediaFile extends DomainFile {
|
||||
export interface MediaFile extends StoredFile {
|
||||
mimeType: `image/${string}` | `video/${string}` | `audio/${string}`;
|
||||
}
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
import { TaggedError } from "../error/tagged-error.js";
|
||||
import { UnexpectedError } from "../error/unexpected-error.js";
|
||||
|
||||
/**
|
||||
* Un Result representa el resultado de una operación
|
||||
* que puede ser un valor de tipo `TValue` o un error `TError`.
|
||||
*/
|
||||
export type Result<TValue, TError extends TaggedError<string>> =
|
||||
| TValue
|
||||
| TError;
|
||||
export type Result<
|
||||
TValue,
|
||||
TError extends TaggedError<string> = UnexpectedError,
|
||||
> = TValue | TError;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user