typeorm-aurora-data-api-driver
    TypeScript icon, indicating that this package has built-in type declarations

    2.3.5 • Public • Published

    typeorm-aurora-data-api-driver

    typeorm-aurora-data-api-driver npm downloads GitHub license npm downloads

    NPM

    Description

    This project is a bridge between TypeORM and Aurora Data API. It allows you to migrate to Aurora Data API which is extremely useful is serverless environments by only modifying the connection configuration.

    Supports both Postgres and MySQL.

    Supports casting (allows using UUID, enums, properly formats date and time columns).

    Data API currently destroys any timezone information returning everything in UTC. Be aware of that when using Postgres 'timestamp with time zone', 'time with time zone' and similar types.

    How to use

    • Enable the Data API on your database

    • Install the driver by running either yarn add typeorm-aurora-data-api-driver or npm i --save typeorm-aurora-data-api-driver

    • Modify your connection configuration to look similar to this:

        const connection = await createConnection({
          type: 'aurora-data-api',
          database: 'test-db',
          secretArn: 'arn:aws:secretsmanager:eu-west-1:537011205135:secret:xxxxxx/xxxxxx/xxxxxx',
          resourceArn: 'arn:aws:rds:eu-west-1:xxxxx:xxxxxx:xxxxxx',
          region: 'eu-west-1',
          serviceConfigOptions: {
            // additional options to pass to the aws-sdk RDS client
          },
          formatOptions: {
            // additional format options to pass to the Data API client
          }
        })

    Or if you're using Postgres:

        const connection = await createConnection({
          type: 'aurora-data-api-pg',
          database: 'test-db',
          secretArn: 'arn:aws:secretsmanager:eu-west-1:537011205135:secret:xxxxxx/xxxxxx/xxxxxx',
          resourceArn: 'arn:aws:rds:eu-west-1:xxxxx:xxxxxx:xxxxxx',
          region: 'eu-west-1',
          serviceConfigOptions: {
            // additional options to pass to the aws-sdk RDS client
          },
          formatOptions: {
            // additional format options to pass to the Data API client
          }
        })

    After you done that you can use the connection just as you did with any other connection:

      const postRepository = connection.getRepository(Post)
    
      const post = new Post()
    
      post.title = 'My First Post'
      post.text = 'Post Text'
      post.likesCount = 4
    
      const insertResult = await postRepository.save(post)

    Additional configuration options

    This driver uses the Data API Client. To pass additional options to it, use serviceConfigOptions and formatOptions properties.

    Automatic Casting

    By default, this driver will try to cast entity fields on insert and update queries using entity metadata and Data API client's type casting. This allows using UUID and enum columns which wouldn't be possible before. To disable this behavior, set the formatOptions.castParameters to false.

    Parameter Casting

    You can specify casting for query parameters as well. To do that pass an object with properties value and cast

    const dbPost = await postRepository.findOne({
      title: {
        value: 'f01bdc12-ed72-4260-86aa-b7123f08cab9',
        cast: 'uuid',
      },
    })

    Alternative way of automatically cast your UUID ids is to enable automatic casting of UUID (based on regex) by passing enableUuidHack: true to formatOptions.

    Keywords

    none

    Install

    npm i typeorm-aurora-data-api-driver

    DownloadsWeekly Downloads

    12,181

    Version

    2.3.5

    License

    MIT

    Unpacked Size

    353 kB

    Total Files

    48

    Last publish

    Collaborators

    • ayankovsky