2.5.0 • Published 6 months ago

@banxware/simple-repository v2.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Simple Repository

Install

$ npm i @banxware/simple-repository

Usage

Dynamo Repository

type User {
  id: string
  firstName: string
  lastName: string
  active: boolean
}

class UserRepository extends SimpleDynamoRepository<User> {
  async findActiveUsersByName(name: string): Promise<User> {
    return await this.findByQuery({
      IndexName: 'name',
      KeyConditionExpression: 'name = :name AND active = :active',
      ExpressionAttributeValues: {
        ':name': name,
        ':active': true,
      },
    })
  }
}

const userRepository = new UserRepository(new DynamoDBClient({ region: 'eu-central-1' }), 'users')

userRepository.save({ id: 'uuid', firstName: 'john', lastName: 'doe', active: true })
userRepository.save({ id: 'uuid2', firstName: 'john', lastName: 'travolta', active: false })
userRepository.findOne('uuid')
userRepository.findActiveUsersByName('john')
userRepository.findAll()

S3 Repository

type File {
  key: string
  content: Uint8Array | string | Buffer
  contentType: string
  someMetaData: string
}

class FileRepository extends SimpleS3Repository<File> {
}

const s3Repository = new FileRepository<File>(new S3Client({ region: 'eu-central-1' }), 'my-bucket')

s3Repository.save({ key: 'foo/bar.json', content: '{}', contentType: 'application/json', someMetaData: 'super cool file' })
s3Repository.getOneAsString('foo/bar.json')
s3Repository.getOneMetadata('foo/bar.json')
s3Repository.deleteOne('foo/bar.json')
s3Repository.getSignedUploadUrl('foo/another-file.json')
s3Repository.getSignedDownloadUrl('foo/another-file.json')
s3Repository.list('foo')
2.5.0

6 months ago

2.4.0

6 months ago

2.3.0

6 months ago

2.2.0

6 months ago

1.8.0

1 year ago

1.7.0

1 year ago

1.6.0

1 year ago

2.1.0

1 year ago

1.4.0

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago