@teambit/issues 1.0.106 → 1.0.108
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/issues.main.runtime.d.ts +4 -4
- package/dist/issues.main.runtime.js +1 -2
- package/dist/issues.main.runtime.js.map +1 -1
- package/index.ts +5 -0
- package/issues-cmd.ts +32 -0
- package/issues.aspect.ts +5 -0
- package/issues.main.runtime.ts +96 -0
- package/non-exist-issue-error.ts +9 -0
- package/package.json +12 -21
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
- /package/dist/{preview-1703505948637.js → preview-1703647408454.js} +0 -0
@@ -1,11 +1,11 @@
|
|
1
1
|
import { CLIMain } from '@teambit/cli';
|
2
2
|
import { Component } from '@teambit/component';
|
3
3
|
import { SlotRegistry } from '@teambit/harmony';
|
4
|
-
export
|
4
|
+
export type IssuesConfig = {
|
5
5
|
ignoreIssues: string[];
|
6
6
|
};
|
7
|
-
export
|
8
|
-
export
|
7
|
+
export type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;
|
8
|
+
export type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;
|
9
9
|
export declare class IssuesMain {
|
10
10
|
private config;
|
11
11
|
private addComponentsIssuesSlot;
|
@@ -31,7 +31,7 @@ export declare class IssuesMain {
|
|
31
31
|
static slots: ((registerFn: () => string) => SlotRegistry<AddComponentsIssues>)[];
|
32
32
|
static dependencies: import("@teambit/harmony").Aspect[];
|
33
33
|
static defaultConfig: {
|
34
|
-
ignoreIssues:
|
34
|
+
ignoreIssues: any[];
|
35
35
|
};
|
36
36
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
37
37
|
static provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]): Promise<IssuesMain>;
|
@@ -68,8 +68,7 @@ class IssuesMain {
|
|
68
68
|
return issuesToIgnore;
|
69
69
|
}
|
70
70
|
getIssuesToIgnorePerComponent(component) {
|
71
|
-
|
72
|
-
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;
|
71
|
+
const issuesToIgnore = component.state.aspects.get(_issues().IssuesAspect.id)?.config.ignoreIssues;
|
73
72
|
if (!issuesToIgnore) return [];
|
74
73
|
this.validateIssueNames(issuesToIgnore);
|
75
74
|
return issuesToIgnore;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_componentIssues","_harmony","_pMapSeries","_interopRequireDefault","_issuesCmd","_issues","_nonExistIssueError","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","IssuesMain","constructor","config","addComponentsIssuesSlot","getIssuesToIgnoreGlobally","issuesToIgnore","ignoreIssues","validateIssueNames","getIssuesToIgnorePerComponent","component","
|
1
|
+
{"version":3,"names":["_cli","data","require","_componentIssues","_harmony","_pMapSeries","_interopRequireDefault","_issuesCmd","_issues","_nonExistIssueError","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","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","keys","IssuesClasses","issueClass","issuesList","IssuesList","getAllIssues","issueInstance","description","solution","isTagBlocker","removeIgnoredIssuesFromComponents","components","extraIssuesToIgnore","issuesToIgnoreGlobally","issuesToIgnoreForThisComp","issueToIgnore","delete","registerAddComponentsIssues","addComponentsIssues","register","triggerAddComponentIssues","allFunctions","values","pMapSeries","func","provider","cli","issuesMain","ComponentIssuesCmd","exports","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[], extraIssuesToIgnore: string[] = []) {\n const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();\n components.forEach((component) => {\n const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);\n const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp, ...extraIssuesToIgnore];\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":";;;;;;AAAA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,iBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAJ,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,WAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,UAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,oBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,mBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6D,SAAAK,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAUtD,MAAMW,UAAU,CAAC;EACtBC,WAAWA,CAASC,MAAoB,EAAUC,uBAAgD,EAAE;IAAA,KAAhFD,MAAoB,GAApBA,MAAoB;IAAA,KAAUC,uBAAgD,GAAhDA,uBAAgD;EAAG;EAErGC,yBAAyBA,CAAA,EAAa;IACpC,MAAMC,cAAc,GAAG,IAAI,CAACH,MAAM,CAACI,YAAY,IAAI,EAAE;IACrD,IAAI,CAACC,kBAAkB,CAACF,cAAc,CAAC;IACvC,OAAOA,cAAc;EACvB;EAEAG,6BAA6BA,CAACC,SAAoB,EAAY;IAC5D,MAAMJ,cAAc,GAAGI,SAAS,CAACC,KAAK,CAACC,OAAO,CAACC,GAAG,CAACC,sBAAY,CAACC,EAAE,CAAC,EAAEZ,MAAM,CAACI,YAAY;IACxF,IAAI,CAACD,cAAc,EAAE,OAAO,EAAE;IAC9B,IAAI,CAACE,kBAAkB,CAACF,cAAc,CAAC;IACvC,OAAOA,cAAc;EACvB;EAEQE,kBAAkBA,CAACQ,MAAgB,EAAE;IAC3C,MAAMC,SAAS,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC;IAC9DL,MAAM,CAACM,OAAO,CAAEF,KAAK,IAAK;MACxB,IAAI,CAACH,SAAS,CAACM,QAAQ,CAACH,KAAK,CAAC,EAAE;QAC9B,MAAM,KAAII,wCAAkB,EAACJ,KAAK,CAAC;MACrC;IACF,CAAC,CAAC;EACJ;EAEAF,UAAUA,CAAA,EAAG;IACX,MAAMO,SAAS,GAAGxC,MAAM,CAACyC,IAAI,CAACC,gCAAa,CAAC,CAACR,GAAG,CAAES,UAAU,IAAK,KAAID,gCAAa,CAACC,UAAU,CAAC,EAAC,CAAC,CAAC;IACjG,MAAMC,UAAU,GAAG,KAAIC,6BAAU,EAACL,SAAS,CAAC;IAC5C,MAAMR,SAAS,GAAGY,UAAU,CAACE,YAAY,CAAC,CAAC;IAC3C,OAAOd,SAAS,CAACE,GAAG,CAAEa,aAAa,IAAK;MACtC,OAAO;QACLX,IAAI,EAAEW,aAAa,CAAC9B,WAAW,CAACmB,IAAI;QACpCY,WAAW,EAAED,aAAa,CAACC,WAAW;QACtCC,QAAQ,EAAEF,aAAa,CAACE,QAAQ;QAChCC,YAAY,EAAEH,aAAa,CAACG;MAC9B,CAAC;IACH,CAAC,CAAC;EACJ;EAEAC,iCAAiCA,CAACC,UAAuB,EAAEC,mBAA6B,GAAG,EAAE,EAAE;IAC7F,MAAMC,sBAAsB,GAAG,IAAI,CAAClC,yBAAyB,CAAC,CAAC;IAC/DgC,UAAU,CAACf,OAAO,CAAEZ,SAAS,IAAK;MAChC,MAAM8B,yBAAyB,GAAG,IAAI,CAAC/B,6BAA6B,CAACC,SAAS,CAAC;MAC/E,MAAMJ,cAAc,GAAG,CAAC,GAAGiC,sBAAsB,EAAE,GAAGC,yBAAyB,EAAE,GAAGF,mBAAmB,CAAC;MACxGhC,cAAc,CAACgB,OAAO,CAAEmB,aAAa,IAAK;QACxC/B,SAAS,CAACC,KAAK,CAACK,MAAM,CAAC0B,MAAM,CAACf,gCAAa,CAACc,aAAa,CAAC,CAAC;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEE,2BAA2BA,CAACC,mBAAwC,EAAE;IACpE,IAAI,CAACxC,uBAAuB,CAACyC,QAAQ,CAACD,mBAAmB,CAAC;EAC5D;EAEA,MAAME,yBAAyBA,CAACT,UAAuB,EAAE/B,cAAwB,EAAE;IACjF,MAAMyC,YAAY,GAAG,IAAI,CAAC3C,uBAAuB,CAAC4C,MAAM,CAAC,CAAC;IAC1D,MAAM,IAAAC,qBAAU,EAACF,YAAY,EAAGG,IAAI,IAAKA,IAAI,CAACb,UAAU,EAAE/B,cAAc,CAAC,CAAC;EAC5E;EAQA,aAAa6C,QAAQA,CAAC,CAACC,GAAG,CAAY,EAAEjD,MAAoB,EAAE,CAACC,uBAAuB,CAA4B,EAAE;IAClH,MAAMiD,UAAU,GAAG,IAAIpD,UAAU,CAACE,MAAM,EAAEC,uBAAuB,CAAC;IAClEgD,GAAG,CAACP,QAAQ,CAAC,KAAIS,+BAAkB,EAACD,UAAU,CAAC,CAAC;IAChD,OAAOA,UAAU;EACnB;AACF;AAACE,OAAA,CAAAtD,UAAA,GAAAA,UAAA;AAAApB,eAAA,CA5EYoB,UAAU,WAiEN,CAACuD,eAAI,CAACC,QAAQ,CAAsB,CAAC,CAAC;AAAA5E,eAAA,CAjE1CoB,UAAU,kBAkEC,CAACyD,gBAAS,CAAC;AAAA7E,eAAA,CAlEtBoB,UAAU,mBAmEE;EACrBM,YAAY,EAAE;AAChB,CAAC;AAAA1B,eAAA,CArEUoB,UAAU,aAsEJ0D,kBAAW;AAQ9B7C,sBAAY,CAAC8C,UAAU,CAAC3D,UAAU,CAAC"}
|
package/index.ts
ADDED
package/issues-cmd.ts
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
import chalk from 'chalk';
|
2
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
3
|
+
import { IssuesMain } from './issues.main.runtime';
|
4
|
+
|
5
|
+
export class ComponentIssuesCmd implements Command {
|
6
|
+
name = 'component-issues';
|
7
|
+
description = 'list available component-issues';
|
8
|
+
alias = '';
|
9
|
+
group = 'development';
|
10
|
+
options = [['j', 'json', 'output issues in json format']] as CommandOptions;
|
11
|
+
loader = true;
|
12
|
+
private = true;
|
13
|
+
|
14
|
+
constructor(private issues: IssuesMain) {}
|
15
|
+
|
16
|
+
async report() {
|
17
|
+
const results = await this.json();
|
18
|
+
return results
|
19
|
+
.map(
|
20
|
+
(result) => `${chalk.bold(result.name)}
|
21
|
+
${result.description}
|
22
|
+
Possible solution: ${result.solution}
|
23
|
+
Is Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}
|
24
|
+
`
|
25
|
+
)
|
26
|
+
.join('\n');
|
27
|
+
}
|
28
|
+
|
29
|
+
async json() {
|
30
|
+
return this.issues.listIssues();
|
31
|
+
}
|
32
|
+
}
|
package/issues.aspect.ts
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';
|
2
|
+
import { Component } from '@teambit/component';
|
3
|
+
import { IssuesClasses, IssuesList } from '@teambit/component-issues';
|
4
|
+
import { Slot, SlotRegistry } from '@teambit/harmony';
|
5
|
+
import pMapSeries from 'p-map-series';
|
6
|
+
import { ComponentIssuesCmd } from './issues-cmd';
|
7
|
+
import { IssuesAspect } from './issues.aspect';
|
8
|
+
import { NonExistIssueError } from './non-exist-issue-error';
|
9
|
+
|
10
|
+
export type IssuesConfig = {
|
11
|
+
ignoreIssues: string[];
|
12
|
+
};
|
13
|
+
|
14
|
+
export type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;
|
15
|
+
|
16
|
+
export type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;
|
17
|
+
|
18
|
+
export class IssuesMain {
|
19
|
+
constructor(private config: IssuesConfig, private addComponentsIssuesSlot: AddComponentsIssuesSlot) {}
|
20
|
+
|
21
|
+
getIssuesToIgnoreGlobally(): string[] {
|
22
|
+
const issuesToIgnore = this.config.ignoreIssues || [];
|
23
|
+
this.validateIssueNames(issuesToIgnore);
|
24
|
+
return issuesToIgnore;
|
25
|
+
}
|
26
|
+
|
27
|
+
getIssuesToIgnorePerComponent(component: Component): string[] {
|
28
|
+
const issuesToIgnore = component.state.aspects.get(IssuesAspect.id)?.config.ignoreIssues;
|
29
|
+
if (!issuesToIgnore) return [];
|
30
|
+
this.validateIssueNames(issuesToIgnore);
|
31
|
+
return issuesToIgnore;
|
32
|
+
}
|
33
|
+
|
34
|
+
private validateIssueNames(issues: string[]) {
|
35
|
+
const allIssues = this.listIssues().map((issue) => issue.name);
|
36
|
+
issues.forEach((issue) => {
|
37
|
+
if (!allIssues.includes(issue)) {
|
38
|
+
throw new NonExistIssueError(issue);
|
39
|
+
}
|
40
|
+
});
|
41
|
+
}
|
42
|
+
|
43
|
+
listIssues() {
|
44
|
+
const instances = Object.keys(IssuesClasses).map((issueClass) => new IssuesClasses[issueClass]());
|
45
|
+
const issuesList = new IssuesList(instances);
|
46
|
+
const allIssues = issuesList.getAllIssues();
|
47
|
+
return allIssues.map((issueInstance) => {
|
48
|
+
return {
|
49
|
+
name: issueInstance.constructor.name,
|
50
|
+
description: issueInstance.description,
|
51
|
+
solution: issueInstance.solution,
|
52
|
+
isTagBlocker: issueInstance.isTagBlocker,
|
53
|
+
};
|
54
|
+
});
|
55
|
+
}
|
56
|
+
|
57
|
+
removeIgnoredIssuesFromComponents(components: Component[], extraIssuesToIgnore: string[] = []) {
|
58
|
+
const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();
|
59
|
+
components.forEach((component) => {
|
60
|
+
const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);
|
61
|
+
const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp, ...extraIssuesToIgnore];
|
62
|
+
issuesToIgnore.forEach((issueToIgnore) => {
|
63
|
+
component.state.issues.delete(IssuesClasses[issueToIgnore]);
|
64
|
+
});
|
65
|
+
});
|
66
|
+
}
|
67
|
+
|
68
|
+
/**
|
69
|
+
* register to this slot in order to add a component-issue in bit-status and bit-snap/tag.
|
70
|
+
* your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check
|
71
|
+
* for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.
|
72
|
+
* this is useful for optimization, if you don't want to calculate the component issue when it's ignored.
|
73
|
+
*/
|
74
|
+
registerAddComponentsIssues(addComponentsIssues: AddComponentsIssues) {
|
75
|
+
this.addComponentsIssuesSlot.register(addComponentsIssues);
|
76
|
+
}
|
77
|
+
|
78
|
+
async triggerAddComponentIssues(components: Component[], issuesToIgnore: string[]) {
|
79
|
+
const allFunctions = this.addComponentsIssuesSlot.values();
|
80
|
+
await pMapSeries(allFunctions, (func) => func(components, issuesToIgnore));
|
81
|
+
}
|
82
|
+
|
83
|
+
static slots = [Slot.withType<AddComponentsIssues>()];
|
84
|
+
static dependencies = [CLIAspect];
|
85
|
+
static defaultConfig = {
|
86
|
+
ignoreIssues: [],
|
87
|
+
};
|
88
|
+
static runtime = MainRuntime;
|
89
|
+
static async provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]) {
|
90
|
+
const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);
|
91
|
+
cli.register(new ComponentIssuesCmd(issuesMain));
|
92
|
+
return issuesMain;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
IssuesAspect.addRuntime(IssuesMain);
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { BitError } from '@teambit/bit-error';
|
2
|
+
import { IssuesAspect } from './issues.aspect';
|
3
|
+
|
4
|
+
export class NonExistIssueError extends BitError {
|
5
|
+
constructor(issueToIgnore: string) {
|
6
|
+
super(`fatal: a non-existing component-issue "${issueToIgnore}" was configured for ${IssuesAspect.id} aspect.
|
7
|
+
to get the list of component-issues, please run "bit component-issues"`);
|
8
|
+
}
|
9
|
+
}
|
package/package.json
CHANGED
@@ -1,36 +1,30 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/issues",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.108",
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/issues",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.component",
|
8
8
|
"name": "issues",
|
9
|
-
"version": "1.0.
|
9
|
+
"version": "1.0.108"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
13
13
|
"p-map-series": "2.1.0",
|
14
|
-
"core-js": "^3.0.0",
|
15
|
-
"@babel/runtime": "7.20.0",
|
16
14
|
"@teambit/harmony": "0.4.6",
|
17
15
|
"@teambit/bit-error": "0.0.404",
|
18
|
-
"@teambit/cli": "0.0.
|
19
|
-
"@teambit/component-issues": "0.0.
|
20
|
-
"@teambit/component": "1.0.
|
16
|
+
"@teambit/cli": "0.0.840",
|
17
|
+
"@teambit/component-issues": "0.0.138",
|
18
|
+
"@teambit/component": "1.0.108"
|
21
19
|
},
|
22
20
|
"devDependencies": {
|
23
21
|
"@types/mocha": "9.1.0",
|
24
|
-
"@types/
|
25
|
-
"@types/
|
26
|
-
"@
|
27
|
-
"@types/jest": "^26.0.0",
|
28
|
-
"@types/testing-library__jest-dom": "5.9.5"
|
22
|
+
"@types/jest": "^29.2.2",
|
23
|
+
"@types/testing-library__jest-dom": "^5.9.5",
|
24
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.13"
|
29
25
|
},
|
30
26
|
"peerDependencies": {
|
31
|
-
"@teambit/legacy": "1.0.624"
|
32
|
-
"react": "^16.8.0 || ^17.0.0",
|
33
|
-
"react-dom": "^16.8.0 || ^17.0.0"
|
27
|
+
"@teambit/legacy": "1.0.624"
|
34
28
|
},
|
35
29
|
"license": "Apache-2.0",
|
36
30
|
"optionalDependencies": {},
|
@@ -44,7 +38,7 @@
|
|
44
38
|
},
|
45
39
|
"private": false,
|
46
40
|
"engines": {
|
47
|
-
"node": ">=
|
41
|
+
"node": ">=16.0.0"
|
48
42
|
},
|
49
43
|
"repository": {
|
50
44
|
"type": "git",
|
@@ -53,12 +47,9 @@
|
|
53
47
|
"keywords": [
|
54
48
|
"bit",
|
55
49
|
"bit-aspect",
|
50
|
+
"bit-core-aspect",
|
56
51
|
"components",
|
57
52
|
"collaboration",
|
58
|
-
"web"
|
59
|
-
"react",
|
60
|
-
"react-components",
|
61
|
-
"angular",
|
62
|
-
"angular-components"
|
53
|
+
"web"
|
63
54
|
]
|
64
55
|
}
|
package/tsconfig.json
CHANGED
@@ -1,38 +1,33 @@
|
|
1
1
|
{
|
2
2
|
"compilerOptions": {
|
3
3
|
"lib": [
|
4
|
-
"
|
5
|
-
"
|
6
|
-
"
|
7
|
-
"DOM.Iterable",
|
8
|
-
"ScriptHost"
|
4
|
+
"esnext",
|
5
|
+
"dom",
|
6
|
+
"dom.Iterable"
|
9
7
|
],
|
10
|
-
"target": "
|
11
|
-
"module": "
|
12
|
-
"jsx": "react",
|
13
|
-
"allowJs": true,
|
14
|
-
"composite": true,
|
8
|
+
"target": "es2020",
|
9
|
+
"module": "es2020",
|
10
|
+
"jsx": "react-jsx",
|
15
11
|
"declaration": true,
|
16
12
|
"sourceMap": true,
|
17
|
-
"skipLibCheck": true,
|
18
13
|
"experimentalDecorators": true,
|
19
|
-
"
|
14
|
+
"skipLibCheck": true,
|
20
15
|
"moduleResolution": "node",
|
21
16
|
"esModuleInterop": true,
|
22
|
-
"rootDir": ".",
|
23
17
|
"resolveJsonModule": true,
|
24
|
-
"
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"strictPropertyInitialization": false,
|
28
|
-
"strict": true,
|
29
|
-
"noImplicitAny": false,
|
30
|
-
"preserveConstEnums": true
|
18
|
+
"allowJs": true,
|
19
|
+
"outDir": "dist",
|
20
|
+
"emitDeclarationOnly": true
|
31
21
|
},
|
32
22
|
"exclude": [
|
23
|
+
"artifacts",
|
24
|
+
"public",
|
33
25
|
"dist",
|
26
|
+
"node_modules",
|
27
|
+
"package.json",
|
34
28
|
"esm.mjs",
|
35
|
-
"
|
29
|
+
"**/*.cjs",
|
30
|
+
"./dist"
|
36
31
|
],
|
37
32
|
"include": [
|
38
33
|
"**/*",
|
package/types/asset.d.ts
CHANGED
@@ -5,12 +5,12 @@ declare module '*.png' {
|
|
5
5
|
declare module '*.svg' {
|
6
6
|
import type { FunctionComponent, SVGProps } from 'react';
|
7
7
|
|
8
|
-
export const ReactComponent: FunctionComponent<
|
8
|
+
export const ReactComponent: FunctionComponent<
|
9
|
+
SVGProps<SVGSVGElement> & { title?: string }
|
10
|
+
>;
|
9
11
|
const src: string;
|
10
12
|
export default src;
|
11
13
|
}
|
12
|
-
|
13
|
-
// @TODO Gilad
|
14
14
|
declare module '*.jpg' {
|
15
15
|
const value: any;
|
16
16
|
export = value;
|
@@ -27,3 +27,15 @@ declare module '*.bmp' {
|
|
27
27
|
const value: any;
|
28
28
|
export = value;
|
29
29
|
}
|
30
|
+
declare module '*.otf' {
|
31
|
+
const value: any;
|
32
|
+
export = value;
|
33
|
+
}
|
34
|
+
declare module '*.woff' {
|
35
|
+
const value: any;
|
36
|
+
export = value;
|
37
|
+
}
|
38
|
+
declare module '*.woff2' {
|
39
|
+
const value: any;
|
40
|
+
export = value;
|
41
|
+
}
|
File without changes
|