@venizia/dev-configs 0.4.6 → 0.4.7-0

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.
Files changed (68) hide show
  1. package/dist/checks/catalog.d.ts.map +1 -1
  2. package/dist/checks/catalog.js +4 -2
  3. package/dist/checks/catalog.js.map +1 -1
  4. package/dist/checks/purity/probe.d.ts.map +1 -1
  5. package/dist/checks/purity/probe.js +2 -1
  6. package/dist/checks/purity/probe.js.map +1 -1
  7. package/dist/checks/test-controls.d.ts.map +1 -1
  8. package/dist/checks/test-controls.js +2 -1
  9. package/dist/checks/test-controls.js.map +1 -1
  10. package/dist/cli/codemod/async-style.d.ts +41 -0
  11. package/dist/cli/codemod/async-style.d.ts.map +1 -0
  12. package/dist/cli/codemod/async-style.js +166 -0
  13. package/dist/cli/codemod/async-style.js.map +1 -0
  14. package/dist/cli/codemod/const-classes.d.ts.map +1 -1
  15. package/dist/cli/codemod/const-classes.js +2 -1
  16. package/dist/cli/codemod/const-classes.js.map +1 -1
  17. package/dist/cli/codemod/drop-redundant-casts.d.ts.map +1 -1
  18. package/dist/cli/codemod/drop-redundant-casts.js +2 -1
  19. package/dist/cli/codemod/drop-redundant-casts.js.map +1 -1
  20. package/dist/cli/codemod/files.d.ts +7 -0
  21. package/dist/cli/codemod/files.d.ts.map +1 -1
  22. package/dist/cli/codemod/files.js +33 -0
  23. package/dist/cli/codemod/files.js.map +1 -1
  24. package/dist/cli/codemod/index.d.ts.map +1 -1
  25. package/dist/cli/codemod/index.js +7 -2
  26. package/dist/cli/codemod/index.js.map +1 -1
  27. package/dist/cli/index.js +1 -0
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/linters/house/await-support.d.ts +60 -0
  30. package/dist/linters/house/await-support.d.ts.map +1 -0
  31. package/dist/linters/house/await-support.js +209 -0
  32. package/dist/linters/house/await-support.js.map +1 -0
  33. package/dist/linters/house/common.d.ts +2 -0
  34. package/dist/linters/house/common.d.ts.map +1 -1
  35. package/dist/linters/house/common.js +2 -0
  36. package/dist/linters/house/common.js.map +1 -1
  37. package/dist/linters/house/configs.d.ts +23 -0
  38. package/dist/linters/house/configs.d.ts.map +1 -1
  39. package/dist/linters/house/configs.js +46 -1
  40. package/dist/linters/house/configs.js.map +1 -1
  41. package/dist/linters/house/effect-cleanup-consistency.rule.d.ts +17 -0
  42. package/dist/linters/house/effect-cleanup-consistency.rule.d.ts.map +1 -0
  43. package/dist/linters/house/effect-cleanup-consistency.rule.js +87 -0
  44. package/dist/linters/house/effect-cleanup-consistency.rule.js.map +1 -0
  45. package/dist/linters/house/hook-support.d.ts +29 -0
  46. package/dist/linters/house/hook-support.d.ts.map +1 -0
  47. package/dist/linters/house/hook-support.js +69 -0
  48. package/dist/linters/house/hook-support.js.map +1 -0
  49. package/dist/linters/house/index.d.ts +6 -0
  50. package/dist/linters/house/index.d.ts.map +1 -1
  51. package/dist/linters/house/index.js +6 -0
  52. package/dist/linters/house/index.js.map +1 -1
  53. package/dist/linters/house/no-async-hook-callback.rule.d.ts +18 -0
  54. package/dist/linters/house/no-async-hook-callback.rule.d.ts.map +1 -0
  55. package/dist/linters/house/no-async-hook-callback.rule.js +50 -0
  56. package/dist/linters/house/no-async-hook-callback.rule.js.map +1 -0
  57. package/dist/linters/house/no-inline-await.rule.d.ts +20 -0
  58. package/dist/linters/house/no-inline-await.rule.d.ts.map +1 -0
  59. package/dist/linters/house/no-inline-await.rule.js +76 -0
  60. package/dist/linters/house/no-inline-await.rule.js.map +1 -0
  61. package/dist/linters/house/no-return-await.rule.d.ts +15 -0
  62. package/dist/linters/house/no-return-await.rule.d.ts.map +1 -0
  63. package/dist/linters/house/no-return-await.rule.js +92 -0
  64. package/dist/linters/house/no-return-await.rule.js.map +1 -0
  65. package/dist/linters/house/plugin.d.ts.map +1 -1
  66. package/dist/linters/house/plugin.js +8 -0
  67. package/dist/linters/house/plugin.js.map +1 -1
  68. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoReturnAwaitRule = void 0;
