@teambit/issues 0.0.3 → 0.0.4

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.
@@ -1,17 +1,21 @@
1
1
  import { CLIMain } from '@teambit/cli';
2
+ import { Component } from '@teambit/component';
2
3
  export declare type IssuesConfig = {
3
4
  ignoreIssues: string[];
4
5
  };
5
6
  export declare class IssuesMain {
6
7
  private config;
7
8
  constructor(config: IssuesConfig);
8
- getIssuesToIgnore(): string[];
9
+ getIssuesToIgnoreGlobally(): string[];
10
+ getIssuesToIgnorePerComponent(component: Component): string[];
11
+ private validateIssueNames;
9
12
  listIssues(): {
10
13
  name: string;
11
14
  description: string;
12
15
  solution: string;
13
16
  isTagBlocker: boolean;
14
17
  }[];
18
+ removeIgnoredIssuesFromComponents(components: Component[]): void;
15
19
  static slots: never[];
16
20
  static dependencies: import("@teambit/harmony").Aspect[];
17
21
  static defaultConfig: {
@@ -23,16 +23,6 @@ function _defineProperty2() {
23
23
  return data;
24
24
  }
25
25
 
26
- function _bitError() {
27
- const data = require("@teambit/bit-error");
28
-
29
- _bitError = function () {
30
- return data;
31
- };
32
-
33
- return data;
34
- }
35
-
36
26
  function _cli() {
37
27
  const data = require("@teambit/cli");
38
28
 
@@ -73,20 +63,43 @@ function _issues() {
73
63
  return data;
74
64
  }
75
65
 
66
+ function _nonExistIssueError() {
67
+ const data = require("./non-exist-issue-error");
68
+
69
+ _nonExistIssueError = function () {
70
+ return data;
71
+ };
72
+
73
+ return data;
74
+ }
75
+
76
76
  class IssuesMain {
77
77
  constructor(config) {
78
78
  this.config = config;
79
79
  }
80
80
 
81
- getIssuesToIgnore() {
82
- const allIssues = this.listIssues().map(issue => issue.name);
81
+ getIssuesToIgnoreGlobally() {
83
82
  const issuesToIgnore = this.config.ignoreIssues || [];
84
- issuesToIgnore.forEach(issueToIgnore => {
85
- if (!allIssues.includes(issueToIgnore)) {
86
- throw new (_bitError().BitError)(`fatal: a non-existing component-issue "${issueToIgnore}" was configured for ${_issues().IssuesAspect.id} aspect`);
83
+ this.validateIssueNames(issuesToIgnore);
84
+ return issuesToIgnore;
85
+ }
86
+
87
+ getIssuesToIgnorePerComponent(component) {
88
+ var _component$state$aspe;
89
+
90
+ const issuesToIgnore = (_component$state$aspe = component.state.aspects.get(_issues().IssuesAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.config.ignoreIssues;
91
+ if (!issuesToIgnore) return [];
92
+ this.validateIssueNames(issuesToIgnore);
93
+ return issuesToIgnore;
94
+ }
95
+
96
+ validateIssueNames(issues) {
97
+ const allIssues = this.listIssues().map(issue => issue.name);
98
+ issues.forEach(issue => {
99
+ if (!allIssues.includes(issue)) {
100
+ throw new (_nonExistIssueError().NonExistIssueError)(issue);
87
101
  }
88
102
  });
89
- return issuesToIgnore;
90
103
  }
91
104
 
92
105
  listIssues() {
@@ -103,6 +116,17 @@ class IssuesMain {
103
116
  });
104
117
  }
105
118
 
119
+ removeIgnoredIssuesFromComponents(components) {
120
+ const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();
121
+ components.forEach(component => {
122
+ const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);
123
+ const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp];
124
+ issuesToIgnore.forEach(issueToIgnore => {
125
+ component.state.issues.delete(_componentIssues().IssuesClasses[issueToIgnore]);
126
+ });
127
+ });
128
+ }
129
+
106
130
  static async provider([cli], config) {
107
131
  const issuesMain = new IssuesMain(config);
108
132
  cli.register(new (_issuesCmd().ComponentIssuesCmd)(issuesMain));
@@ -1 +1 @@
1
- {"version":3,"sources":["issues.main.runtime.ts"],"names":["IssuesMain","constructor","config","getIssuesToIgnore","allIssues","listIssues","map","issue","name","issuesToIgnore","ignoreIssues","forEach","issueToIgnore","includes","BitError","IssuesAspect","id","instances","Object","keys","IssuesClasses","issueClass","issuesList","IssuesList","nonLegacyIssues","getHarmonyIssues","issueInstance","description","solution","isTagBlocker","provider","cli","issuesMain","register","ComponentIssuesCmd","CLIAspect","MainRuntime","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMO,MAAMA,UAAN,CAAiB;AACtBC,EAAAA,WAAW,CAASC,MAAT,EAA+B;AAAA,SAAtBA,MAAsB,GAAtBA,MAAsB;AAAE;;AAE5CC,EAAAA,iBAAiB,GAAa;AAC5B,UAAMC,SAAS,GAAG,KAAKC,UAAL,GAAkBC,GAAlB,CAAuBC,KAAD,IAAWA,KAAK,CAACC,IAAvC,CAAlB;AACA,UAAMC,cAAc,GAAG,KAAKP,MAAL,CAAYQ,YAAZ,IAA4B,EAAnD;AACAD,IAAAA,cAAc,CAACE,OAAf,CAAwBC,aAAD,IAAmB;AACxC,UAAI,CAACR,SAAS,CAACS,QAAV,CAAmBD,aAAnB,CAAL,EAAwC;AACtC,cAAM,KAAIE,oBAAJ,EACH,0CAAyCF,aAAc,wBAAuBG,uBAAaC,EAAG,SAD3F,CAAN;AAGD;AACF,KAND;AAOA,WAAOP,cAAP;AACD;;AAEDJ,EAAAA,UAAU,GAAG;AACX,UAAMY,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYC,gCAAZ,EAA2Bd,GAA3B,CAAgCe,UAAD,IAAgB,KAAID,iCAAcC,UAAd,CAAJ,GAA/C,CAAlB;AACA,UAAMC,UAAU,GAAG,KAAIC,6BAAJ,EAAeN,SAAf,CAAnB;AACA,UAAMO,eAAe,GAAGF,UAAU,CAACG,gBAAX,EAAxB;AACA,WAAOD,eAAe,CAAClB,GAAhB,CAAqBoB,aAAD,IAAmB;AAC5C,aAAO;AACLlB,QAAAA,IAAI,EAAEkB,aAAa,CAACzB,WAAd,CAA0BO,IAD3B;AAELmB,QAAAA,WAAW,EAAED,aAAa,CAACC,WAFtB;AAGLC,QAAAA,QAAQ,EAAEF,aAAa,CAACE,QAHnB;AAILC,QAAAA,YAAY,EAAEH,aAAa,CAACG;AAJvB,OAAP;AAMD,KAPM,CAAP;AAQD;;AAQoB,eAARC,QAAQ,CAAC,CAACC,GAAD,CAAD,EAAmB7B,MAAnB,EAAyC;AAC5D,UAAM8B,UAAU,GAAG,IAAIhC,UAAJ,CAAeE,MAAf,CAAnB;AACA6B,IAAAA,GAAG,CAACE,QAAJ,CAAa,KAAIC,+BAAJ,EAAuBF,UAAvB,CAAb;AACA,WAAOA,UAAP;AACD;;AAxCqB;;;gCAAXhC,U,WA8BI,E;gCA9BJA,U,kBA+BW,CAACmC,gBAAD,C;gCA/BXnC,U,mBAgCY;AACrBU,EAAAA,YAAY,EAAE;AADO,C;gCAhCZV,U,aAmCMoC,kB;;AAQnBrB,uBAAasB,UAAb,CAAwBrC,UAAxB","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { ComponentIssuesCmd } from './issues-cmd';\nimport { IssuesAspect } from './issues.aspect';\n\nexport type IssuesConfig = {\n ignoreIssues: string[];\n};\n\nexport class IssuesMain {\n constructor(private config: IssuesConfig) {}\n\n getIssuesToIgnore(): string[] {\n const allIssues = this.listIssues().map((issue) => issue.name);\n const issuesToIgnore = this.config.ignoreIssues || [];\n issuesToIgnore.forEach((issueToIgnore) => {\n if (!allIssues.includes(issueToIgnore)) {\n throw new BitError(\n `fatal: a non-existing component-issue \"${issueToIgnore}\" was configured for ${IssuesAspect.id} aspect`\n );\n }\n });\n return issuesToIgnore;\n }\n\n listIssues() {\n const instances = Object.keys(IssuesClasses).map((issueClass) => new IssuesClasses[issueClass]());\n const issuesList = new IssuesList(instances);\n const nonLegacyIssues = issuesList.getHarmonyIssues();\n return nonLegacyIssues.map((issueInstance) => {\n return {\n name: issueInstance.constructor.name,\n description: issueInstance.description,\n solution: issueInstance.solution,\n isTagBlocker: issueInstance.isTagBlocker,\n };\n });\n }\n\n static slots = [];\n static dependencies = [CLIAspect];\n static defaultConfig = {\n ignoreIssues: [],\n };\n static runtime = MainRuntime;\n static async provider([cli]: [CLIMain], config: IssuesConfig) {\n const issuesMain = new IssuesMain(config);\n cli.register(new ComponentIssuesCmd(issuesMain));\n return issuesMain;\n }\n}\n\nIssuesAspect.addRuntime(IssuesMain);\n"]}
1
+ {"version":3,"sources":["issues.main.runtime.ts"],"names":["IssuesMain","constructor","config","getIssuesToIgnoreGlobally","issuesToIgnore","ignoreIssues","validateIssueNames","getIssuesToIgnorePerComponent","component","state","aspects","get","IssuesAspect","id","issues","allIssues","listIssues","map","issue","name","forEach","includes","NonExistIssueError","instances","Object","keys","IssuesClasses","issueClass","issuesList","IssuesList","nonLegacyIssues","getHarmonyIssues","issueInstance","description","solution","isTagBlocker","removeIgnoredIssuesFromComponents","components","issuesToIgnoreGlobally","issuesToIgnoreForThisComp","issueToIgnore","delete","provider","cli","issuesMain","register","ComponentIssuesCmd","CLIAspect","MainRuntime","addRuntime"],"mappings":"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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component } from '@teambit/component';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { ComponentIssuesCmd } from './issues-cmd';\nimport { IssuesAspect } from './issues.aspect';\nimport { NonExistIssueError } from './non-exist-issue-error';\n\nexport type IssuesConfig = {\n ignoreIssues: string[];\n};\n\nexport class IssuesMain {\n constructor(private config: IssuesConfig) {}\n\n getIssuesToIgnoreGlobally(): string[] {\n const issuesToIgnore = this.config.ignoreIssues || [];\n this.validateIssueNames(issuesToIgnore);\n return issuesToIgnore;\n }\n\n getIssuesToIgnorePerComponent(component: Component): string[] {\n const issuesToIgnore = component.state.aspects.get(IssuesAspect.id)?.config.ignoreIssues;\n if (!issuesToIgnore) return [];\n this.validateIssueNames(issuesToIgnore);\n return issuesToIgnore;\n }\n\n private validateIssueNames(issues: string[]) {\n const allIssues = this.listIssues().map((issue) => issue.name);\n issues.forEach((issue) => {\n if (!allIssues.includes(issue)) {\n throw new NonExistIssueError(issue);\n }\n });\n }\n\n listIssues() {\n const instances = Object.keys(IssuesClasses).map((issueClass) => new IssuesClasses[issueClass]());\n const issuesList = new IssuesList(instances);\n const nonLegacyIssues = issuesList.getHarmonyIssues();\n return nonLegacyIssues.map((issueInstance) => {\n return {\n name: issueInstance.constructor.name,\n description: issueInstance.description,\n solution: issueInstance.solution,\n isTagBlocker: issueInstance.isTagBlocker,\n };\n });\n }\n\n removeIgnoredIssuesFromComponents(components: Component[]) {\n const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();\n components.forEach((component) => {\n const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);\n const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp];\n issuesToIgnore.forEach((issueToIgnore) => {\n component.state.issues.delete(IssuesClasses[issueToIgnore]);\n });\n });\n }\n\n static slots = [];\n static dependencies = [CLIAspect];\n static defaultConfig = {\n ignoreIssues: [],\n };\n static runtime = MainRuntime;\n static async provider([cli]: [CLIMain], config: IssuesConfig) {\n const issuesMain = new IssuesMain(config);\n cli.register(new ComponentIssuesCmd(issuesMain));\n return issuesMain;\n }\n}\n\nIssuesAspect.addRuntime(IssuesMain);\n"]}
@@ -0,0 +1,4 @@
1
+ import { BitError } from '@teambit/bit-error';
2
+ export declare class NonExistIssueError extends BitError {
3
+ constructor(issueToIgnore: string);
4
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NonExistIssueError = void 0;
7
+
8
+ function _bitError() {
9
+ const data = require("@teambit/bit-error");
10
+
11
+ _bitError = function () {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ function _issues() {
19
+ const data = require("./issues.aspect");
20
+
21
+ _issues = function () {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ class NonExistIssueError extends _bitError().BitError {
29
+ constructor(issueToIgnore) {
30
+ super(`fatal: a non-existing component-issue "${issueToIgnore}" was configured for ${_issues().IssuesAspect.id} aspect.
31
+ to get the list of component-issues, please run "bit component-issues"`);
32
+ }
33
+
34
+ }
35
+
36
+ exports.NonExistIssueError = NonExistIssueError;
37
+
38
+ //# sourceMappingURL=non-exist-issue-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["non-exist-issue-error.ts"],"names":["NonExistIssueError","BitError","constructor","issueToIgnore","IssuesAspect","id"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,kBAAN,SAAiCC,oBAAjC,CAA0C;AAC/CC,EAAAA,WAAW,CAACC,aAAD,EAAwB;AACjC,UAAO,0CAAyCA,aAAc,wBAAuBC,uBAAaC,EAAG;AACzG,uEADI;AAED;;AAJ8C","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { IssuesAspect } from './issues.aspect';\n\nexport class NonExistIssueError extends BitError {\n constructor(issueToIgnore: string) {\n super(`fatal: a non-existing component-issue \"${issueToIgnore}\" was configured for ${IssuesAspect.id} aspect.\nto get the list of component-issues, please run \"bit component-issues\"`);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "@teambit/issues",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "homepage": "https://bit.dev/teambit/component/issues",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "issues",
9
- "version": "0.0.3"
9
+ "version": "0.0.4"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
13
13
  "@teambit/harmony": "0.2.11",
14
14
  "@babel/runtime": "7.12.18",
15
15
  "core-js": "^3.0.0",
16
- "@teambit/cli": "0.0.464",
17
- "@teambit/bit-error": "0.0.394",
18
- "@teambit/component-issues": "0.0.49"
16
+ "@teambit/cli": "0.0.465",
17
+ "@teambit/component-issues": "0.0.49",
18
+ "@teambit/component": "0.0.696",
19
+ "@teambit/bit-error": "0.0.394"
19
20
  },
20
21
  "devDependencies": {
21
22
  "@types/mocha": "9.1.0",
@@ -26,7 +27,7 @@
26
27
  "@types/node": "12.20.4"
27
28
  },
28
29
  "peerDependencies": {
29
- "@teambit/legacy": "1.0.242",
30
+ "@teambit/legacy": "1.0.243",
30
31
  "react-dom": "^16.8.0 || ^17.0.0",
31
32
  "react": "^16.8.0 || ^17.0.0"
32
33
  },
@@ -54,7 +55,7 @@
54
55
  "react": "-"
55
56
  },
56
57
  "peerDependencies": {
57
- "@teambit/legacy": "1.0.242",
58
+ "@teambit/legacy": "1.0.243",
58
59
  "react-dom": "^16.8.0 || ^17.0.0",
59
60
  "react": "^16.8.0 || ^17.0.0"
60
61
  }