@ovotech/avro-logical-types
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

Avro Logical Types

Some logical types for avsc.

Using

yarn add @ovotech/avro-logical-types
import { DateType } from '@ovotech/avro-logical-types';
import { Type } from 'avsc';

const type = Type.forSchema(
  {
    type: 'record',
    fields: [{ name: 'kind', type: { type: 'enum', symbols: ['CAT', 'DOG'] } }, { name: 'name', type: 'string' }],
  },
  { logicalTypes: { date: DateType } },
);

Or with @ovotech/avro-stream

import { AvroDeserializer } from '@ovotech/avro-stream';
import { DateType, TimestampType } from '@ovotech/avro-logical-types';

const deserializer = new AvroDeserializer('http://localhost:8081', {
  logicalTypes: { date: DateType, 'timestamp-millis': TimestampType },
});

Available Types

DateType: Dates serialised as epoch days (number of days since epoch), deserialised as ISO String

DateAsDateType: Dates serialised as epoch days (number of days since epoch), deserialised as an instance of Date

TimestampType: Dates serialised as timestamp, deserialised as ISO String

TimestampAsDateType: Dates serialised as timestamp, deserialised as an instance of Date

DecimalType: Decimal, up to 64bit (or 63 bit signed), serialised as bytes, deserialised as an instance of decimal.js

Running the tests

You can run the tests with:

yarn test

Coding style (linting, etc) tests

Style is maintained with prettier and tslint

yarn lint

Deployment

Deployment is preferment by lerna automatically on merge / push to master, but you'll need to bump the package version numbers yourself. Only updated packages with newer versions will be pushed to the npm registry.

Contributing

Have a bug? File an issue with a simple example that reproduces this so we can take a look & confirm.

Want to make a change? Submit a PR, explain why it's useful, and make sure you've updated the docs (this file) and the tests (see test folder).

License

This project is licensed under Apache 2 - see the LICENSE file for details

/@ovotech/avro-logical-types/

    Package Sidebar

    Install

    npm i @ovotech/avro-logical-types

    Weekly Downloads

    381

    Version

    1.1.2

    License

    Apache-2.0

    Unpacked Size

    21 kB

    Total Files

    31

    Last publish

    Collaborators

    • kaluza-serverless-caretakers
    • vigneshwaran.kalid
    • anuprasanna
    • ranjithanataraj
    • shashankkushwaha
    • sowruvadhanasekar
    • kaluza-billing-coordinator
    • caal-bot
    • pauldanielrichard
    • ovox
    • oep-accounts-bot
    • ovo.backstage.admins
    • bookings-team
    • orion-bot
    • bizval-bot
    • oeptariffs
    • props
    • metering-reads-health-bot
    • ovotech-identity
    • paceteamkaluza
    • trading-and-dispatch
    • retail-payg-tech
    • accrecovo
    • ovo.trading.tech
    • qe-team
    • ovotech-smart-thermostat
    • rise-team
    • engagement-insights
    • myovo-self-serve-service-account
    • kaluza-typescript-caretakers-bot
    • ovotech-air-source-heat-pump
    • saravana16496
    • veenav
    • abiramia
    • mars-rover
    • ape-team
    • kaluza-devex
    • ohs-aurora
    • kaluza-rnr
    • ipa-bot
    • kawbot
    • data.discovery.ovo
    • ovotech-sg
    • ovotech-qs
    • ovoenergyapps
    • homemoves
    • ovo-oot-bot
    • cp-ui-tooling
    • ovo-bit-tech
    • sir_hiss