4
+ const await_support_1 = require("./await-support");
5
+ const common_1 = require("./common");
6
+ const FUNCTION_TYPES = new Set([
7
+ 'FunctionDeclaration',
8
+ 'FunctionExpression',
9
+ 'ArrowFunctionExpression',
10
+ ]);
11
+ const STATEMENT_LISTS = new Set(['BlockStatement', 'Program', 'StaticBlock', 'SwitchCase']);
12
+ /** `node` sits inside a `try`, `catch` or `finally` of its own function. */
13
+ const isInTry = (node) => {
14
+ let current = await_support_1.AwaitSupport.parentOf({ node });
15
+ while (current && !FUNCTION_TYPES.has((0, common_1.nodeType)({ node: current }) ?? '')) {
16
+ if ((0, common_1.nodeType)({ node: current }) === 'TryStatement') {
17
+ return true;
18
+ }
19
+ current = await_support_1.AwaitSupport.parentOf({ node: current });
20
+ }
21
+ return false;
22
+ };
23
+ /**
24
+ * `venizia/no-return-await`. A function returns the promise (`return f()`), never `return await f()`. Where the
25
+ * `await` matters (inside `try`, `catch` or `finally`) it is written on its own line:
26
+ * `const result = await f(); return result;`. An arrow whose body is an `await` is the same: `() => f()`.
27
+ */
28
+ class NoReturnAwaitRule {
29
+ static { this.NAME = `${common_1.HOUSE_PLUGIN_NAMESPACE}/no-return-await`; }
30
+ static { this.RULE = {
31
+ meta: {
32
+ type: 'suggestion',
33
+ fixable: 'code',
34
+ schema: [],
35
+ messages: {
36
+ returnAwait: 'Return the promise (`return f()`), not `return await f()`; where the await matters (inside try, catch or finally) write `const result = await f(); return result;`.',
37
+ },
38
+ },
39
+ create: (context) => {
40
+ const { sourceCode } = context;
41
+ const taken = new Map();
42
+ const reportAwait = (opts) => {
43
+ const argument = (0, common_1.readField)({ node: opts.awaitNode, key: 'argument' });
44
+ const argumentText = await_support_1.AwaitSupport.isNode(argument) && (0, common_1.nodeType)({ node: argument }) !== 'SequenceExpression'
45
+ ? sourceCode.getText(argument)
46
+ : undefined;
47
+ context.report({
48
+ node: opts.reported,
49
+ messageId: 'returnAwait',
50
+ fix: argumentText === undefined
51
+ ? null
52
+ : (fixer) => {
53
+ if (!opts.statement || !isInTry(opts.statement)) {
54
+ return fixer.replaceText(opts.awaitNode, argumentText);
55
+ }
56
+ const outer = await_support_1.AwaitSupport.parentOf({ node: opts.statement });
57
+ if (!STATEMENT_LISTS.has((0, common_1.nodeType)({ node: outer }) ?? '')) {
58
+ return null;
59
+ }
60
+ const name = await_support_1.AwaitSupport.freshName({
61
+ node: opts.statement,
62
+ base: 'result',
63
+ sourceCode,
64
+ taken,
65
+ });
66
+ const indent = await_support_1.AwaitSupport.indentOf({ node: opts.statement, sourceCode });
67
+ return fixer.replaceText(opts.statement, `const ${name} = await ${argumentText};\n${indent}return ${name};`);
68
+ },
69
+ });
70
+ };
71
+ return {
72
+ [common_1.AstNodeTypes.RETURN_STATEMENT]: (node) => {
73
+ const argument = (0, common_1.readField)({ node, key: 'argument' });
74
+ if (await_support_1.AwaitSupport.isNode(argument) && (0, common_1.nodeType)({ node: argument }) === 'AwaitExpression') {
75
+ reportAwait({ reported: node, awaitNode: argument, statement: node });
76
+ }
77
+ },
78
+ [common_1.AstNodeTypes.ARROW_FUNCTION_EXPRESSION]: (node) => {
79
+ const body = (0, common_1.readField)({ node, key: 'body' });
80
+ if (await_support_1.AwaitSupport.isNode(body) && (0, common_1.nodeType)({ node: body }) === 'AwaitExpression') {
81
+ reportAwait({ reported: node, awaitNode: body });
82
+ }
83
+ },
84
+ };
85
+ },
86
+ }; }
87
+ static build(opts = {}) {
88
+ return opts.severity ?? 'error';
89
+ }
90
+ }
91
+ exports.NoReturnAwaitRule = NoReturnAwaitRule;
92
+ //# sourceMappingURL=no-return-await.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-return-await.rule.js","sourceRoot":"","sources":["../../../src/linters/house/no-return-await.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Rule } from 'eslint';\nimport type { TRuleSeverity } from '../rules/common';\nimport { AwaitSupport } from './await-support';\nimport { AstNodeTypes, HOUSE_PLUGIN_NAMESPACE, nodeType, readField } from './common';\n\nconst FUNCTION_TYPES = new Set([\n 'FunctionDeclaration',\n 'FunctionExpression',\n 'ArrowFunctionExpression',\n]);\nconst STATEMENT_LISTS = new Set(['BlockStatement', 'Program', 'StaticBlock', 'SwitchCase']);\n\n/** `node` sits inside a `try`, `catch` or `finally` of its own function. */\nconst isInTry = (node: unknown): boolean => {\n let current = AwaitSupport.parentOf({ node });\n\n while (current && !FUNCTION_TYPES.has(nodeType({ node: current }) ?? '')) {\n if (nodeType({ node: current }) === 'TryStatement') {\n return true;\n }\n current = AwaitSupport.parentOf({ node: current });\n }\n\n return false;\n};\n\n/**\n * `venizia/no-return-await`. A function returns the promise (`return f()`), never `return await f()`. Where the\n * `await` matters (inside `try`, `catch` or `finally`) it is written on its own line:\n * `const result = await f(); return result;`. An arrow whose body is an `await` is the same: `() => f()`.\n */\nexport class NoReturnAwaitRule {\n static readonly NAME = `${HOUSE_PLUGIN_NAMESPACE}/no-return-await`;\n\n static readonly RULE: Rule.RuleModule = {\n meta: {\n type: 'suggestion',\n fixable: 'code',\n schema: [],\n messages: {\n returnAwait:\n 'Return the promise (`return f()`), not `return await f()`; where the await matters (inside try, catch or finally) write `const result = await f(); return result;`.',\n },\n },\n create: (context) => {\n const { sourceCode } = context;\n const taken = new Map<unknown, Set<string>>();\n\n const reportAwait = (opts: {\n reported: Rule.Node;\n awaitNode: Rule.Node;\n statement?: Rule.Node;\n }) => {\n const argument = readField({ node: opts.awaitNode, key: 'argument' });\n const argumentText =\n AwaitSupport.isNode(argument) && nodeType({ node: argument }) !== 'SequenceExpression'\n ? sourceCode.getText(argument)\n : undefined;\n\n context.report({\n node: opts.reported,\n messageId: 'returnAwait',\n fix:\n argumentText === undefined\n ? null\n : (fixer) => {\n if (!opts.statement || !isInTry(opts.statement)) {\n return fixer.replaceText(opts.awaitNode, argumentText);\n }\n\n const outer = AwaitSupport.parentOf({ node: opts.statement });\n if (!STATEMENT_LISTS.has(nodeType({ node: outer }) ?? '')) {\n return null;\n }\n\n const name = AwaitSupport.freshName({\n node: opts.statement,\n base: 'result',\n sourceCode,\n taken,\n });\n const indent = AwaitSupport.indentOf({ node: opts.statement, sourceCode });\n\n return fixer.replaceText(\n opts.statement,\n `const ${name} = await ${argumentText};\\n${indent}return ${name};`,\n );\n },\n });\n };\n\n return {\n [AstNodeTypes.RETURN_STATEMENT]: (node: Rule.Node) => {\n const argument = readField({ node, key: 'argument' });\n if (AwaitSupport.isNode(argument) && nodeType({ node: argument }) === 'AwaitExpression') {\n reportAwait({ reported: node, awaitNode: argument, statement: node });\n }\n },\n [AstNodeTypes.ARROW_FUNCTION_EXPRESSION]: (node: Rule.Node) => {\n const body = readField({ node, key: 'body' });\n if (AwaitSupport.isNode(body) && nodeType({ node: body }) === 'AwaitExpression') {\n reportAwait({ reported: node, awaitNode: body });\n }\n },\n };\n },\n };\n\n static build(opts: { severity?: TRuleSeverity } = {}): TRuleSeverity {\n return opts.severity ?? 'error';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/linters/house/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAQtC,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/linters/house/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAWrC,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAYtC,CAAC"}
@@ -3,17 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.houseEslintPlugin = void 0;
4
4
  const common_1 = require("./common");
