Could you add support for async scalar resolvers, e.g. add optional encodeAsync and decodeAsync methods:
export type ScalarResolver = {
encode?: (s: unknown) => string;
encodeAsync?: (s: unknown) => Promise<string>;
decode?: (s: unknown) => unknown;
decodeAsync?: (s: unknown) => Promise<unknown>;
};