@teambit/issues 0.0.189 → 0.0.190
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.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/issues-cmd.js +0 -14
- package/dist/issues-cmd.js.map +1 -1
- package/dist/issues.aspect.js +0 -5
- package/dist/issues.aspect.js.map +1 -1
- package/dist/issues.main.runtime.js +1 -42
- package/dist/issues.main.runtime.js.map +1 -1
- package/dist/non-exist-issue-error.js +0 -9
- package/dist/non-exist-issue-error.js.map +1 -1
- package/package-tar/teambit-issues-0.0.190.tgz +0 -0
- package/package.json +3 -3
- /package/{preview-1666409808293.js → preview-1666496165706.js} +0 -0
- package/package-tar/teambit-issues-0.0.189.tgz +0 -0
package/dist/index.js
CHANGED
@@ -10,19 +10,14 @@ Object.defineProperty(exports, "IssuesAspect", {
|
|
10
10
|
}
|
11
11
|
});
|
12
12
|
exports.default = void 0;
|
13
|
-
|
14
13
|
function _issues() {
|
15
14
|
const data = require("./issues.aspect");
|
16
|
-
|
17
15
|
_issues = function () {
|
18
16
|
return data;
|
19
17
|
};
|
20
|
-
|
21
18
|
return data;
|
22
19
|
}
|
23
|
-
|
24
20
|
var _default = _issues().IssuesAspect;
|
25
|
-
|
26
21
|
exports.default = _default;
|
27
22
|
|
28
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IssuesAspect"],"sources":["index.ts"],"sourcesContent":["import { IssuesAspect } from './issues.aspect';\n\nexport type { IssuesMain } from './issues.main.runtime';\nexport default IssuesAspect;\nexport { IssuesAspect };\n"],"mappings":"
|
1
|
+
{"version":3,"names":["IssuesAspect"],"sources":["index.ts"],"sourcesContent":["import { IssuesAspect } from './issues.aspect';\n\nexport type { IssuesMain } from './issues.main.runtime';\nexport default IssuesAspect;\nexport { IssuesAspect };\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA+C,eAGhCA,sBAAY;AAAA"}
|
package/dist/issues-cmd.js
CHANGED
@@ -1,36 +1,26 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
require("core-js/modules/es.symbol.description.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.promise.js");
|
8
|
-
|
9
6
|
Object.defineProperty(exports, "__esModule", {
|
10
7
|
value: true
|
11
8
|
});
|
12
9
|
exports.ComponentIssuesCmd = void 0;
|
13
|
-
|
14
10
|
function _defineProperty2() {
|
15
11
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
16
|
-
|
17
12
|
_defineProperty2 = function () {
|
18
13
|
return data;
|
19
14
|
};
|
20
|
-
|
21
15
|
return data;
|
22
16
|
}
|
23
|
-
|
24
17
|
function _chalk() {
|
25
18
|
const data = _interopRequireDefault(require("chalk"));
|
26
|
-
|
27
19
|
_chalk = function () {
|
28
20
|
return data;
|
29
21
|
};
|
30
|
-
|
31
22
|
return data;
|
32
23
|
}
|
33
|
-
|
34
24
|
class ComponentIssuesCmd {
|
35
25
|
constructor(issues) {
|
36
26
|
this.issues = issues;
|
@@ -41,7 +31,6 @@ class ComponentIssuesCmd {
|
|
41
31
|
(0, _defineProperty2().default)(this, "options", [['j', 'json', 'json format']]);
|
42
32
|
(0, _defineProperty2().default)(this, "loader", true);
|
43
33
|
}
|
44
|
-
|
45
34
|
async report() {
|
46
35
|
const results = await this.json();
|
47
36
|
return results.map(result => `${_chalk().default.bold(result.name)}
|
@@ -50,13 +39,10 @@ Possible solution: ${result.solution}
|
|
50
39
|
Is Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}
|
51
40
|
`).join('\n');
|
52
41
|
}
|
53
|
-
|
54
42
|
async json() {
|
55
43
|
return this.issues.listIssues();
|
56
44
|
}
|
57
|
-
|
58
45
|
}
|
59
|
-
|
60
46
|
exports.ComponentIssuesCmd = ComponentIssuesCmd;
|
61
47
|
|
62
48
|
//# sourceMappingURL=issues-cmd.js.map
|
package/dist/issues-cmd.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ComponentIssuesCmd","constructor","issues","report","results","json","map","result","chalk","bold","name","description","solution","isTagBlocker","join","listIssues"],"sources":["issues-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { IssuesMain } from './issues.main.runtime';\n\nexport class ComponentIssuesCmd implements Command {\n name = 'component-issues';\n description = 'list available component-issues';\n alias = '';\n group = 'development';\n options = [['j', 'json', 'json format']] as CommandOptions;\n loader = true;\n\n constructor(private issues: IssuesMain) {}\n\n async report() {\n const results = await this.json();\n return results\n .map(\n (result) => `${chalk.bold(result.name)}\n${result.description}\nPossible solution: ${result.solution}\nIs Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}\n`\n )\n .join('\\n');\n }\n\n async json() {\n return this.issues.listIssues();\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["ComponentIssuesCmd","constructor","issues","report","results","json","map","result","chalk","bold","name","description","solution","isTagBlocker","join","listIssues"],"sources":["issues-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { IssuesMain } from './issues.main.runtime';\n\nexport class ComponentIssuesCmd implements Command {\n name = 'component-issues';\n description = 'list available component-issues';\n alias = '';\n group = 'development';\n options = [['j', 'json', 'json format']] as CommandOptions;\n loader = true;\n\n constructor(private issues: IssuesMain) {}\n\n async report() {\n const results = await this.json();\n return results\n .map(\n (result) => `${chalk.bold(result.name)}\n${result.description}\nPossible solution: ${result.solution}\nIs Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}\n`\n )\n .join('\\n');\n }\n\n async json() {\n return this.issues.listIssues();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIO,MAAMA,kBAAkB,CAAoB;EAQjDC,WAAW,CAASC,MAAkB,EAAE;IAAA,KAApBA,MAAkB,GAAlBA,MAAkB;IAAA,8CAP/B,kBAAkB;IAAA,qDACX,iCAAiC;IAAA,+CACvC,EAAE;IAAA,+CACF,aAAa;IAAA,iDACX,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAAA,gDAC/B,IAAI;EAE4B;EAEzC,MAAMC,MAAM,GAAG;IACb,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,IAAI,EAAE;IACjC,OAAOD,OAAO,CACXE,GAAG,CACDC,MAAM,IAAM,GAAEC,gBAAK,CAACC,IAAI,CAACF,MAAM,CAACG,IAAI,CAAE;AAC/C,EAAEH,MAAM,CAACI,WAAY;AACrB,qBAAqBJ,MAAM,CAACK,QAAS;AACrC,uBAAuBL,MAAM,CAACM,YAAY,GAAG,KAAK,GAAG,IAAK;AAC1D,CAAC,CACM,CACAC,IAAI,CAAC,IAAI,CAAC;EACf;EAEA,MAAMT,IAAI,GAAG;IACX,OAAO,IAAI,CAACH,MAAM,CAACa,UAAU,EAAE;EACjC;AACF;AAAC"}
|
package/dist/issues.aspect.js
CHANGED
@@ -4,21 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.IssuesAspect = void 0;
|
7
|
-
|
8
7
|
function _harmony() {
|
9
8
|
const data = require("@teambit/harmony");
|
10
|
-
|
11
9
|
_harmony = function () {
|
12
10
|
return data;
|
13
11
|
};
|
14
|
-
|
15
12
|
return data;
|
16
13
|
}
|
17
|
-
|
18
14
|
const IssuesAspect = _harmony().Aspect.create({
|
19
15
|
id: 'teambit.component/issues'
|
20
16
|
});
|
21
|
-
|
22
17
|
exports.IssuesAspect = IssuesAspect;
|
23
18
|
|
24
19
|
//# sourceMappingURL=issues.aspect.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IssuesAspect","Aspect","create","id"],"sources":["issues.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const IssuesAspect = Aspect.create({\n id: 'teambit.component/issues',\n});\n"],"mappings":"
|
1
|
+
{"version":3,"names":["IssuesAspect","Aspect","create","id"],"sources":["issues.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const IssuesAspect = Aspect.create({\n id: 'teambit.component/issues',\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,YAAY,GAAGC,iBAAM,CAACC,MAAM,CAAC;EACxCC,EAAE,EAAE;AACN,CAAC,CAAC;AAAC"}
|
@@ -1,119 +1,86 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
require("core-js/modules/es.symbol.description.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.array.iterator.js");
|
8
|
-
|
9
6
|
require("core-js/modules/es.promise.js");
|
10
|
-
|
11
7
|
Object.defineProperty(exports, "__esModule", {
|
12
8
|
value: true
|
13
9
|
});
|
14
10
|
exports.IssuesMain = void 0;
|
15
|
-
|
16
11
|
function _defineProperty2() {
|
17
12
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
18
|
-
|
19
13
|
_defineProperty2 = function () {
|
20
14
|
return data;
|
21
15
|
};
|
22
|
-
|
23
16
|
return data;
|
24
17
|
}
|
25
|
-
|
26
18
|
function _cli() {
|
27
19
|
const data = require("@teambit/cli");
|
28
|
-
|
29
20
|
_cli = function () {
|
30
21
|
return data;
|
31
22
|
};
|
32
|
-
|
33
23
|
return data;
|
34
24
|
}
|
35
|
-
|
36
25
|
function _componentIssues() {
|
37
26
|
const data = require("@teambit/component-issues");
|
38
|
-
|
39
27
|
_componentIssues = function () {
|
40
28
|
return data;
|
41
29
|
};
|
42
|
-
|
43
30
|
return data;
|
44
31
|
}
|
45
|
-
|
46
32
|
function _harmony() {
|
47
33
|
const data = require("@teambit/harmony");
|
48
|
-
|
49
34
|
_harmony = function () {
|
50
35
|
return data;
|
51
36
|
};
|
52
|
-
|
53
37
|
return data;
|
54
38
|
}
|
55
|
-
|
56
39
|
function _pMapSeries() {
|
57
40
|
const data = _interopRequireDefault(require("p-map-series"));
|
58
|
-
|
59
41
|
_pMapSeries = function () {
|
60
42
|
return data;
|
61
43
|
};
|
62
|
-
|
63
44
|
return data;
|
64
45
|
}
|
65
|
-
|
66
46
|
function _issuesCmd() {
|
67
47
|
const data = require("./issues-cmd");
|
68
|
-
|
69
48
|
_issuesCmd = function () {
|
70
49
|
return data;
|
71
50
|
};
|
72
|
-
|
73
51
|
return data;
|
74
52
|
}
|
75
|
-
|
76
53
|
function _issues() {
|
77
54
|
const data = require("./issues.aspect");
|
78
|
-
|
79
55
|
_issues = function () {
|
80
56
|
return data;
|
81
57
|
};
|
82
|
-
|
83
58
|
return data;
|
84
59
|
}
|
85
|
-
|
86
60
|
function _nonExistIssueError() {
|
87
61
|
const data = require("./non-exist-issue-error");
|
88
|
-
|
89
62
|
_nonExistIssueError = function () {
|
90
63
|
return data;
|
91
64
|
};
|
92
|
-
|
93
65
|
return data;
|
94
66
|
}
|
95
|
-
|
96
67
|
class IssuesMain {
|
97
68
|
constructor(config, addComponentsIssuesSlot) {
|
98
69
|
this.config = config;
|
99
70
|
this.addComponentsIssuesSlot = addComponentsIssuesSlot;
|
100
71
|
}
|
101
|
-
|
102
72
|
getIssuesToIgnoreGlobally() {
|
103
73
|
const issuesToIgnore = this.config.ignoreIssues || [];
|
104
74
|
this.validateIssueNames(issuesToIgnore);
|
105
75
|
return issuesToIgnore;
|
106
76
|
}
|
107
|
-
|
108
77
|
getIssuesToIgnorePerComponent(component) {
|
109
78
|
var _component$state$aspe;
|
110
|
-
|
111
79
|
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;
|
112
80
|
if (!issuesToIgnore) return [];
|
113
81
|
this.validateIssueNames(issuesToIgnore);
|
114
82
|
return issuesToIgnore;
|
115
83
|
}
|
116
|
-
|
117
84
|
validateIssueNames(issues) {
|
118
85
|
const allIssues = this.listIssues().map(issue => issue.name);
|
119
86
|
issues.forEach(issue => {
|
@@ -122,7 +89,6 @@ class IssuesMain {
|
|
122
89
|
}
|
123
90
|
});
|
124
91
|
}
|
125
|
-
|
126
92
|
listIssues() {
|
127
93
|
const instances = Object.keys(_componentIssues().IssuesClasses).map(issueClass => new (_componentIssues().IssuesClasses[issueClass])());
|
128
94
|
const issuesList = new (_componentIssues().IssuesList)(instances);
|
@@ -136,7 +102,6 @@ class IssuesMain {
|
|
136
102
|
};
|
137
103
|
});
|
138
104
|
}
|
139
|
-
|
140
105
|
removeIgnoredIssuesFromComponents(components) {
|
141
106
|
const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();
|
142
107
|
components.forEach(component => {
|
@@ -147,31 +112,26 @@ class IssuesMain {
|
|
147
112
|
});
|
148
113
|
});
|
149
114
|
}
|
115
|
+
|
150
116
|
/**
|
151
117
|
* register to this slot in order to add a component-issue in bit-status and bit-snap/tag.
|
152
118
|
* your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check
|
153
119
|
* for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.
|
154
120
|
* this is useful for optimization, if you don't want to calculate the component issue when it's ignored.
|
155
121
|
*/
|
156
|
-
|
157
|
-
|
158
122
|
registerAddComponentsIssues(addComponentsIssues) {
|
159
123
|
this.addComponentsIssuesSlot.register(addComponentsIssues);
|
160
124
|
}
|
161
|
-
|
162
125
|
async triggerAddComponentIssues(components, issuesToIgnore) {
|
163
126
|
const allFunctions = this.addComponentsIssuesSlot.values();
|
164
127
|
await (0, _pMapSeries().default)(allFunctions, func => func(components, issuesToIgnore));
|
165
128
|
}
|
166
|
-
|
167
129
|
static async provider([cli], config, [addComponentsIssuesSlot]) {
|
168
130
|
const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);
|
169
131
|
cli.register(new (_issuesCmd().ComponentIssuesCmd)(issuesMain));
|
170
132
|
return issuesMain;
|
171
133
|
}
|
172
|
-
|
173
134
|
}
|
174
|
-
|
175
135
|
exports.IssuesMain = IssuesMain;
|
176
136
|
(0, _defineProperty2().default)(IssuesMain, "slots", [_harmony().Slot.withType()]);
|
177
137
|
(0, _defineProperty2().default)(IssuesMain, "dependencies", [_cli().CLIAspect]);
|
@@ -179,7 +139,6 @@ exports.IssuesMain = IssuesMain;
|
|
179
139
|
ignoreIssues: []
|
180
140
|
});
|
181
141
|
(0, _defineProperty2().default)(IssuesMain, "runtime", _cli().MainRuntime);
|
182
|
-
|
183
142
|
_issues().IssuesAspect.addRuntime(IssuesMain);
|
184
143
|
|
185
144
|
//# sourceMappingURL=issues.main.runtime.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IssuesMain","constructor","config","addComponentsIssuesSlot","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","getAllIssues","issueInstance","description","solution","isTagBlocker","removeIgnoredIssuesFromComponents","components","issuesToIgnoreGlobally","issuesToIgnoreForThisComp","issueToIgnore","delete","registerAddComponentsIssues","addComponentsIssues","register","triggerAddComponentIssues","allFunctions","values","pMapSeries","func","provider","cli","issuesMain","ComponentIssuesCmd","Slot","withType","CLIAspect","MainRuntime","addRuntime"],"sources":["issues.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component } from '@teambit/component';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport pMapSeries from 'p-map-series';\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 type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;\n\nexport type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;\n\nexport class IssuesMain {\n constructor(private config: IssuesConfig, private addComponentsIssuesSlot: AddComponentsIssuesSlot) {}\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 allIssues = issuesList.getAllIssues();\n return allIssues.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 /**\n * register to this slot in order to add a component-issue in bit-status and bit-snap/tag.\n * your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check\n * for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.\n * this is useful for optimization, if you don't want to calculate the component issue when it's ignored.\n */\n registerAddComponentsIssues(addComponentsIssues: AddComponentsIssues) {\n this.addComponentsIssuesSlot.register(addComponentsIssues);\n }\n\n async triggerAddComponentIssues(components: Component[], issuesToIgnore: string[]) {\n const allFunctions = this.addComponentsIssuesSlot.values();\n await pMapSeries(allFunctions, (func) => func(components, issuesToIgnore));\n }\n\n static slots = [Slot.withType<AddComponentsIssues>()];\n static dependencies = [CLIAspect];\n static defaultConfig = {\n ignoreIssues: [],\n };\n static runtime = MainRuntime;\n static async provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]) {\n const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);\n cli.register(new ComponentIssuesCmd(issuesMain));\n return issuesMain;\n }\n}\n\nIssuesAspect.addRuntime(IssuesMain);\n"],"mappings":"
|
1
|
+
{"version":3,"names":["IssuesMain","constructor","config","addComponentsIssuesSlot","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","getAllIssues","issueInstance","description","solution","isTagBlocker","removeIgnoredIssuesFromComponents","components","issuesToIgnoreGlobally","issuesToIgnoreForThisComp","issueToIgnore","delete","registerAddComponentsIssues","addComponentsIssues","register","triggerAddComponentIssues","allFunctions","values","pMapSeries","func","provider","cli","issuesMain","ComponentIssuesCmd","Slot","withType","CLIAspect","MainRuntime","addRuntime"],"sources":["issues.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component } from '@teambit/component';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport pMapSeries from 'p-map-series';\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 type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;\n\nexport type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;\n\nexport class IssuesMain {\n constructor(private config: IssuesConfig, private addComponentsIssuesSlot: AddComponentsIssuesSlot) {}\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 allIssues = issuesList.getAllIssues();\n return allIssues.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 /**\n * register to this slot in order to add a component-issue in bit-status and bit-snap/tag.\n * your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check\n * for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.\n * this is useful for optimization, if you don't want to calculate the component issue when it's ignored.\n */\n registerAddComponentsIssues(addComponentsIssues: AddComponentsIssues) {\n this.addComponentsIssuesSlot.register(addComponentsIssues);\n }\n\n async triggerAddComponentIssues(components: Component[], issuesToIgnore: string[]) {\n const allFunctions = this.addComponentsIssuesSlot.values();\n await pMapSeries(allFunctions, (func) => func(components, issuesToIgnore));\n }\n\n static slots = [Slot.withType<AddComponentsIssues>()];\n static dependencies = [CLIAspect];\n static defaultConfig = {\n ignoreIssues: [],\n };\n static runtime = MainRuntime;\n static async provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]) {\n const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);\n cli.register(new ComponentIssuesCmd(issuesMain));\n return issuesMain;\n }\n}\n\nIssuesAspect.addRuntime(IssuesMain);\n"],"mappings":"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"}
|
@@ -4,35 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.NonExistIssueError = void 0;
|
7
|
-
|
8
7
|
function _bitError() {
|
9
8
|
const data = require("@teambit/bit-error");
|
10
|
-
|
11
9
|
_bitError = function () {
|
12
10
|
return data;
|
13
11
|
};
|
14
|
-
|
15
12
|
return data;
|
16
13
|
}
|
17
|
-
|
18
14
|
function _issues() {
|
19
15
|
const data = require("./issues.aspect");
|
20
|
-
|
21
16
|
_issues = function () {
|
22
17
|
return data;
|
23
18
|
};
|
24
|
-
|
25
19
|
return data;
|
26
20
|
}
|
27
|
-
|
28
21
|
class NonExistIssueError extends _bitError().BitError {
|
29
22
|
constructor(issueToIgnore) {
|
30
23
|
super(`fatal: a non-existing component-issue "${issueToIgnore}" was configured for ${_issues().IssuesAspect.id} aspect.
|
31
24
|
to get the list of component-issues, please run "bit component-issues"`);
|
32
25
|
}
|
33
|
-
|
34
26
|
}
|
35
|
-
|
36
27
|
exports.NonExistIssueError = NonExistIssueError;
|
37
28
|
|
38
29
|
//# sourceMappingURL=non-exist-issue-error.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NonExistIssueError","BitError","constructor","issueToIgnore","IssuesAspect","id"],"sources":["non-exist-issue-error.ts"],"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"],"mappings":"
|
1
|
+
{"version":3,"names":["NonExistIssueError","BitError","constructor","issueToIgnore","IssuesAspect","id"],"sources":["non-exist-issue-error.ts"],"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"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,kBAAkB,SAASC,oBAAQ,CAAC;EAC/CC,WAAW,CAACC,aAAqB,EAAE;IACjC,KAAK,CAAE,0CAAyCA,aAAc,wBAAuBC,sBAAY,CAACC,EAAG;AACzG,uEAAuE,CAAC;EACtE;AACF;AAAC"}
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/issues",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.190",
|
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.
|
9
|
+
"version": "0.0.190"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
@@ -16,7 +16,7 @@
|
|
16
16
|
"@teambit/harmony": "0.3.3",
|
17
17
|
"@teambit/cli": "0.0.591",
|
18
18
|
"@teambit/component-issues": "0.0.73",
|
19
|
-
"@teambit/component": "0.0.
|
19
|
+
"@teambit/component": "0.0.882",
|
20
20
|
"@teambit/bit-error": "0.0.400"
|
21
21
|
},
|
22
22
|
"devDependencies": {
|
File without changes
|
Binary file
|