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