Effect CommunityEC
Effect Community3y ago
11 replies
Nomadin

Transforming "object.method" APIs to dual or data-last APIs using `effect-ts` stack

Is there any utility in effect-ts stack that easily transforms existing "object.method" apis to dual apis (or at least data-last apis)?

class SomeLibraryClass {
  method1(n: number): Promise<string> {}
  method2(n: number, s: string): Promise<void> {}
}

const instance = new SomeLibraryClass()

const {
  method1,
  method2,
} = magic(SomeLibraryClass);

method1(1)(instance) 
// Nice to have: Effect<never, unknown, string> 
// At least:     Promise<string>


method2(10, 'abc')(instance)
// Nice to have: Effect<never, unknown, void> 
// At least:     void
Was this page helpful?