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

2.48.0 • Public • Published

@smartsoft001/domain-core

Installation

npm i @smartsoft001/domain-core

Repositories

IItemRepository

create - Creates a new entity in the storage system.

Param Description
item: T The entity to be created.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entity is successfully created.

createMany - Creates multiple entities in the storage system.

Param Description
list: T[] The list of entities to be created.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when all entities are successfully created.

update - Updates an existing entity in the storage system.

Param Description
item: T The entity to be updated.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entity is successfully updated.

updatePartial - Partially updates an existing entity in the storage system.

Param Description
item:

Partial<T>& { id: string }

The partial entity data to be updated along with the entity's ID.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entity is successfully updated.

updatePartialManyByCriteria - Partially updates multiple entities that match the specified criteria.

Param Description
criteria: any The criteria used to select the entities to be updated.
set:

Partial<T>

The partial data to be set on the matching entities.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entities are successfully updated.

updatePartialManyBySpecification - Partially updates multiple entities that match the specified specification.

Param Description
spec: ISpecification The specification used to select the entities to be updated.
set:

Partial<T>

The partial data to be set on the matching entities.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entities are successfully updated.

delete - Deletes an entity from the storage system by its ID.

Param Description
id: string @param {string} id - The ID of the entity to be deleted.
user: IUser The user performing the operation.
options?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<void> that resolves when the entity is successfully deleted.

getById - Retrieves an entity from the storage system by its ID.

Param Description
id: string The ID of the entity to be deleted.
repoOptions?: IItemRepositoryOptions Optional parameters for the operation, including transaction context.

returns a Promise<T> that resolves to the retrieved entity.

getByCriteria - Retrieves entities from the storage system that match the specified criteria.

Param Description
criteria: any The criteria used to select the entities.
options?: any Optional parameters for the operation, such as pagination or sorting.

returns a Promise<{ data: T[]; totalCount: number }> that resolves to an object containing the matching entities and the total count.

getBySpecification - Retrieves entities from the storage system that match the specified specification.

Param Description
spec: ISpecification The specification used to select the entities.
options?: any Optional parameters for the operation, such as pagination or sorting.

returns a Promise<{ data: T[]; totalCount: number }> that resolves to an object containing the matching entities and the total count.

countBySpecification - Counts the number of entities in the storage system that match the specified specification.

Param Description
spec: ISpecification The specification used to select the entities.

returns a Promise<number> that resolves to a count of matching entities.

clear - Counts the number of entities in the storage system that match the specified specification.

Param Description
user: IUser | IItemRepositoryOptions The user performing the operation.

returns a Promise<void> that resolves when the storage system is cleared.

changesByCriteria - Returns an observable that emits changes to entities that match the specified criteria.

Param Description
criteria: any The criteria used to select the entities to observe.

returns a Observable<any> that emits changes to the matching entities.

IAttachmentRepository

upload - Uploads a file to the storage system.

Param Description
data: Object The data required to upload the file.
data.id: string A unique identifier for the file.
data.fileName: string The name of the file to be uploaded.
data.stream: Stream The stream of the file to be uploaded.
data.mimeType: string The MIME type of the file.
data.encoding: string The encoding of the file.
options?:

{ streamCallback?: (r: any) => void }

A callback function that gets invoked with the upload stream.

returns a Promise<void> that when the upload is complete. throws an error if the upload fails.

Example usage with MongoDB implementation:

const repository = new MongoAttachmentRepository(config);

const fileStream = fs.createReadStream('/path/to/file');

await repository.upload({
  id: 'unique-file-id',
  fileName: 'example.txt',
  stream: fileStream,
  mimeType: 'text/plain',
  encoding: 'utf-8'
}, {
  streamCallback: (writeStream) => {
    console.log('Upload started');
  }
});

console.log('File uploaded successfully');

getInfo - Retrieves metadata information about a file stored in the storage system.

Param Description
id: string The unique identifier of the file.

returns a Promise<{ fileName: string, contentType: string, length: number } | null> that resolves to an object containing file metadata, or null if the file is not found.

throws an error if retrieving the file information fails.

getStream - Retrieves a stream for downloading a file from the storage system.

Param Description
id: string The unique identifier of the file.
options?:

{ start: number; end: number }

The starting and ending byte positions for the stream.

returns a Promise<any> that resolves to a readable stream of the file.

throws an error if retrieving the file stream fails.

delete - Deletes a file from the storage system.

Param Description
id: string The unique identifier of the file.

returns a Promise<void> that resolves when the file has been successfully deleted.

throws an error if the deletion fails.

Dependencies (3)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @smartsoft001/domain-core

    Weekly Downloads

    53

    Version

    2.48.0

    License

    none

    Unpacked Size

    34.6 kB

    Total Files

    14

    Last publish

    Collaborators

    • emiljuchnikowski