Skip to content

Commit

Permalink
feat(api): trying typeorm's value transformers
Browse files Browse the repository at this point in the history
  • Loading branch information
xmlking committed May 4, 2019
1 parent 6353e4b commit 65bfdce
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 0 deletions.
16 changes: 16 additions & 0 deletions apps/api/src/app/shared/transformers/big-number.transformer.ts
@@ -0,0 +1,16 @@
// import { ValueTransformer } from 'typeorm'
// import { BigNumber } from 'bignumber.js'
//
// export class BigNumberTransformer implements ValueTransformer {
//
// to(value: BigNumber): string | undefined {
// if (!value) return undefined
// return value.toString(10)
// }
//
// from(value: string): BigNumber | undefined {
// if (!value) return undefined
// return new BigNumber(value, 10)
// }
//
// }
13 changes: 13 additions & 0 deletions apps/api/src/app/shared/transformers/board.transformer.ts
@@ -0,0 +1,13 @@
import { ValueTransformer } from 'typeorm';

export class BoardTransformer implements ValueTransformer {
// Store the board as a stringified 3d string array,
// Access the board as a parsed 3d array.
to(board: string[][]): string {
return JSON.stringify(board);
}

from(stringified: string): string[] {
return JSON.parse(stringified);
}
}
3 changes: 3 additions & 0 deletions apps/api/src/app/shared/transformers/index.ts
@@ -0,0 +1,3 @@
export { BoardTransformer } from './board.transformer';
export { LowerCaseTransformer } from './lower-case.transformer';
export { PasswordTransformer } from './password.transformer';
10 changes: 10 additions & 0 deletions apps/api/src/app/shared/transformers/lower-case.transformer.ts
@@ -0,0 +1,10 @@
import { ValueTransformer } from 'typeorm';

export class LowerCaseTransformer implements ValueTransformer {
to(entityValue: string) {
return entityValue.toLocaleLowerCase();
}
from(databaseValue: string) {
return databaseValue;
}
}
11 changes: 11 additions & 0 deletions apps/api/src/app/shared/transformers/password.transformer.ts
@@ -0,0 +1,11 @@
import * as crypto from 'crypto';
import { ValueTransformer } from 'typeorm';

export class PasswordTransformer implements ValueTransformer {
to(value) {
return crypto.createHmac('sha256', value).digest('hex');
}
from(value) {
return value;
}
}

0 comments on commit 65bfdce

Please sign in to comment.