stampit-org / stampit TypeScript 3K 101 OOP is better with stamps: Composable object factories. javascript oop stamps object-oriented