@effect/language-service 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_mjs/index.mjs +0 -37
- package/_mjs/index.mjs.map +1 -1
- package/_mjs/refactors/index.mjs +1 -5
- package/_mjs/refactors/index.mjs.map +1 -1
- package/_mjs/utils/AST.mjs +0 -35
- package/_mjs/utils/AST.mjs.map +1 -1
- package/index.js +3 -40
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/refactors/index.d.ts +0 -2
- package/refactors/index.d.ts.map +1 -1
- package/refactors/index.js +1 -5
- package/refactors/index.js.map +1 -1
- package/utils/AST.d.ts +0 -3
- package/utils/AST.d.ts.map +1 -1
- package/utils/AST.js +0 -38
- package/utils/AST.js.map +1 -1
- package/_mjs/config.mjs +0 -24
- package/_mjs/config.mjs.map +0 -1
- package/_mjs/diagnostics/definition.mjs +0 -4
- package/_mjs/diagnostics/definition.mjs.map +0 -1
- package/_mjs/diagnostics/ensureGetCallTrace.mjs +0 -48
- package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +0 -1
- package/_mjs/diagnostics/index.mjs +0 -7
- package/_mjs/diagnostics/index.mjs.map +0 -1
- package/_mjs/diagnostics/noSyncWithConstant.mjs +0 -37
- package/_mjs/diagnostics/noSyncWithConstant.mjs.map +0 -1
- package/_mjs/eslint-rules/index.mjs +0 -8
- package/_mjs/eslint-rules/index.mjs.map +0 -1
- package/_mjs/eslint-rules/no-curry-arrow.mjs +0 -33
- package/_mjs/eslint-rules/no-curry-arrow.mjs.map +0 -1
- package/_mjs/eslint-rules/utils.mjs +0 -8
- package/_mjs/eslint-rules/utils.mjs.map +0 -1
- package/_mjs/refactors/noSyncWithConstant.mjs +0 -30
- package/_mjs/refactors/noSyncWithConstant.mjs.map +0 -1
- package/_mjs/refactors/removeCurryArrow.mjs +0 -18
- package/_mjs/refactors/removeCurryArrow.mjs.map +0 -1
- package/config.d.ts +0 -10
- package/config.d.ts.map +0 -1
- package/config.js +0 -31
- package/config.js.map +0 -1
- package/diagnostics/definition.d.ts +0 -15
- package/diagnostics/definition.d.ts.map +0 -1
- package/diagnostics/definition.js +0 -10
- package/diagnostics/definition.js.map +0 -1
- package/diagnostics/ensureGetCallTrace.d.ts +0 -3
- package/diagnostics/ensureGetCallTrace.d.ts.map +0 -1
- package/diagnostics/ensureGetCallTrace.js +0 -57
- package/diagnostics/ensureGetCallTrace.js.map +0 -1
- package/diagnostics/index.d.ts +0 -6
- package/diagnostics/index.d.ts.map +0 -1
- package/diagnostics/index.js +0 -15
- package/diagnostics/index.js.map +0 -1
- package/diagnostics/noSyncWithConstant.d.ts +0 -10
- package/diagnostics/noSyncWithConstant.d.ts.map +0 -1
- package/diagnostics/noSyncWithConstant.js +0 -49
- package/diagnostics/noSyncWithConstant.js.map +0 -1
- package/eslint-rules/index.d.ts +0 -9
- package/eslint-rules/index.d.ts.map +0 -1
- package/eslint-rules/index.js +0 -16
- package/eslint-rules/index.js.map +0 -1
- package/eslint-rules/no-curry-arrow.d.ts +0 -5
- package/eslint-rules/no-curry-arrow.d.ts.map +0 -1
- package/eslint-rules/no-curry-arrow.js +0 -42
- package/eslint-rules/no-curry-arrow.js.map +0 -1
- package/eslint-rules/utils.d.ts +0 -5
- package/eslint-rules/utils.d.ts.map +0 -1
- package/eslint-rules/utils.js +0 -16
- package/eslint-rules/utils.js.map +0 -1
- package/refactors/noSyncWithConstant.d.ts +0 -3
- package/refactors/noSyncWithConstant.d.ts.map +0 -1
- package/refactors/noSyncWithConstant.js +0 -39
- package/refactors/noSyncWithConstant.js.map +0 -1
- package/refactors/removeCurryArrow.d.ts +0 -3
- package/refactors/removeCurryArrow.d.ts.map +0 -1
- package/refactors/removeCurryArrow.js +0 -27
- package/refactors/removeCurryArrow.js.map +0 -1
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { createDiagnostic } from "@effect/language-service/diagnostics/definition";
|
|
2
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
3
|
-
import { pipe } from "@effect/language-service/utils/Function";
|
|
4
|
-
import * as Ch from "@effect/language-service/utils/ReadonlyArray";
|
|
5
|
-
export default /*#__PURE__*/createDiagnostic({
|
|
6
|
-
code: 1003,
|
|
7
|
-
category: "none",
|
|
8
|
-
apply: (ts, program) => sourceFile => {
|
|
9
|
-
const typeChecker = program.getTypeChecker();
|
|
10
|
-
function isEffectType(type) {
|
|
11
|
-
const symbol = type.getSymbol();
|
|
12
|
-
if (!symbol) return false;
|
|
13
|
-
if (symbol.declarations) {
|
|
14
|
-
return symbol.declarations.some(declaration => declaration.getSourceFile().fileName.includes("@effect/io/Effect"));
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function isPipeableCombinator(type) {
|
|
18
|
-
const signatures = type.getCallSignatures();
|
|
19
|
-
if (signatures.length === 0) return false;
|
|
20
|
-
return signatures.some(isPipeableCallSignatureReturningEffect);
|
|
21
|
-
}
|
|
22
|
-
function isPipeableCallSignatureReturningEffect(signature) {
|
|
23
|
-
if (signature.getParameters().length !== 1) return false;
|
|
24
|
-
return isEffectType(signature.getReturnType());
|
|
25
|
-
}
|
|
26
|
-
function shouldBeTraced(signature) {
|
|
27
|
-
const returnType = signature.getReturnType();
|
|
28
|
-
return isEffectType(returnType) || isPipeableCombinator(returnType);
|
|
29
|
-
}
|
|
30
|
-
function isGetCallTraceCallExpression(node) {
|
|
31
|
-
if (!ts.isCallExpression(node)) return false;
|
|
32
|
-
const expression = node.expression;
|
|
33
|
-
if (!ts.isIdentifier(expression)) return false;
|
|
34
|
-
return expression.text === "getCallTrace";
|
|
35
|
-
}
|
|
36
|
-
return pipe(AST.collectAll(ts)(sourceFile, ts.isArrowFunction), Ch.concat(AST.collectAll(ts)(sourceFile, ts.isFunctionDeclaration)), Ch.filter(node => !!node.body), Ch.filter(node => typeChecker.getTypeAtLocation(node).getCallSignatures().some(shouldBeTraced)), Ch.filter(node => {
|
|
37
|
-
const body = node.body;
|
|
38
|
-
if (!ts.isBlock(body)) return true;
|
|
39
|
-
const firstStatement = body.statements[0];
|
|
40
|
-
if (!firstStatement) return true;
|
|
41
|
-
return Ch.isEmpty(AST.collectAll(ts)(firstStatement, isGetCallTraceCallExpression));
|
|
42
|
-
}), Ch.map(node => ({
|
|
43
|
-
node,
|
|
44
|
-
messageText: `This function should be traced. getCallTrace() should be the first line of the body.`
|
|
45
|
-
})));
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=ensureGetCallTrace.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureGetCallTrace.mjs","mappings":"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","names":["createDiagnostic","AST","pipe","Ch","code","category","apply","ts","program","sourceFile","typeChecker","getTypeChecker","isEffectType","type","symbol","getSymbol","declarations","some","declaration","getSourceFile","fileName","includes","isPipeableCombinator","signatures","getCallSignatures","length","isPipeableCallSignatureReturningEffect","signature","getParameters","getReturnType","shouldBeTraced","returnType","isGetCallTraceCallExpression","node","isCallExpression","expression","isIdentifier","text","collectAll","isArrowFunction","concat","isFunctionDeclaration","filter","body","getTypeAtLocation","isBlock","firstStatement","statements","isEmpty","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/ensureGetCallTrace.ts"],"sourcesContent":[null]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import ensureGetCallTrace from "@effect/language-service/diagnostics/ensureGetCallTrace";
|
|
2
|
-
import noSyncWithConstant from "@effect/language-service/diagnostics/noSyncWithConstant";
|
|
3
|
-
export default {
|
|
4
|
-
noSyncWithConstant,
|
|
5
|
-
ensureGetCallTrace
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,kBAAkB,MAAM,yDAAyD;AACxF,OAAOC,kBAAkB,MAAM,yDAAyD;AAExF,eAAe;EAAEA,kBAAkB;EAAED;AAAkB,CAAE","names":["ensureGetCallTrace","noSyncWithConstant"],"sourceRoot":"","sources":["../../../src/diagnostics/index.ts"],"sourcesContent":[null]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { createDiagnostic } from "@effect/language-service/diagnostics/definition";
|
|
2
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
3
|
-
import { pipe } from "@effect/language-service/utils/Function";
|
|
4
|
-
import * as Ch from "@effect/language-service/utils/ReadonlyArray";
|
|
5
|
-
export const noSyncWithConstantMethodsMap = {
|
|
6
|
-
sync: "succeed",
|
|
7
|
-
failSync: "fail",
|
|
8
|
-
dieSync: "die"
|
|
9
|
-
};
|
|
10
|
-
export function isEffectSyncWithConstantCall(ts) {
|
|
11
|
-
return (moduleIdentifier, methodName) => node => {
|
|
12
|
-
if (AST.isCombinatorCall(ts)(moduleIdentifier, methodName)(node) && node.arguments.length === 1) {
|
|
13
|
-
const arg = node.arguments[0];
|
|
14
|
-
if (ts.isArrowFunction(arg) && AST.isLiteralConstantValue(ts)(arg.body)) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return false;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export default /*#__PURE__*/createDiagnostic({
|
|
22
|
-
code: 1002,
|
|
23
|
-
category: "warning",
|
|
24
|
-
apply: ts => sourceFile => {
|
|
25
|
-
const effectIdentifier = AST.getEffectModuleIdentifier(ts)(sourceFile);
|
|
26
|
-
let result = Ch.empty;
|
|
27
|
-
for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
|
|
28
|
-
const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
|
|
29
|
-
result = pipe(result, Ch.concat(pipe(AST.collectAll(ts)(sourceFile, isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.map(node => ({
|
|
30
|
-
node,
|
|
31
|
-
messageText: `Value is constant, instead of using ${methodName} you could use ${suggestedMethodName}.`
|
|
32
|
-
})))));
|
|
33
|
-
}
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=noSyncWithConstant.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noSyncWithConstant.mjs","mappings":"AACA,SAASA,gBAAgB,QAAQ,iDAAiD;AAClF,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,OAAO,MAAMC,4BAA4B,GAAG;EAC1CC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,MAAM;EAChBC,OAAO,EAAE;CACV;AAED,OAAM,SAAUC,4BAA4B,CAACC,EAAqB;EAChE,OAAO,CAACC,gBAAwB,EAAEC,UAAkB,KACjDC,IAAa,IAA+B;IAC3C,IAAIX,GAAG,CAACY,gBAAgB,CAACJ,EAAE,CAAC,CAACC,gBAAgB,EAAEC,UAAU,CAAC,CAACC,IAAI,CAAC,IAAIA,IAAI,CAACE,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MAC/F,MAAMC,GAAG,GAAGJ,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC;MAC7B,IAAIL,EAAE,CAACQ,eAAe,CAACD,GAAG,CAAC,IAAIf,GAAG,CAACiB,sBAAsB,CAACT,EAAE,CAAC,CAACO,GAAG,CAACG,IAAI,CAAC,EAAE;QACvE,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd,CAAC;AACL;AAEA,4BAAenB,gBAAgB,CAAC;EAC9BoB,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGb,EAAE,IACPc,UAAU,IAAI;IACb,MAAMC,gBAAgB,GAAGvB,GAAG,CAACwB,yBAAyB,CAAChB,EAAE,CAAC,CAACc,UAAU,CAAC;IAEtE,IAAIG,MAAM,GAA0CvB,EAAE,CAACwB,KAAK;IAE5D,KAAK,MAAMhB,UAAU,IAAIiB,MAAM,CAACC,IAAI,CAACzB,4BAA4B,CAAC,EAAE;MAClE,MAAM0B,mBAAmB,GAAW1B,4BAA4B,CAACO,UAAU,CAAE;MAC7Ee,MAAM,GAAGxB,IAAI,CACXwB,MAAM,EACNvB,EAAE,CAAC4B,MAAM,CACP7B,IAAI,CACFD,GAAG,CAAC+B,UAAU,CAACvB,EAAE,CAAC,CAACc,UAAU,EAAEf,4BAA4B,CAACC,EAAE,CAAC,CAACe,gBAAgB,EAAEb,UAAU,CAAC,CAAC,EAC9FR,EAAE,CAAC8B,GAAG,CAAErB,IAAI,KAAM;QAChBA,IAAI;QACJsB,WAAW,EAAE,uCAAuCvB,UAAU,kBAAkBmB,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAOJ,MAAM;EACf;CACH,CAAC","names":["createDiagnostic","AST","pipe","Ch","noSyncWithConstantMethodsMap","sync","failSync","dieSync","isEffectSyncWithConstantCall","ts","moduleIdentifier","methodName","node","isCombinatorCall","arguments","length","arg","isArrowFunction","isLiteralConstantValue","body","code","category","apply","sourceFile","effectIdentifier","getEffectModuleIdentifier","result","empty","Object","keys","suggestedMethodName","concat","collectAll","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,YAAY,MAAM,sDAAsD;AAE/E,MAAMC,KAAK,GAAG;EACZ,gBAAgB,EAAED;CACnB;AAED,eAAe;EACbC;CACD","names":["noCurryArrow","rules"],"sourceRoot":"","sources":["../../../src/eslint-rules/index.ts"],"sourcesContent":[null]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as utils from "@effect/language-service/eslint-rules/utils";
|
|
2
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
3
|
-
import * as ts from "typescript/lib/tsserverlibrary";
|
|
4
|
-
export default /*#__PURE__*/utils.createRule({
|
|
5
|
-
create(context) {
|
|
6
|
-
const parserServices = utils.getParserServices(context);
|
|
7
|
-
return {
|
|
8
|
-
ArrowFunctionExpression(node) {
|
|
9
|
-
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
10
|
-
if (AST.isCurryArrow(ts)(tsNode)) {
|
|
11
|
-
context.report({
|
|
12
|
-
messageId: "noCurryArrow",
|
|
13
|
-
node
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
},
|
|
19
|
-
name: "no-curry-arrow",
|
|
20
|
-
meta: {
|
|
21
|
-
docs: {
|
|
22
|
-
description: "There should be no curry arrow functions, like T.map((_) => log(_)) should be T.map(log) instead",
|
|
23
|
-
recommended: "warn"
|
|
24
|
-
},
|
|
25
|
-
messages: {
|
|
26
|
-
noCurryArrow: "There should be no curry arrow functions, like T.map((_) => log(_)) should be T.map(log) instead"
|
|
27
|
-
},
|
|
28
|
-
type: "suggestion",
|
|
29
|
-
schema: []
|
|
30
|
-
},
|
|
31
|
-
defaultOptions: []
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=no-curry-arrow.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-curry-arrow.mjs","mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,6CAA6C;AACpE,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,OAAO,KAAKC,EAAE,MAAM,gCAAgC;AAEpD,4BAAeF,KAAK,CAACG,UAAU,CAAC;EAC9BC,MAAM,CAACC,OAAO;IACZ,MAAMC,cAAc,GAAGN,KAAK,CAACO,iBAAiB,CAACF,OAAO,CAAC;IAEvD,OAAO;MACLG,uBAAuB,CAACC,IAAI;QAC1B,MAAMC,MAAM,GAAGJ,cAAc,CAACK,qBAAqB,CAACC,GAAG,CAACH,IAAI,CAAC;QAC7D,IAAIR,GAAG,CAACY,YAAY,CAACX,EAAE,CAAC,CAACQ,MAAM,CAAC,EAAE;UAChCL,OAAO,CAACS,MAAM,CAAC;YACbC,SAAS,EAAE,cAAc;YACzBN;WACD,CAAC;;MAEN;KACD;EACH,CAAC;EACDO,IAAI,EAAE,gBAAgB;EACtBC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,kGAAkG;MAC/GC,WAAW,EAAE;KACd;IACDC,QAAQ,EAAE;MACRC,YAAY,EAAE;KACf;IACDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;GACT;EACDC,cAAc,EAAE;CACjB,CAAC","names":["utils","AST","ts","createRule","create","context","parserServices","getParserServices","ArrowFunctionExpression","node","tsNode","esTreeNodeToTSNodeMap","get","isCurryArrow","report","messageId","name","meta","docs","description","recommended","messages","noCurryArrow","type","schema","defaultOptions"],"sourceRoot":"","sources":["../../../src/eslint-rules/no-curry-arrow.ts"],"sourcesContent":[null]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @repo-tooling/dprint/dprint */
|
|
2
|
-
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
3
|
-
const {
|
|
4
|
-
getParserServices
|
|
5
|
-
} = ESLintUtils;
|
|
6
|
-
const createRule = /*#__PURE__*/ESLintUtils.RuleCreator(name => `https://example.com/rule/${name}`);
|
|
7
|
-
export { getParserServices, createRule };
|
|
8
|
-
//# sourceMappingURL=utils.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","mappings":"AAAA;AACA,SAASA,WAAW,QAAQ,0BAA0B;AAEtD,MAAM;EAACC;AAAiB,CAAC,GAAGD,WAAW;AAEvC,MAAME,UAAU,gBAAGF,WAAW,CAACG,WAAW,CACvCC,IAAI,IAAK,4BAA4BA,IAAI,EAAE,CAC7C;AAED,SAASH,iBAAiB,EAAEC,UAAU","names":["ESLintUtils","getParserServices","createRule","RuleCreator","name"],"sourceRoot":"","sources":["../../../src/eslint-rules/utils.ts"],"sourcesContent":[null]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { isEffectSyncWithConstantCall, noSyncWithConstantMethodsMap } from "@effect/language-service/diagnostics/noSyncWithConstant";
|
|
2
|
-
import { createRefactor } from "@effect/language-service/refactors/definition";
|
|
3
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
4
|
-
import { pipe } from "@effect/language-service/utils/Function";
|
|
5
|
-
import * as O from "@effect/language-service/utils/Option";
|
|
6
|
-
import * as Ch from "@effect/language-service/utils/ReadonlyArray";
|
|
7
|
-
export default /*#__PURE__*/createRefactor({
|
|
8
|
-
name: "effect/addPipe",
|
|
9
|
-
description: "Rewrite using pipe",
|
|
10
|
-
apply: ts => (sourceFile, textRange) => {
|
|
11
|
-
const effectIdentifier = AST.getEffectModuleIdentifier(ts)(sourceFile);
|
|
12
|
-
const nodes = pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.fromIterable, Ch.filter(AST.isNodeInRange(textRange)));
|
|
13
|
-
for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
|
|
14
|
-
const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
|
|
15
|
-
const refactor = pipe(nodes, Ch.filter(isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.head, O.map(node => ({
|
|
16
|
-
description: `Rewrite ${methodName} to ${suggestedMethodName}`,
|
|
17
|
-
apply: changeTracker => {
|
|
18
|
-
const arg = node.arguments[0];
|
|
19
|
-
if (ts.isArrowFunction(arg) && AST.isLiteralConstantValue(ts)(arg.body)) {
|
|
20
|
-
const newNode = ts.factory.updateCallExpression(node, ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectIdentifier), suggestedMethodName), node.typeArguments, ts.factory.createNodeArray([arg.body]));
|
|
21
|
-
changeTracker.replaceNode(sourceFile, node, newNode);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
})));
|
|
25
|
-
if (O.isSome(refactor)) return refactor;
|
|
26
|
-
}
|
|
27
|
-
return O.none;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=noSyncWithConstant.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,SACEA,4BAA4B,EAC5BC,4BAA4B,QACvB,yDAAyD;AAChE,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,oBAAoB;EACjCC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KAAI;IACxB,MAAMC,gBAAgB,GAAGV,GAAG,CAACW,yBAAyB,CAACJ,EAAE,CAAC,CAACC,UAAU,CAAC;IAEtE,MAAMI,KAAK,GAAGX,IAAI,CAChBD,GAAG,CAACa,uBAAuB,CAACN,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACW,OAAO,EACVX,EAAE,CAACY,YAAY,EACfZ,EAAE,CAACa,MAAM,CAAChB,GAAG,CAACiB,aAAa,CAACR,SAAS,CAAC,CAAC,CACxC;IAED,KAAK,MAAMS,UAAU,IAAIC,MAAM,CAACC,IAAI,CAACtB,4BAA4B,CAAC,EAAE;MAClE,MAAMuB,mBAAmB,GAAWvB,4BAA4B,CAACoB,UAAU,CAAE;MAC7E,MAAMI,QAAQ,GAAGrB,IAAI,CACnBW,KAAK,EACLT,EAAE,CAACa,MAAM,CAACnB,4BAA4B,CAACU,EAAE,CAAC,CAACG,gBAAgB,EAAEQ,UAAU,CAAC,CAAC,EACzEf,EAAE,CAACoB,IAAI,EACPrB,CAAC,CAACsB,GAAG,CAAEC,IAAI,KAAM;QACfpB,WAAW,EAAE,WAAWa,UAAU,OAAOG,mBAAmB,EAAE;QAC9Df,KAAK,EAAGoB,aAA2C,IAAI;UACrD,MAAMC,GAAG,GAAGF,IAAI,CAACG,SAAS,CAAC,CAAC,CAAC;UAC7B,IAAIrB,EAAE,CAACsB,eAAe,CAACF,GAAG,CAAC,IAAI3B,GAAG,CAAC8B,sBAAsB,CAACvB,EAAE,CAAC,CAACoB,GAAG,CAACI,IAAI,CAAC,EAAE;YACvE,MAAMC,OAAO,GAAGzB,EAAE,CAAC0B,OAAO,CAACC,oBAAoB,CAC7CT,IAAI,EACJlB,EAAE,CAAC0B,OAAO,CAACE,8BAA8B,CACvC5B,EAAE,CAAC0B,OAAO,CAACG,gBAAgB,CAAC1B,gBAAgB,CAAC,EAC7CW,mBAAmB,CACpB,EACDI,IAAI,CAACY,aAAa,EAClB9B,EAAE,CAAC0B,OAAO,CAACK,eAAe,CAAC,CAACX,GAAG,CAACI,IAAI,CAAC,CAAC,CACvC;YAEDL,aAAa,CAACa,WAAW,CAAC/B,UAAU,EAAEiB,IAAI,EAAEO,OAAO,CAAC;;QAExD;OACD,CAAC,CAAC,CACJ;MACD,IAAI9B,CAAC,CAACsC,MAAM,CAAClB,QAAQ,CAAC,EAAE,OAAOA,QAAQ;;IAGzC,OAAOpB,CAAC,CAACuC,IAAI;EACf;CACH,CAAC","names":["isEffectSyncWithConstantCall","noSyncWithConstantMethodsMap","createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","effectIdentifier","getEffectModuleIdentifier","nodes","getNodesContainingRange","reverse","fromIterable","filter","isNodeInRange","methodName","Object","keys","suggestedMethodName","refactor","head","map","node","changeTracker","arg","arguments","isArrowFunction","isLiteralConstantValue","body","newNode","factory","updateCallExpression","createPropertyAccessExpression","createIdentifier","typeArguments","createNodeArray","replaceNode","isSome","none"],"sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.ts"],"sourcesContent":[null]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { createRefactor } from "@effect/language-service/refactors/definition";
|
|
2
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
3
|
-
import { pipe } from "@effect/language-service/utils/Function";
|
|
4
|
-
import * as O from "@effect/language-service/utils/Option";
|
|
5
|
-
import * as Ch from "@effect/language-service/utils/ReadonlyArray";
|
|
6
|
-
export default /*#__PURE__*/createRefactor({
|
|
7
|
-
name: "effect/removeCurryArrow",
|
|
8
|
-
description: "Remove arrow",
|
|
9
|
-
apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(AST.isCurryArrow(ts)), Ch.head, O.map(node => ({
|
|
10
|
-
description: `Remove arrow ${AST.getHumanReadableName(sourceFile, node.body)}`,
|
|
11
|
-
apply: changeTracker => {
|
|
12
|
-
if (!ts.isCallExpression(node.body)) return;
|
|
13
|
-
const newNode = node.body.expression;
|
|
14
|
-
changeTracker.replaceNode(sourceFile, node, newNode);
|
|
15
|
-
}
|
|
16
|
-
})))
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=removeCurryArrow.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeCurryArrow.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,yBAAyB;EAC/BC,WAAW,EAAE,cAAc;EAC3BC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACQ,MAAM,CAACX,GAAG,CAACY,YAAY,CAACL,EAAE,CAAC,CAAC,EAC/BJ,EAAE,CAACU,IAAI,EACPX,CAAC,CAACY,GAAG,CAAEC,IAAI,KAAM;IACfV,WAAW,EAAE,gBAAgBL,GAAG,CAACgB,oBAAoB,CAACR,UAAU,EAAEO,IAAI,CAACE,IAAI,CAAC,EAAE;IAC9EX,KAAK,EAAGY,aAAa,IAAI;MACvB,IAAI,CAACX,EAAE,CAACY,gBAAgB,CAACJ,IAAI,CAACE,IAAI,CAAC,EAAE;MACrC,MAAMG,OAAO,GAAGL,IAAI,CAACE,IAAI,CAACI,UAAU;MACpCH,aAAa,CAACI,WAAW,CAACd,UAAU,EAAEO,IAAI,EAAEK,OAAO,CAAC;IACtD;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isCurryArrow","head","map","node","getHumanReadableName","body","changeTracker","isCallExpression","newNode","expression","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removeCurryArrow.ts"],"sourcesContent":[null]}
|
package/config.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { DiagnosticDefinitionMessageCategory } from "@effect/language-service/diagnostics/definition";
|
|
2
|
-
export interface LanguageServicePluginConfig {
|
|
3
|
-
diagnostic: Record<number, DiagnosticDefinitionMessageCategory>;
|
|
4
|
-
}
|
|
5
|
-
type Decoder<A> = (value: unknown) => A;
|
|
6
|
-
export declare const parseLanguageServicePluginConfig: Decoder<{
|
|
7
|
-
diagnostics: Record<string, "none" | "suggestion" | "warning" | "error">;
|
|
8
|
-
}>;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=config.d.ts.map
|
package/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,iDAAiD,CAAA;AAE1G,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAA;CAChE;AAED,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;AAsBvC,eAAO,MAAM,gCAAgC;;EAE3C,CAAA"}
|
package/config.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parseLanguageServicePluginConfig = void 0;
|
|
7
|
-
function literal(...types) {
|
|
8
|
-
return def => value => types.indexOf(value) > -1 ? value : def;
|
|
9
|
-
}
|
|
10
|
-
function record(type) {
|
|
11
|
-
return value => {
|
|
12
|
-
if (typeof value !== "object" || value === null) return {};
|
|
13
|
-
return Object.keys(value).reduce((obj, key) => ({
|
|
14
|
-
...obj,
|
|
15
|
-
[key]: type(value[key])
|
|
16
|
-
}), {});
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
function struct(types) {
|
|
20
|
-
return value => {
|
|
21
|
-
return Object.keys(types).reduce((obj, key) => ({
|
|
22
|
-
...obj,
|
|
23
|
-
[key]: types[key](typeof value !== "object" || value === null ? null : value[key])
|
|
24
|
-
}), {});
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
const parseLanguageServicePluginConfig = /*#__PURE__*/struct({
|
|
28
|
-
diagnostics: /*#__PURE__*/record( /*#__PURE__*/literal("none", "suggestion", "warning", "error")("none"))
|
|
29
|
-
});
|
|
30
|
-
exports.parseLanguageServicePluginConfig = parseLanguageServicePluginConfig;
|
|
31
|
-
//# sourceMappingURL=config.js.map
|
package/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","mappings":";;;;;;AAQA,SAASA,OAAO,CAA+B,GAAGC,KAAQ;EACxD,OAAQC,GAAc,IAA0BC,KAAK,IAAKF,KAAK,CAACG,OAAO,CAACD,KAAY,CAAC,GAAG,CAAC,CAAC,GAAGA,KAAY,GAAGD,GAAG;AACjH;AAEA,SAASG,MAAM,CAAIC,IAAgB;EACjC,OAAQH,KAAc,IAAI;IACxB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE;IAC1D,OAAOI,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CAACM,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,MAAM;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGL,IAAI,CAACH,KAAK,CAACQ,GAAG,CAAC;IAAC,CAAE,CAAC,EAAE,EAAE,CAAC;EAC3F,CAAC;AACH;AAEA,SAASC,MAAM,CAA6CX,KAAQ;EAClE,OAAQE,KAAc,IAAI;IACxB,OAAOI,MAAM,CAACC,IAAI,CAACP,KAAK,CAAC,CAACQ,MAAM,CAC9B,CAACC,GAAG,EAAEC,GAAG,MAAM;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGV,KAAK,CAACU,GAAG,CAAE,CAAC,OAAOR,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,GAAG,IAAI,GAAGA,KAAK,CAACQ,GAAG,CAAC;IAAC,CAAE,CAAC,EAC/G,EAA0C,CAC3C;EACH,CAAC;AACH;AAEO,MAAME,gCAAgC,gBAAGD,MAAM,CAAC;EACrDE,WAAW,eAAET,MAAM,eAACL,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;CAC9E,CAAC;AAAA","names":["literal","types","def","value","indexOf","record","type","Object","keys","reduce","obj","key","struct","parseLanguageServicePluginConfig","diagnostics"],"sourceRoot":"","sources":["../../src/config.ts"],"sourcesContent":[null]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type * as AST from "@effect/language-service/utils/AST";
|
|
2
|
-
import type * as Ch from "@effect/language-service/utils/ReadonlyArray";
|
|
3
|
-
import type ts from "typescript/lib/tsserverlibrary";
|
|
4
|
-
export interface DiagnosticDefinitionMessage {
|
|
5
|
-
node: ts.Node;
|
|
6
|
-
messageText: string;
|
|
7
|
-
}
|
|
8
|
-
export type DiagnosticDefinitionMessageCategory = "none" | "suggestion" | "warning" | "error";
|
|
9
|
-
export interface DiagnosticDefinition {
|
|
10
|
-
code: number;
|
|
11
|
-
category: DiagnosticDefinitionMessageCategory;
|
|
12
|
-
apply: (ts: AST.TypeScriptApi, program: ts.Program) => (sourceFile: ts.SourceFile) => Ch.Chunk<DiagnosticDefinitionMessage>;
|
|
13
|
-
}
|
|
14
|
-
export declare function createDiagnostic(definition: DiagnosticDefinition): DiagnosticDefinition;
|
|
15
|
-
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,KAAK,EAAE,MAAM,8CAA8C,CAAA;AAEvE,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAE7F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,mCAAmC,CAAA;IAC7C,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,CACrD,UAAU,EAAE,EAAE,CAAC,UAAU,KACtB,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,wBAEhE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","mappings":";;;;;;AAoBM,SAAUA,gBAAgB,CAACC,UAAgC;EAC/D,OAAOA,UAAU;AACnB","names":["createDiagnostic","definition"],"sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureGetCallTrace.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/ensureGetCallTrace.ts"],"names":[],"mappings":";AAKA,wBA0DE"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
|
|
8
|
-
var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/AST"));
|
|
9
|
-
var _Function = /*#__PURE__*/require("@effect/language-service/utils/Function");
|
|
10
|
-
var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/ReadonlyArray"));
|
|
11
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
|
|
14
|
-
code: 1003,
|
|
15
|
-
category: "none",
|
|
16
|
-
apply: (ts, program) => sourceFile => {
|
|
17
|
-
const typeChecker = program.getTypeChecker();
|
|
18
|
-
function isEffectType(type) {
|
|
19
|
-
const symbol = type.getSymbol();
|
|
20
|
-
if (!symbol) return false;
|
|
21
|
-
if (symbol.declarations) {
|
|
22
|
-
return symbol.declarations.some(declaration => declaration.getSourceFile().fileName.includes("@effect/io/Effect"));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function isPipeableCombinator(type) {
|
|
26
|
-
const signatures = type.getCallSignatures();
|
|
27
|
-
if (signatures.length === 0) return false;
|
|
28
|
-
return signatures.some(isPipeableCallSignatureReturningEffect);
|
|
29
|
-
}
|
|
30
|
-
function isPipeableCallSignatureReturningEffect(signature) {
|
|
31
|
-
if (signature.getParameters().length !== 1) return false;
|
|
32
|
-
return isEffectType(signature.getReturnType());
|
|
33
|
-
}
|
|
34
|
-
function shouldBeTraced(signature) {
|
|
35
|
-
const returnType = signature.getReturnType();
|
|
36
|
-
return isEffectType(returnType) || isPipeableCombinator(returnType);
|
|
37
|
-
}
|
|
38
|
-
function isGetCallTraceCallExpression(node) {
|
|
39
|
-
if (!ts.isCallExpression(node)) return false;
|
|
40
|
-
const expression = node.expression;
|
|
41
|
-
if (!ts.isIdentifier(expression)) return false;
|
|
42
|
-
return expression.text === "getCallTrace";
|
|
43
|
-
}
|
|
44
|
-
return (0, _Function.pipe)(AST.collectAll(ts)(sourceFile, ts.isArrowFunction), Ch.concat(AST.collectAll(ts)(sourceFile, ts.isFunctionDeclaration)), Ch.filter(node => !!node.body), Ch.filter(node => typeChecker.getTypeAtLocation(node).getCallSignatures().some(shouldBeTraced)), Ch.filter(node => {
|
|
45
|
-
const body = node.body;
|
|
46
|
-
if (!ts.isBlock(body)) return true;
|
|
47
|
-
const firstStatement = body.statements[0];
|
|
48
|
-
if (!firstStatement) return true;
|
|
49
|
-
return Ch.isEmpty(AST.collectAll(ts)(firstStatement, isGetCallTraceCallExpression));
|
|
50
|
-
}), Ch.map(node => ({
|
|
51
|
-
node,
|
|
52
|
-
messageText: `This function should be traced. getCallTrace() should be the first line of the body.`
|
|
53
|
-
})));
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
exports.default = _default;
|
|
57
|
-
//# sourceMappingURL=ensureGetCallTrace.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureGetCallTrace.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AAAkE;AAAA;AAAA,4BAEnD,gCAAgB,EAAC;EAC9BA,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,MAAM;EAChBC,KAAK,EAAE,CAACC,EAAE,EAAEC,OAAO,KAChBC,UAAU,IAAI;IACb,MAAMC,WAAW,GAAGF,OAAO,CAACG,cAAc,EAAE;IAE5C,SAASC,YAAY,CAACC,IAAa;MACjC,MAAMC,MAAM,GAAGD,IAAI,CAACE,SAAS,EAAE;MAC/B,IAAI,CAACD,MAAM,EAAE,OAAO,KAAK;MACzB,IAAIA,MAAM,CAACE,YAAY,EAAE;QACvB,OAAOF,MAAM,CAACE,YAAY,CAACC,IAAI,CAAEC,WAAW,IAC1CA,WAAW,CAACC,aAAa,EAAE,CAACC,QAAQ,CAACC,QAAQ,CAAC,mBAAmB,CAAC,CACnE;;IAEL;IAEA,SAASC,oBAAoB,CAACT,IAAa;MACzC,MAAMU,UAAU,GAAGV,IAAI,CAACW,iBAAiB,EAAE;MAC3C,IAAID,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;MACzC,OAAOF,UAAU,CAACN,IAAI,CAACS,sCAAsC,CAAC;IAChE;IAEA,SAASA,sCAAsC,CAACC,SAAuB;MACrE,IAAIA,SAAS,CAACC,aAAa,EAAE,CAACH,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;MACxD,OAAOb,YAAY,CAACe,SAAS,CAACE,aAAa,EAAE,CAAC;IAChD;IAEA,SAASC,cAAc,CAACH,SAAuB;MAC7C,MAAMI,UAAU,GAAGJ,SAAS,CAACE,aAAa,EAAE;MAC5C,OAAOjB,YAAY,CAACmB,UAAU,CAAC,IAAIT,oBAAoB,CAACS,UAAU,CAAC;IACrE;IAEA,SAASC,4BAA4B,CAACC,IAAa;MACjD,IAAI,CAAC1B,EAAE,CAAC2B,gBAAgB,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;MAC5C,MAAME,UAAU,GAAGF,IAAI,CAACE,UAAU;MAClC,IAAI,CAAC5B,EAAE,CAAC6B,YAAY,CAACD,UAAU,CAAC,EAAE,OAAO,KAAK;MAC9C,OAAOA,UAAU,CAACE,IAAI,KAAK,cAAc;IAC3C;IAEA,OAAO,kBAAI,EACTC,GAAG,CAACC,UAAU,CAAChC,EAAE,CAAC,CAACE,UAAU,EAAEF,EAAE,CAACiC,eAAe,CAAC,EAClDC,EAAE,CAACC,MAAM,CAACJ,GAAG,CAACC,UAAU,CAAChC,EAAE,CAAC,CAACE,UAAU,EAAEF,EAAE,CAACoC,qBAAqB,CAAC,CAAC,EACnEF,EAAE,CAACG,MAAM,CAAEX,IAAI,IAAK,CAAC,CAACA,IAAI,CAACY,IAAI,CAAC,EAChCJ,EAAE,CAACG,MAAM,CAAEX,IAAI,IAAKvB,WAAW,CAACoC,iBAAiB,CAACb,IAAI,CAAC,CAACT,iBAAiB,EAAE,CAACP,IAAI,CAACa,cAAc,CAAC,CAAC,EACjGW,EAAE,CAACG,MAAM,CAAEX,IAAI,IAAI;MACjB,MAAMY,IAAI,GAAGZ,IAAI,CAACY,IAAK;MACvB,IAAI,CAACtC,EAAE,CAACwC,OAAO,CAACF,IAAI,CAAC,EAAE,OAAO,IAAI;MAClC,MAAMG,cAAc,GAAGH,IAAI,CAACI,UAAU,CAAC,CAAC,CAAC;MACzC,IAAI,CAACD,cAAc,EAAE,OAAO,IAAI;MAChC,OAAOP,EAAE,CAACS,OAAO,CAACZ,GAAG,CAACC,UAAU,CAAChC,EAAE,CAAC,CAACyC,cAAc,EAAEhB,4BAA4B,CAAC,CAAC;IACrF,CAAC,CAAC,EACFS,EAAE,CAACU,GAAG,CAAElB,IAAI,KAAM;MAChBA,IAAI;MACJmB,WAAW,EAAE;KACd,CAAC,CAAC,CACJ;EACH;CACH,CAAC;AAAA","names":["code","category","apply","ts","program","sourceFile","typeChecker","getTypeChecker","isEffectType","type","symbol","getSymbol","declarations","some","declaration","getSourceFile","fileName","includes","isPipeableCombinator","signatures","getCallSignatures","length","isPipeableCallSignatureReturningEffect","signature","getParameters","getReturnType","shouldBeTraced","returnType","isGetCallTraceCallExpression","node","isCallExpression","expression","isIdentifier","text","AST","collectAll","isArrowFunction","Ch","concat","isFunctionDeclaration","filter","body","getTypeAtLocation","isBlock","firstStatement","statements","isEmpty","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/ensureGetCallTrace.ts"],"sourcesContent":[null]}
|
package/diagnostics/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/index.ts"],"names":[],"mappings":";;;;AAGA,wBAAyD"}
|
package/diagnostics/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _ensureGetCallTrace = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/ensureGetCallTrace"));
|
|
8
|
-
var _noSyncWithConstant = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/noSyncWithConstant"));
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
var _default = {
|
|
11
|
-
noSyncWithConstant: _noSyncWithConstant.default,
|
|
12
|
-
ensureGetCallTrace: _ensureGetCallTrace.default
|
|
13
|
-
};
|
|
14
|
-
exports.default = _default;
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
package/diagnostics/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":";;;;;;AAAA;AACA;AAAwF;AAAA,eAEzE;EAAEA,kBAAkB,EAAlBA,2BAAkB;EAAEC,kBAAkB,EAAlBA;AAAkB,CAAE;AAAA","names":["noSyncWithConstant","ensureGetCallTrace"],"sourceRoot":"","sources":["../../../src/diagnostics/index.ts"],"sourcesContent":[null]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as AST from "@effect/language-service/utils/AST";
|
|
2
|
-
export declare const noSyncWithConstantMethodsMap: {
|
|
3
|
-
sync: string;
|
|
4
|
-
failSync: string;
|
|
5
|
-
dieSync: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function isEffectSyncWithConstantCall(ts: AST.TypeScriptApi): (moduleIdentifier: string, methodName: string) => (node: ts.Node) => node is import("typescript/lib/tsserverlibrary").CallExpression;
|
|
8
|
-
declare const _default: import("@effect/language-service/diagnostics/definition").DiagnosticDefinition;
|
|
9
|
-
export default _default;
|
|
10
|
-
//# sourceMappingURL=noSyncWithConstant.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noSyncWithConstant.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,oCAAoC,CAAA;AAIzD,eAAO,MAAM,4BAA4B;;;;CAIxC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,sBACtC,MAAM,cAAc,MAAM,YAC3C,GAAG,IAAI,qEASjB;;AAED,wBA2BE"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
exports.isEffectSyncWithConstantCall = isEffectSyncWithConstantCall;
|
|
8
|
-
exports.noSyncWithConstantMethodsMap = void 0;
|
|
9
|
-
var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
|
|
10
|
-
var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/AST"));
|
|
11
|
-
var _Function = /*#__PURE__*/require("@effect/language-service/utils/Function");
|
|
12
|
-
var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/ReadonlyArray"));
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
const noSyncWithConstantMethodsMap = {
|
|
16
|
-
sync: "succeed",
|
|
17
|
-
failSync: "fail",
|
|
18
|
-
dieSync: "die"
|
|
19
|
-
};
|
|
20
|
-
exports.noSyncWithConstantMethodsMap = noSyncWithConstantMethodsMap;
|
|
21
|
-
function isEffectSyncWithConstantCall(ts) {
|
|
22
|
-
return (moduleIdentifier, methodName) => node => {
|
|
23
|
-
if (AST.isCombinatorCall(ts)(moduleIdentifier, methodName)(node) && node.arguments.length === 1) {
|
|
24
|
-
const arg = node.arguments[0];
|
|
25
|
-
if (ts.isArrowFunction(arg) && AST.isLiteralConstantValue(ts)(arg.body)) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
|
|
33
|
-
code: 1002,
|
|
34
|
-
category: "warning",
|
|
35
|
-
apply: ts => sourceFile => {
|
|
36
|
-
const effectIdentifier = AST.getEffectModuleIdentifier(ts)(sourceFile);
|
|
37
|
-
let result = Ch.empty;
|
|
38
|
-
for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
|
|
39
|
-
const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
|
|
40
|
-
result = (0, _Function.pipe)(result, Ch.concat((0, _Function.pipe)(AST.collectAll(ts)(sourceFile, isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.map(node => ({
|
|
41
|
-
node,
|
|
42
|
-
messageText: `Value is constant, instead of using ${methodName} you could use ${suggestedMethodName}.`
|
|
43
|
-
})))));
|
|
44
|
-
}
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
exports.default = _default;
|
|
49
|
-
//# sourceMappingURL=noSyncWithConstant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noSyncWithConstant.js","mappings":";;;;;;;;AACA;AACA;AACA;AACA;AAAkE;AAAA;AAE3D,MAAMA,4BAA4B,GAAG;EAC1CC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,MAAM;EAChBC,OAAO,EAAE;CACV;AAAA;AAEK,SAAUC,4BAA4B,CAACC,EAAqB;EAChE,OAAO,CAACC,gBAAwB,EAAEC,UAAkB,KACjDC,IAAa,IAA+B;IAC3C,IAAIC,GAAG,CAACC,gBAAgB,CAACL,EAAE,CAAC,CAACC,gBAAgB,EAAEC,UAAU,CAAC,CAACC,IAAI,CAAC,IAAIA,IAAI,CAACG,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MAC/F,MAAMC,GAAG,GAAGL,IAAI,CAACG,SAAS,CAAC,CAAC,CAAC;MAC7B,IAAIN,EAAE,CAACS,eAAe,CAACD,GAAG,CAAC,IAAIJ,GAAG,CAACM,sBAAsB,CAACV,EAAE,CAAC,CAACQ,GAAG,CAACG,IAAI,CAAC,EAAE;QACvE,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd,CAAC;AACL;AAAC,4BAEc,gCAAgB,EAAC;EAC9BC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGd,EAAE,IACPe,UAAU,IAAI;IACb,MAAMC,gBAAgB,GAAGZ,GAAG,CAACa,yBAAyB,CAACjB,EAAE,CAAC,CAACe,UAAU,CAAC;IAEtE,IAAIG,MAAM,GAA0CC,EAAE,CAACC,KAAK;IAE5D,KAAK,MAAMlB,UAAU,IAAImB,MAAM,CAACC,IAAI,CAAC3B,4BAA4B,CAAC,EAAE;MAClE,MAAM4B,mBAAmB,GAAW5B,4BAA4B,CAACO,UAAU,CAAE;MAC7EgB,MAAM,GAAG,kBAAI,EACXA,MAAM,EACNC,EAAE,CAACK,MAAM,CACP,kBAAI,EACFpB,GAAG,CAACqB,UAAU,CAACzB,EAAE,CAAC,CAACe,UAAU,EAAEhB,4BAA4B,CAACC,EAAE,CAAC,CAACgB,gBAAgB,EAAEd,UAAU,CAAC,CAAC,EAC9FiB,EAAE,CAACO,GAAG,CAAEvB,IAAI,KAAM;QAChBA,IAAI;QACJwB,WAAW,EAAE,uCAAuCzB,UAAU,kBAAkBqB,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAOL,MAAM;EACf;CACH,CAAC;AAAA","names":["noSyncWithConstantMethodsMap","sync","failSync","dieSync","isEffectSyncWithConstantCall","ts","moduleIdentifier","methodName","node","AST","isCombinatorCall","arguments","length","arg","isArrowFunction","isLiteralConstantValue","body","code","category","apply","sourceFile","effectIdentifier","getEffectModuleIdentifier","result","Ch","empty","Object","keys","suggestedMethodName","concat","collectAll","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
|
package/eslint-rules/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
rules: {
|
|
3
|
-
"no-curry-arrow": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noCurryArrow", never[], {
|
|
4
|
-
ArrowFunctionExpression(node: import("@typescript-eslint/types/dist/generated/ast-spec").ArrowFunctionExpression): void;
|
|
5
|
-
}>;
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
export default _default;
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/eslint-rules/index.ts"],"names":[],"mappings":";;;;;;;AAMA,wBAEC"}
|
package/eslint-rules/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _noCurryArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/eslint-rules/no-curry-arrow"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
const rules = {
|
|
10
|
-
"no-curry-arrow": _noCurryArrow.default
|
|
11
|
-
};
|
|
12
|
-
var _default = {
|
|
13
|
-
rules
|
|
14
|
-
};
|
|
15
|
-
exports.default = _default;
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":";;;;;;AAAA;AAA+E;AAE/E,MAAMA,KAAK,GAAG;EACZ,gBAAgB,EAAEC;CACnB;AAAA,eAEc;EACbD;CACD;AAAA","names":["rules","noCurryArrow"],"sourceRoot":"","sources":["../../../src/eslint-rules/index.ts"],"sourcesContent":[null]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noCurryArrow", never[], {
|
|
2
|
-
ArrowFunctionExpression(node: import("@typescript-eslint/types/dist/generated/ast-spec").ArrowFunctionExpression): void;
|
|
3
|
-
}>;
|
|
4
|
-
export default _default;
|
|
5
|
-
//# sourceMappingURL=no-curry-arrow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-curry-arrow.d.ts","sourceRoot":"","sources":["../../../src/eslint-rules/no-curry-arrow.ts"],"names":[],"mappings":";;;AAIA,wBA6BE"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var utils = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/eslint-rules/utils"));
|
|
8
|
-
var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/AST"));
|
|
9
|
-
var ts = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("typescript/lib/tsserverlibrary"));
|
|
10
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
-
var _default = /*#__PURE__*/utils.createRule({
|
|
13
|
-
create(context) {
|
|
14
|
-
const parserServices = utils.getParserServices(context);
|
|
15
|
-
return {
|
|
16
|
-
ArrowFunctionExpression(node) {
|
|
17
|
-
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
18
|
-
if (AST.isCurryArrow(ts)(tsNode)) {
|
|
19
|
-
context.report({
|
|
20
|
-
messageId: "noCurryArrow",
|
|
21
|
-
node
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
name: "no-curry-arrow",
|
|
28
|
-
meta: {
|
|
29
|
-
docs: {
|
|
30
|
-
description: "There should be no curry arrow functions, like T.map((_) => log(_)) should be T.map(log) instead",
|
|
31
|
-
recommended: "warn"
|
|
32
|
-
},
|
|
33
|
-
messages: {
|
|
34
|
-
noCurryArrow: "There should be no curry arrow functions, like T.map((_) => log(_)) should be T.map(log) instead"
|
|
35
|
-
},
|
|
36
|
-
type: "suggestion",
|
|
37
|
-
schema: []
|
|
38
|
-
},
|
|
39
|
-
defaultOptions: []
|
|
40
|
-
});
|
|
41
|
-
exports.default = _default;
|
|
42
|
-
//# sourceMappingURL=no-curry-arrow.js.map
|