Skip to content

Commit e72d765

Browse files
committed
feat(IObjectComparer): New common object comparer interface
1 parent a4fe683 commit e72d765

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface IObjectComparer {
2+
areEquivalent (objA: any, objB: any): boolean
3+
}

src/common/stringifyComparer.model.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { IObjectComparer } from './objectComparer.interface'
2+
3+
/**
4+
* Compares objects using `JSON.stringify`
5+
*/
6+
export class StringifyComparer implements IObjectComparer {
7+
public areEquivalent (objA: any, objB: any): boolean {
8+
return JSON.stringify(objA) === JSON.stringify(objB)
9+
}
10+
}

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ export { Suit } from './models/card/suit.model'
55
export { ChipColor } from './models/chip/chipColor.model'
66
export { ChipColorType } from './models/chip/chipColorType.model'
77
export { Difficulty } from './models/player/difficulty.model'
8+
export { IObjectComparer } from './common/objectComparer.interface'
9+
export { StringifyComparer } from './common/stringifyComparer.model'
810

911
export { ICard } from './models/card/card.interface'
1012
export { IRankSet } from './models/card/rankSet.interface'

0 commit comments

Comments
 (0)