eslint-plugin-rxjs-x 0.7.0 → 0.7.1

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/dist/index.d.mts CHANGED
@@ -146,7 +146,7 @@ declare const rxjsX: {
146
146
  'no-subscribe-handlers': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
147
147
  'no-subscribe-in-pipe': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
148
148
  'no-tap': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
149
- 'no-topromise': TSESLint.RuleModule<"forbidden" | "suggestLastValueFrom" | "suggestFirstValueFrom", [], RxjsXRuleDocs, TSESLint.RuleListener>;
149
+ 'no-topromise': TSESLint.RuleModule<"forbidden" | "suggestLastValueFromWithDefault" | "suggestLastValueFrom" | "suggestFirstValueFrom", [], RxjsXRuleDocs, TSESLint.RuleListener>;
150
150
  'no-unbound-methods': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
151
151
  'no-unsafe-catch': TSESLint.RuleModule<"forbidden", readonly {
152
152
  observable?: string;
package/dist/index.d.ts CHANGED
@@ -146,7 +146,7 @@ declare const rxjsX: {
146
146
  'no-subscribe-handlers': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
147
147
  'no-subscribe-in-pipe': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
148
148
  'no-tap': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
149
- 'no-topromise': TSESLint.RuleModule<"forbidden" | "suggestLastValueFrom" | "suggestFirstValueFrom", [], RxjsXRuleDocs, TSESLint.RuleListener>;
149
+ 'no-topromise': TSESLint.RuleModule<"forbidden" | "suggestLastValueFromWithDefault" | "suggestLastValueFrom" | "suggestFirstValueFrom", [], RxjsXRuleDocs, TSESLint.RuleListener>;
150
150
  'no-unbound-methods': TSESLint.RuleModule<"forbidden", [], RxjsXRuleDocs, TSESLint.RuleListener>;
151
151
  'no-unsafe-catch': TSESLint.RuleModule<"forbidden", readonly {
152
152
  observable?: string;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// package.json
2
2
  var name = "eslint-plugin-rxjs-x";
3
- var version = "0.7.0";
3
+ var version = "0.7.1";
4
4
 
5
5
  // src/configs/recommended.ts
6
6
  var createRecommendedConfig = (plugin2) => ({
@@ -2909,6 +2909,7 @@ var noTopromiseRule = ruleCreator({
2909
2909
  hasSuggestions: true,
2910
2910
  messages: {
2911
2911
  forbidden: "The toPromise method is forbidden.",
2912
+ suggestLastValueFromWithDefault: "Use lastValueFrom(..., { defaultValue: undefined }) instead.",
2912
2913
  suggestLastValueFrom: "Use lastValueFrom instead.",
2913
2914
  suggestFirstValueFrom: "Use firstValueFrom instead."
2914
2915
  },
@@ -2926,7 +2927,7 @@ var noTopromiseRule = ruleCreator({
2926
2927
  const [, quote] = match;
2927
2928
  return quote;
2928
2929
  }
2929
- function createFix(conversion, callExpression, observableNode, importDeclarations) {
2930
+ function createFix(conversion, callExpression, observableNode, importDeclarations, { withDefault } = {}) {
2930
2931
  return function* fix(fixer) {
2931
2932
  var _a, _b, _c;
2932
2933
  let namespace = "";
@@ -2957,7 +2958,7 @@ import { ${functionName} } from ${quote}rxjs${quote};`
2957
2958
  }
2958
2959
  yield fixer.replaceText(
2959
2960
  callExpression,
2960
- `${namespace}${functionName}(${context.sourceCode.getText(observableNode)})`
2961
+ `${namespace}${functionName}(${context.sourceCode.getText(observableNode)}${withDefault ? ", { defaultValue: undefined }" : ""})`
2961
2962
  );
2962
2963
  };
2963
2964
  }
@@ -2976,6 +2977,10 @@ import { ${functionName} } from ${quote}rxjs${quote};`
2976
2977
  messageId: "forbidden",
2977
2978
  node: memberExpression.property,
2978
2979
  suggest: [
2980
+ {
2981
+ messageId: "suggestLastValueFromWithDefault",
2982
+ fix: createFix("lastValueFrom", node, memberExpression.object, importDeclarations, { withDefault: true })
2983
+ },
2979
2984
  {
2980
2985
  messageId: "suggestLastValueFrom",
2981
2986
  fix: createFix("lastValueFrom", node, memberExpression.object, importDeclarations)
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var name = "eslint-plugin-rxjs-x";
3
- var version = "0.7.0";
3
+ var version = "0.7.1";
4
4
 
5
5
  // src/configs/recommended.ts
6
6
  var createRecommendedConfig = (plugin2) => ({
@@ -2909,6 +2909,7 @@ var noTopromiseRule = ruleCreator({
2909
2909
  hasSuggestions: true,
2910
2910
  messages: {
2911
2911
  forbidden: "The toPromise method is forbidden.",
2912
+ suggestLastValueFromWithDefault: "Use lastValueFrom(..., { defaultValue: undefined }) instead.",
2912
2913
  suggestLastValueFrom: "Use lastValueFrom instead.",
2913
2914
  suggestFirstValueFrom: "Use firstValueFrom instead."
2914
2915
  },
@@ -2926,7 +2927,7 @@ var noTopromiseRule = ruleCreator({
2926
2927
  const [, quote] = match;
2927
2928
  return quote;
2928
2929
  }
2929
- function createFix(conversion, callExpression, observableNode, importDeclarations) {
2930
+ function createFix(conversion, callExpression, observableNode, importDeclarations, { withDefault } = {}) {
2930
2931
  return function* fix(fixer) {
2931
2932
  var _a, _b, _c;
2932
2933
  let namespace = "";
@@ -2957,7 +2958,7 @@ import { ${functionName} } from ${quote}rxjs${quote};`
2957
2958
  }
2958
2959
  yield fixer.replaceText(
2959
2960
  callExpression,
2960
- `${namespace}${functionName}(${context.sourceCode.getText(observableNode)})`
2961
+ `${namespace}${functionName}(${context.sourceCode.getText(observableNode)}${withDefault ? ", { defaultValue: undefined }" : ""})`
2961
2962
  );
2962
2963
  };
2963
2964
  }
@@ -2976,6 +2977,10 @@ import { ${functionName} } from ${quote}rxjs${quote};`
2976
2977
  messageId: "forbidden",
2977
2978
  node: memberExpression.property,
2978
2979
  suggest: [
2980
+ {
2981
+ messageId: "suggestLastValueFromWithDefault",
2982
+ fix: createFix("lastValueFrom", node, memberExpression.object, importDeclarations, { withDefault: true })
2983
+ },
2979
2984
  {
2980
2985
  messageId: "suggestLastValueFrom",
2981
2986
  fix: createFix("lastValueFrom", node, memberExpression.object, importDeclarations)
@@ -10,9 +10,10 @@
10
10
 
11
11
  This rule effects failures if the `toPromise` method is used.
12
12
 
13
- This rule provides two editor suggestions which replace `toPromise` with either:
13
+ This rule provides three editor suggestions which replace `toPromise` with either:
14
14
 
15
- - `lastValueFrom(...)`, which behaves closest to the behavior of `toPromise`,
15
+ - `lastValueFrom(..., { defaultValue: undefined })`, which imitates the behavior of `toPromise`,
16
+ - or `lastValueFrom(...)`, which throws `EmptyError` instead of defaulting to `undefined`,
16
17
  - or `firstValueFrom(...)`.
17
18
 
18
19
  ## When Not To Use It
@@ -26,6 +27,10 @@ Type checked lint rules are more powerful than traditional lint rules, but also
26
27
 
27
28
  - [Conversion to Promises](https://rxjs.dev/deprecations/to-promise)
28
29
 
30
+ ## Related To
31
+
32
+ - [`no-ignored-default-value`](./no-ignored-default-value.md)
33
+
29
34
  ## Resources
30
35
 
31
36
  - [Rule source](https://github.com/JasonWeinzierl/eslint-plugin-rxjs-x/blob/main/src/rules/no-topromise.ts)
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "eslint-plugin-rxjs-x",
3
3
  "type": "commonjs",
4
- "version": "0.7.0",
5
- "packageManager": "yarn@4.6.0+sha512.5383cc12567a95f1d668fbe762dfe0075c595b4bfff433be478dbbe24e05251a8e8c3eb992a986667c1d53b6c3a9c85b8398c35a960587fbd9fa3a0915406728",
4
+ "version": "0.7.1",
5
+ "packageManager": "yarn@4.7.0+sha512.5a0afa1d4c1d844b3447ee3319633797bcd6385d9a44be07993ae52ff4facabccafb4af5dcd1c2f9a94ac113e5e9ff56f6130431905884414229e284e37bb7c9",
6
6
  "description": "ESLint v9+ plugin for RxJS",
7
7
  "author": "Jason Weinzierl <weinzierljason@gmail.com>",
8
8
  "license": "MIT",