@emanuelsan/mosaic-js
Version:
Composable Markdown-based AI instruction engine for Node.js
19 lines • 717 B
JavaScript
import { Data, Effect, Either, Schema } from 'effect';
// Schema Definitions
export const TemplateVariablesSchema = Schema.Record({
key: Schema.String,
value: Schema.Union(Schema.String, Schema.Number),
});
// Error Definitions
class VariablesDecodeError extends Data.TaggedError('VariablesDecodeError') {
}
export const decodeVariables = (variables) => Effect.gen(function* () {
const decoded = Schema.decodeUnknownEither(TemplateVariablesSchema)(variables);
if (Either.isLeft(decoded)) {
return yield* Effect.fail(new VariablesDecodeError({
message: 'Template variables are not valid.',
}));
}
return decoded.right;
});
//# sourceMappingURL=decodeVariables.js.map