typescript-stringcaster
v1.1.0
Published
stringcaster for typescript with decorators
Downloads
2
Maintainers
Readme
Stringcaster for Typescript
Implementation of stringcaster package for use with Typescript classes and decorators.
See stringcaster docs for cast options.
This package includes all the functionality of stringcaster and
adds the envVar
property decorator on top of it.
Getting Started
Let's say you have .env files like this:
# /.env
MINIFY=true
DEFAULT_LOCALE=en-GB
SUPPORTED_LOCALES=en-GB,en-US,es,jp
PORT=3000
INFO_OBJECT=date: 2017, author: John Doe
And you need to create a config
object using this data.
Now using the envVar
decorator you can do the following:
// /config.ts
import {
envVar,
toBoolean,
toString,
toNumber,
toArray,
toObject
} from "typescript-stringcaster";
import * as dotenv from "dotenv";
dotenv.config();
const source = process.env; // you actually have to pass this
class Config {
@envVar({ cast: toBoolean, defaultValue: false, source })
MINIFY: boolean;
@envVar({ cast: toString, defaultValue: "en-US", source })
DEFAULT_LOCALE: string;
@envVar({ cast: toArray, source })
SUPPORTED_LOCALES: [string];
@envVar({ cast: toNumber, source })
PORT: number;
@envVar({ cast: toObject, source, sourceKey: "INFO_OBJECT" })
INFO: object;
}
export default new Config();
Docs
@envVar decorator
Parameters:
source
(required) - A object containing the values source (e. g. process.env)defaultValue
optional - default value that will be provided ifsource
does not contain the value for this keysourceKey
optional - Use if the key insource
object is different from the property namecast
optional - A convert function, will be called on the property value. Can be either a cast function from stringcaster or custom function.