const tryCatchMessage = "Do not use try/catch blocks in Effect domain code. Model failures with Effect instead; at true adapter boundaries use a narrow suppression with a boundary reason. Skill: wrdn-effect-typed-errors; React useAtomSet mutation handlers use wrdn-effect-promise-exit.";const throwMessage = "Do not throw errors in Effect domain code. Model failures with Effect.fail or typed error values instead; at true adapter boundaries use a narrow suppression with a boundary reason. Skill: wrdn-effect-typed-errors.";export default { meta: { type: "problem", docs: { description: "Disallow try/catch blocks and throw statements.", }, }, create(context) { return { TryStatement(node) { context.report({ node, message: tryCatchMessage }); }, ThrowStatement(node) { context.report({ node, message: throwMessage }); }, }; },};
const tryCatchMessage =
"Do not use try/catch blocks in Effect domain code. Model failures with Effect instead; at true adapter boundaries use a narrow suppression with a boundary reason. Skill: wrdn-effect-typed-errors; React useAtomSet mutation handlers use wrdn-effect-promise-exit.";
const throwMessage =
"Do not throw errors in Effect domain code. Model failures with Effect.fail or typed error values instead; at true adapter boundaries use a narrow suppression with a boundary reason. Skill: wrdn-effect-typed-errors.";
export default {
meta: {
type: "problem",
docs: {
description: "Disallow try/catch blocks and throw statements.",
},
},
create(context) {
return {
TryStatement(node) {
context.report({ node, message: tryCatchMessage });
},
ThrowStatement(node) {
context.report({ node, message: throwMessage });
},
};
},
};