Skip to content

Commit

Permalink
Fix TransformValdiationOptions typo
Browse files Browse the repository at this point in the history
  • Loading branch information
MichalLytek committed Feb 2, 2018
1 parent 5e8dd6a commit 672db0b
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 21 deletions.
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,15 @@ async (req, res) => {

There is available the `transformAndValidate` function with three overloads:
```ts
function transformAndValidate<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValdiationOptions): Promise<T|T[]>;
function transformAndValidate<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValidationOptions): Promise<T|T[]>;
```

```ts
function transformAndValidate<T extends object>(classType: ClassType<T>, object: object, options?: TransformValdiationOptions): Promise<T>;
function transformAndValidate<T extends object>(classType: ClassType<T>, object: object, options?: TransformValidationOptions): Promise<T>;
```

```ts
function transformAndValidate<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValdiationOptions): Promise<T[]>;
function transformAndValidate<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValidationOptions): Promise<T[]>;
```

Be aware that if you validate json string, the return type is a `Promise` of `T` or `T[]` so you need to assert the returned type if you know the shape of json:
Expand Down Expand Up @@ -126,7 +126,7 @@ type ClassType<T> = {
- `options` - optional options object, it has two optional properties
```ts
interface TransformValdiationOptions {
interface TransformValidationOptions {
validator?: ValidatorOptions;
transformer?: ClassTransformOptions;
}
Expand All @@ -139,6 +139,9 @@ The [class-transformer](https://github.com/pleerock/class-transformer) and [clas

## Release notes

**0.4.1**
* fix `TransformValdiationOptions` interface name typo (depreacte in favour of `TransformValidationOptions`)

**0.4.0**

* added `transformAndValidateSync` function for synchronous validation
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "class-transformer-validator",
"version": "0.4.0",
"version": "0.4.1",
"description": "A simple wrapper around class-transformer and class-validator which provides nice and programmer-friendly API.",
"license": "MIT",
"readmeFilename": "README.md",
Expand Down
32 changes: 17 additions & 15 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,45 @@ export interface ClassType<T> {
new (...args: any[]): T;
}

export interface TransformValdiationOptions {
export interface TransformValidationOptions {
validator?: ValidatorOptions;
transformer?: ClassTransformOptions;
}

export { TransformValidationOptions as TransformValdiationOptions };

/**
* Asynchronously converts JSON string to class (constructor) object.
* Reject the promise if the object parsed from string doesn't pass validation.
*
* @param {ClassType<T>} classType The Class to parse and convert JSON to
* @param {string} jsonString The string containing JSON
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {Promise<T|T[]>} Promise of object of given class T or array of objects given class T
*/
export function transformAndValidate<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValdiationOptions): Promise<T|T[]>;
export function transformAndValidate<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValidationOptions): Promise<T|T[]>;
/**
* Asynchronously converts array of plain objects to array of class (constructor) objects.
* Reject the promise if any of the objects in array doesn't pass validation.
*
* @param {ClassType<T>} classType The Class to convert object to
* @param {object} array The array of objects to instantiate and validate
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {Promise<T>} Promise of object of given class T
*/
export function transformAndValidate<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValdiationOptions): Promise<T[]>;
export function transformAndValidate<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValidationOptions): Promise<T[]>;
/**
* Asynchronously converts plain object to class (constructor) object.
* Reject the promise if the object doesn't pass validation.
*
* @param {ClassType<T>} classType The Class to convert object to
* @param {object} object The object to instantiate and validate
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {Promise<T>} Promise of object of given class T
*/
export function transformAndValidate<T extends object>(classType: ClassType<T>, object: object, options?: TransformValdiationOptions): Promise<T>;
export function transformAndValidate<T extends object>(classType: ClassType<T>, object: object, options?: TransformValidationOptions): Promise<T>;

export function transformAndValidate<T extends object>(classType: ClassType<T>, somethingToTransform: string|object|object[], options?: TransformValdiationOptions): Promise<T> {
export function transformAndValidate<T extends object>(classType: ClassType<T>, somethingToTransform: string|object|object[], options?: TransformValidationOptions): Promise<T> {
return new Promise((resolve, reject) => {
let object: object;
if (typeof somethingToTransform === "string") {
Expand Down Expand Up @@ -70,32 +72,32 @@ export function transformAndValidate<T extends object>(classType: ClassType<T>,
*
* @param {ClassType<T>} classType The Class to parse and convert JSON to
* @param {string} jsonString The string containing JSON
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {T|T[]} Object of given class T or array of objects given class T
*/
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValdiationOptions): T|T[];
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, jsonString: string, options?: TransformValidationOptions): T|T[];
/**
* Synchronously converts array of plain objects to array of class (constructor) objects.
* Throws error if any of the objects in array doesn't pass validation.
*
* @param {ClassType<T>} classType The Class to convert object to
* @param {object} array The array of objects to instantiate and validate
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {T[]} Array of objects of given class T
*/
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValdiationOptions): T[];
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, array: object[], options?: TransformValidationOptions): T[];
/**
* Synchronously converts plain object to class (constructor) object.
* Throws error if the object doesn't pass validation.
*
* @param {ClassType<T>} classType The Class to convert object to
* @param {object} object The object to instantiate and validate
* @param {TransformValdiationOptions} [options] Optional options object for class-validator and class-transformer
* @param {TransformValidationOptions} [options] Optional options object for class-validator and class-transformer
* @returns {T} Object of given class T
*/
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, object: object, options?: TransformValdiationOptions): T;
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, object: object, options?: TransformValidationOptions): T;

export function transformAndValidateSync<T extends object>(classType: ClassType<T>, somethingToTransform: string|object|object[], options?: TransformValdiationOptions): T {
export function transformAndValidateSync<T extends object>(classType: ClassType<T>, somethingToTransform: string|object|object[], options?: TransformValidationOptions): T {
let object: object;
if (typeof somethingToTransform === "string") {
object = JSON.parse(somethingToTransform);
Expand Down

0 comments on commit 672db0b

Please sign in to comment.