5
5
  const const_class_values_rule_1 = require("./const-class-values.rule");
6
+ const effect_cleanup_consistency_rule_1 = require("./effect-cleanup-consistency.rule");
6
7
  const max_params_own_rule_1 = require("./max-params-own.rule");
8
+ const no_async_hook_callback_rule_1 = require("./no-async-hook-callback.rule");
9
+ const no_inline_await_rule_1 = require("./no-inline-await.rule");
7
10
  const no_leaked_render_rule_1 = require("./no-leaked-render.rule");
8
11
  const no_new_error_rule_1 = require("./no-new-error.rule");
12
+ const no_return_await_rule_1 = require("./no-return-await.rule");
9
13
  /** The ESLint plugin that carries the house rules oxlint cannot express, registered as `venizia`. */
10
14
  exports.houseEslintPlugin = {
11
15
  meta: { name: `eslint-plugin-${common_1.HOUSE_PLUGIN_NAMESPACE}` },
12
16
  rules: {
13
17
  'const-class-values': const_class_values_rule_1.ConstClassValuesRule.RULE,
18
+ 'effect-cleanup-consistency': effect_cleanup_consistency_rule_1.EffectCleanupConsistencyRule.RULE,
14
19
  'max-params-own': max_params_own_rule_1.MaxParamsOwnRule.RULE,
20
+ 'no-async-hook-callback': no_async_hook_callback_rule_1.NoAsyncHookCallbackRule.RULE,
21
+ 'no-inline-await': no_inline_await_rule_1.NoInlineAwaitRule.RULE,
15
22
  'no-leaked-render': no_leaked_render_rule_1.NoLeakedRenderRule.RULE,
16
23
  'no-new-error': no_new_error_rule_1.NoNewErrorRule.RULE,
24
+ 'no-return-await': no_return_await_rule_1.NoReturnAwaitRule.RULE,
17
25
  },
18
26
  };
