HN user

DrakeDeaton

27 karma
Posts1
Comments9
View on HN

100% if you want composability go with a battle tested solution! That code really just demos how simple working the Result pattern can be.

There's certainly situations where this pattern creates some tricky ambiguity, but more often than not Result is quite an ergonomic pattern to work with.

In case it's useful for anyone, here is a simple plug-in-play TypeScript version:

```

type Ok<T = void> = T extends undefined ? { ok: true; } : { ok: true; val: T; };

type Err<E extends ResultError = ResultError> = { ok: false; err: E; };

type Result<T = void, E = ResultError> = { ok: true; val: T; } | { ok: false; err: E | ResultError; };

class ResultError extends Error { override name = "ResultError" as const; context?: unknown; constructor (message: string, context?: unknown) { super(message); this.context = context; } }

const ok = <T = void>(val?: T): Ok<T> => ({ ok: true, val: val, } as Ok<T>);

const err = (errType: string, context: unknown = {}): Err<ResultError> => ({ err: new ResultError(errType, context), ok: false, });

```

```

const actionTaker = await op().then(ok).catch(err);

if (result.ok) // handle error

else // use result

```

I will be forever grateful to the developer first introduced to this pattern!

The Barbican 1 year ago

Part of the thinking behind the Barbican's somewhat hidden entrances to the estate and tts maze-like layout was that they would reduce foot traffic, and it totally worked. Not many people use the public estate high-walks as a shortcut to get across the City. This has a wonderful effect wherein you're surrounded by the hustle and bustle of the City, while being just a touch insulated from it.

I lived there for the better part of a year and it completely changed my perspective on living in London. More city-life should be like the Barbican.

At StageUp, we're building a ticketed streaming service for the performing arts industry. We are about to receive 250K investment and we're looking for more software engineers to come work at StageUp and help us build this product. We have a highly competent CTO and a well-architected code-base. We have many customers lined up for our service, and we know exactly what we need to be building. This is an opportunity for someone to get in at the ground floor of a company with an exciting trajectory. Please do get in touch if this offer intrigues you!

The skills we're looking for are: Must Have: Public portfolio of work TypeScript (or good with JavaScript) Experience with building RESTful APIs Experience with SQL databases Experience with Single Page Applications, React or Angular or Vue Good to Have: Angular Express.js PostgreSQL, TypeORM SASS Unit/Integration testing using Jest Bonus: Docker, Google Cloud Platform