eslint-plugin-fp-ts
Version:
fp-ts ESLint rules
53 lines (52 loc) • 2.05 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.configs = exports.rules = void 0;
var fp_ts_1 = require("fp-ts");
var function_1 = require("fp-ts/function");
var potentialErrors = {
"no-lib-imports": require("./rules/no-lib-imports").default,
"no-pipeable": require("./rules/no-pipeable").default,
"no-module-imports": require("./rules/no-module-imports").default,
"no-discarded-pure-expression": require("./rules/no-discarded-pure-expression")
.default,
};
var suggestions = {
"prefer-traverse": require("./rules/prefer-traverse").default,
"no-redundant-flow": require("./rules/no-redundant-flow").default,
"prefer-chain": require("./rules/prefer-chain").default,
"prefer-bimap": require("./rules/prefer-bimap").default,
};
exports.rules = __assign(__assign({}, potentialErrors), suggestions);
exports.configs = {
recommended: {
plugins: ["fp-ts"],
rules: {
"fp-ts/no-lib-imports": "error",
"fp-ts/no-pipeable": "error",
},
},
"recommended-requiring-type-checking": {
plugins: ["fp-ts"],
rules: {
"fp-ts/no-discarded-pure-expression": "error",
},
},
all: {
plugins: ["fp-ts"],
rules: __assign(__assign({}, configuredRules(potentialErrors, "error")), configuredRules(suggestions, "warn")),
},
};
function configuredRules(rules, level) {
return (0, function_1.pipe)(rules, fp_ts_1.record.keys, fp_ts_1.array.map(function (k) { return ["fp-ts/".concat(k), level]; }), fp_ts_1.record.fromFoldable(fp_ts_1.semigroup.getFirstSemigroup(), fp_ts_1.array.Foldable));
}
;