Skip to content

lduburas/ts-transformer-dates

Repository files navigation

TypeScript Transformer Dates

Converts object properties from number or string to Date according to provided type having Date fields. Aimed to convert parsed JSON objects to match given TypeScript interface.

Inspired by ts-transformer-keys.

Requirement

TypeScript >= 2.4.1

How to use

In TypeScript source

import { toDates } from 'ts-transformer-dates';

interface Range {
    dateFrom: Date;
    dateTo: Date;
    notes: string;
}

const value = {
    dateFrom: '2020-01-12T03:25:45.000Z', // date as ISO string
    dateTo: 1578799545000, // date as number of milliseconds
    notes: 'brown fox'
};

toDates<Range>(value);

console.log(value);

Outputs:

{
  dateFrom: 2020-01-12T03:25:45.000Z,
  dateTo: 2020-02-12T03:25:45.000Z,
  notes: 'brown fox'
}

webpack

// webpack.config.js
const datesTransformer = require('ts-transformer-dates/lib/transformer').default;

module.exports = {
    // ...
    module: {
        rules: [
            {
                test: /\.ts$/,
                loader: 'ts-loader', // or 'awesome-typescript-loader'
                options: {
                    // make sure not to set `transpileOnly: true` here, otherwise it will not work
                    getCustomTransformers: program => ({
                        before: [datesTransformer(program)]
                    })
                }
            }
        ]
    }
};

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published