19
27
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/linters/house/plugin.ts"],"names":[],"mappings":";;;AACA,qCAAkD;AAClD,uEAAiE;AACjE,+DAAyD;AACzD,mEAA6D;AAC7D,2DAAqD;AAErD,qGAAqG;AACxF,QAAA,iBAAiB,GAAkB;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,+BAAsB,EAAE,EAAE;IACzD,KAAK,EAAE;QACL,oBAAoB,EAAE,8CAAoB,CAAC,IAAI;QAC/C,gBAAgB,EAAE,sCAAgB,CAAC,IAAI;QACvC,kBAAkB,EAAE,0CAAkB,CAAC,IAAI;QAC3C,cAAc,EAAE,kCAAc,CAAC,IAAI;KACpC;CACF,CAAC","sourcesContent":["import type { ESLint } from 'eslint';\nimport { HOUSE_PLUGIN_NAMESPACE } from './common';\nimport { ConstClassValuesRule } from './const-class-values.rule';\nimport { MaxParamsOwnRule } from './max-params-own.rule';\nimport { NoLeakedRenderRule } from './no-leaked-render.rule';\nimport { NoNewErrorRule } from './no-new-error.rule';\n\n/** The ESLint plugin that carries the house rules oxlint cannot express, registered as `venizia`. */\nexport const houseEslintPlugin: ESLint.Plugin = {\n meta: { name: `eslint-plugin-${HOUSE_PLUGIN_NAMESPACE}` },\n rules: {\n 'const-class-values': ConstClassValuesRule.RULE,\n 'max-params-own': MaxParamsOwnRule.RULE,\n 'no-leaked-render': NoLeakedRenderRule.RULE,\n 'no-new-error': NoNewErrorRule.RULE,\n },\n};\n"]}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/linters/house/plugin.ts"],"names":[],"mappings":";;;AACA,qCAAkD;AAClD,uEAAiE;AACjE,uFAAiF;AACjF,+DAAyD;AACzD,+EAAwE;AACxE,iEAA2D;AAC3D,mEAA6D;AAC7D,2DAAqD;AACrD,iEAA2D;AAE3D,qGAAqG;AACxF,QAAA,iBAAiB,GAAkB;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,+BAAsB,EAAE,EAAE;IACzD,KAAK,EAAE;QACL,oBAAoB,EAAE,8CAAoB,CAAC,IAAI;QAC/C,4BAA4B,EAAE,8DAA4B,CAAC,IAAI;QAC/D,gBAAgB,EAAE,sCAAgB,CAAC,IAAI;QACvC,wBAAwB,EAAE,qDAAuB,CAAC,IAAI;QACtD,iBAAiB,EAAE,wCAAiB,CAAC,IAAI;QACzC,kBAAkB,EAAE,0CAAkB,CAAC,IAAI;QAC3C,cAAc,EAAE,kCAAc,CAAC,IAAI;QACnC,iBAAiB,EAAE,wCAAiB,CAAC,IAAI;KAC1C;CACF,CAAC","sourcesContent":["import type { ESLint } from 'eslint';\nimport { HOUSE_PLUGIN_NAMESPACE } from './common';\nimport { ConstClassValuesRule } from './const-class-values.rule';\nimport { EffectCleanupConsistencyRule } from './effect-cleanup-consistency.rule';\nimport { MaxParamsOwnRule } from './max-params-own.rule';\nimport { NoAsyncHookCallbackRule } from './no-async-hook-callback.rule';\nimport { NoInlineAwaitRule } from './no-inline-await.rule';\nimport { NoLeakedRenderRule } from './no-leaked-render.rule';\nimport { NoNewErrorRule } from './no-new-error.rule';\nimport { NoReturnAwaitRule } from './no-return-await.rule';\n\n/** The ESLint plugin that carries the house rules oxlint cannot express, registered as `venizia`. */\nexport const houseEslintPlugin: ESLint.Plugin = {\n meta: { name: `eslint-plugin-${HOUSE_PLUGIN_NAMESPACE}` },\n rules: {\n 'const-class-values': ConstClassValuesRule.RULE,\n 'effect-cleanup-consistency': EffectCleanupConsistencyRule.RULE,\n 'max-params-own': MaxParamsOwnRule.RULE,\n 'no-async-hook-callback': NoAsyncHookCallbackRule.RULE,\n 'no-inline-await': NoInlineAwaitRule.RULE,\n 'no-leaked-render': NoLeakedRenderRule.RULE,\n 'no-new-error': NoNewErrorRule.RULE,\n 'no-return-await': NoReturnAwaitRule.RULE,\n },\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/dev-configs",
3
- "version": "0.4.6",
3
+ "version": "0.4.7-0",
4
4
  "description": "Shareable development configurations for TypeScript projects: oxlint presets with per-rule builders, the ESLint naming-convention rule, the legacy ESLint flat config, and TypeScript compiler options with critical decorator support (experimentalDecorators, emitDecoratorMetadata, useDefineForClassFields). Single source of truth for consistent code style, type checking, and build settings across monorepo packages.",
5
5
  "keywords": [
6
6
  "build-tools",