@teambit/multi-tester 0.0.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.
@@ -0,0 +1,5 @@
1
+ import { MultiTesterAspect } from './multi-tester.aspect';
2
+ export { MultiTesterAspect };
3
+ export type { MultiTesterMain } from './multi-tester.main.runtime';
4
+ export type { MultiTester } from './multi-tester.tester';
5
+ export default MultiTesterAspect;
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "MultiTesterAspect", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _multiTester().MultiTesterAspect;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+
14
+ function _multiTester() {
15
+ const data = require("./multi-tester.aspect");
16
+
17
+ _multiTester = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ var _default = _multiTester().MultiTesterAspect;
25
+
26
+ exports.default = _default;
27
+
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MultiTesterAspect"],"sources":["index.ts"],"sourcesContent":["import { MultiTesterAspect } from './multi-tester.aspect';\n\nexport { MultiTesterAspect };\nexport type { MultiTesterMain } from './multi-tester.main.runtime';\nexport type { MultiTester } from './multi-tester.tester';\nexport default MultiTesterAspect;\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAKeA,gC"}
@@ -0,0 +1,2 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+ export declare const MultiTesterAspect: Aspect;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MultiTesterAspect = void 0;
7
+
8
+ function _harmony() {
9
+ const data = require("@teambit/harmony");
10
+
11
+ _harmony = function () {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ const MultiTesterAspect = _harmony().Aspect.create({
19
+ id: 'teambit.defender/multi-tester'
20
+ });
21
+
22
+ exports.MultiTesterAspect = MultiTesterAspect;
23
+
24
+ //# sourceMappingURL=multi-tester.aspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MultiTesterAspect","Aspect","create","id"],"sources":["multi-tester.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const MultiTesterAspect = Aspect.create({\n id: 'teambit.defender/multi-tester',\n});\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,iBAAiB,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EAC7CC,EAAE,EAAE;AADyC,CAAd,CAA1B"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Logo = void 0;
9
+
10
+ function _react() {
11
+ const data = _interopRequireDefault(require("react"));
12
+
13
+ _react = function () {
14
+ return data;
15
+ };
16
+
17
+ return data;
18
+ }
19
+
20
+ const Logo = () => /*#__PURE__*/_react().default.createElement("div", {
21
+ style: {
22
+ height: '100%',
23
+ display: 'flex',
24
+ justifyContent: 'center'
25
+ }
26
+ }, /*#__PURE__*/_react().default.createElement("img", {
27
+ style: {
28
+ width: 70
29
+ },
30
+ src: "https://static.bit.dev/extensions-icons/tester.svg"
31
+ }));
32
+
33
+ exports.Logo = Logo;
34
+
35
+ //# sourceMappingURL=multi-tester.composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["multi-tester.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/tester.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: Allows to apply components with multiple testers
3
+ labels: ['multi-tester', 'tester', 'envs', 'compiler', 'bit', 'extension', 'aspect']
4
+ ---
5
+
6
+ import TesterOverview from '@teambit/defender.content.tester-overview';
7
+
8
+ <TesterOverview />
@@ -0,0 +1,11 @@
1
+ import { Tester } from '@teambit/tester';
2
+ import { MultiTester } from './multi-tester.tester';
3
+ export declare class MultiTesterMain {
4
+ /**
5
+ * create a multi-tester `Tester` instance.
6
+ * @param testers list of testers to include.
7
+ */
8
+ createTester(testers: Tester[]): MultiTester;
9
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
10
+ static provider(): Promise<MultiTesterMain>;
11
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.promise.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.MultiTesterMain = void 0;
11
+
12
+ function _defineProperty2() {
13
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+
15
+ _defineProperty2 = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
22
+ function _cli() {
23
+ const data = require("@teambit/cli");
24
+
25
+ _cli = function () {
26
+ return data;
27
+ };
28
+
29
+ return data;
30
+ }
31
+
32
+ function _multiTester() {
33
+ const data = require("./multi-tester.aspect");
34
+
35
+ _multiTester = function () {
36
+ return data;
37
+ };
38
+
39
+ return data;
40
+ }
41
+
42
+ function _multiTester2() {
43
+ const data = require("./multi-tester.tester");
44
+
45
+ _multiTester2 = function () {
46
+ return data;
47
+ };
48
+
49
+ return data;
50
+ }
51
+
52
+ class MultiTesterMain {
53
+ /**
54
+ * create a multi-tester `Tester` instance.
55
+ * @param testers list of testers to include.
56
+ */
57
+ createTester(testers) {
58
+ return new (_multiTester2().MultiTester)(_multiTester().MultiTesterAspect.id, testers);
59
+ }
60
+
61
+ static async provider() {
62
+ return new MultiTesterMain();
63
+ }
64
+
65
+ }
66
+
67
+ exports.MultiTesterMain = MultiTesterMain;
68
+ (0, _defineProperty2().default)(MultiTesterMain, "runtime", _cli().MainRuntime);
69
+
70
+ _multiTester().MultiTesterAspect.addRuntime(MultiTesterMain);
71
+
72
+ //# sourceMappingURL=multi-tester.main.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MultiTesterMain","createTester","testers","MultiTester","MultiTesterAspect","id","provider","MainRuntime","addRuntime"],"sources":["multi-tester.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { Tester } from '@teambit/tester';\nimport { MultiTesterAspect } from './multi-tester.aspect';\nimport { MultiTester } from './multi-tester.tester';\n\nexport class MultiTesterMain {\n /**\n * create a multi-tester `Tester` instance.\n * @param testers list of testers to include.\n */\n createTester(testers: Tester[]) {\n return new MultiTester(MultiTesterAspect.id, testers);\n }\n\n static runtime = MainRuntime;\n\n static async provider() {\n return new MultiTesterMain();\n }\n}\n\nMultiTesterAspect.addRuntime(MultiTesterMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,eAAN,CAAsB;EAC3B;AACF;AACA;AACA;EACEC,YAAY,CAACC,OAAD,EAAoB;IAC9B,OAAO,KAAIC,2BAAJ,EAAgBC,gCAAA,CAAkBC,EAAlC,EAAsCH,OAAtC,CAAP;EACD;;EAIoB,aAARI,QAAQ,GAAG;IACtB,OAAO,IAAIN,eAAJ,EAAP;EACD;;AAb0B;;;gCAAhBA,e,aASMO,kB;;AAOnBH,gCAAA,CAAkBI,UAAlB,CAA6BR,eAA7B"}
@@ -0,0 +1,19 @@
1
+ import { Tester, TesterContext, Tests } from '@teambit/tester';
2
+ export declare type MultiCompilerOptions = {
3
+ targetExtension?: string;
4
+ };
5
+ export declare class MultiTester implements Tester {
6
+ readonly id: string;
7
+ readonly testers: Tester[];
8
+ displayName: string;
9
+ constructor(id: string, testers: Tester[]);
10
+ displayConfig(): string;
11
+ test(context: TesterContext): Promise<Tests>;
12
+ watch(context: TesterContext): Promise<Tests>;
13
+ /**
14
+ * returns the version of all testers instance (e.g. '4.0.1').
15
+ */
16
+ version(): string;
17
+ private mergeTests;
18
+ private mergeComponentResults;
19
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ exports.MultiTester = void 0;
13
+
14
+ function _defineProperty2() {
15
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ _defineProperty2 = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _pMapSeries() {
25
+ const data = _interopRequireDefault(require("p-map-series"));
26
+
27
+ _pMapSeries = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _tester() {
35
+ const data = require("@teambit/tester");
36
+
37
+ _tester = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _testsResults() {
45
+ const data = require("@teambit/tests-results");
46
+
47
+ _testsResults = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _lodash() {
55
+ const data = require("lodash");
56
+
57
+ _lodash = function () {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ class MultiTester {
65
+ constructor(id, testers) {
66
+ this.id = id;
67
+ this.testers = testers;
68
+ (0, _defineProperty2().default)(this, "displayName", 'Multi tester');
69
+ }
70
+
71
+ displayConfig() {
72
+ return this.testers.map(tester => {
73
+ return `${tester.displayName}\n${tester.displayConfig}\n`;
74
+ }).join('\n');
75
+ }
76
+
77
+ async test(context) {
78
+ const allResults = await (0, _pMapSeries().default)(this.testers, tester => {
79
+ return tester.test(context);
80
+ });
81
+ const merged = this.mergeTests(allResults);
82
+ return merged;
83
+ } // TODO: not working properly yet
84
+
85
+
86
+ async watch(context) {
87
+ const allResults = await (0, _pMapSeries().default)(this.testers, tester => {
88
+ return tester.watch ? tester.watch(context) : tester.test(context);
89
+ });
90
+ const merged = this.mergeTests(allResults);
91
+ return merged;
92
+ }
93
+ /**
94
+ * returns the version of all testers instance (e.g. '4.0.1').
95
+ */
96
+
97
+
98
+ version() {
99
+ return this.testers.map(tester => {
100
+ return `${tester.displayName}@${tester.version()}`;
101
+ }).join('\n');
102
+ }
103
+
104
+ mergeTests(tests) {
105
+ const componentResultsMap = new Map();
106
+ (0, _lodash().compact)(tests).forEach(currentTests => {
107
+ currentTests.components.forEach(currentComponentResults => {
108
+ const currIdStr = currentComponentResults.componentId.toString();
109
+ const foundComponent = componentResultsMap.get(currIdStr);
110
+
111
+ if (foundComponent) {
112
+ componentResultsMap.set(currIdStr, this.mergeComponentResults(foundComponent, currentComponentResults));
113
+ } else {
114
+ componentResultsMap.set(currIdStr, currentComponentResults);
115
+ }
116
+ });
117
+ });
118
+ return new (_tester().Tests)(Array.from(componentResultsMap.values()));
119
+ }
120
+
121
+ mergeComponentResults(results1, results2) {
122
+ var _results1$results, _results2$results2, _results1$results5, _results2$results5, _results1$results6, _results2$results6;
123
+
124
+ const merged = {
125
+ componentId: results1.componentId
126
+ };
127
+ let start;
128
+
129
+ if (!((_results1$results = results1.results) !== null && _results1$results !== void 0 && _results1$results.start)) {
130
+ var _results2$results;
131
+
132
+ start = (_results2$results = results2.results) === null || _results2$results === void 0 ? void 0 : _results2$results.start;
133
+ } else if (!((_results2$results2 = results2.results) !== null && _results2$results2 !== void 0 && _results2$results2.start)) {
134
+ var _results1$results2;
135
+
136
+ start = (_results1$results2 = results1.results) === null || _results1$results2 === void 0 ? void 0 : _results1$results2.start;
137
+ } else {
138
+ var _results1$results3, _results2$results3, _results1$results4, _results2$results4;
139
+
140
+ // Take sooner start
141
+ start = ((_results1$results3 = results1.results) === null || _results1$results3 === void 0 ? void 0 : _results1$results3.start) < ((_results2$results3 = results2.results) === null || _results2$results3 === void 0 ? void 0 : _results2$results3.start) ? (_results1$results4 = results1.results) === null || _results1$results4 === void 0 ? void 0 : _results1$results4.start : (_results2$results4 = results2.results) === null || _results2$results4 === void 0 ? void 0 : _results2$results4.start;
142
+ }
143
+
144
+ const mergedTestsResults = new (_testsResults().TestsResult)([...(((_results1$results5 = results1.results) === null || _results1$results5 === void 0 ? void 0 : _results1$results5.testFiles) || []), ...(((_results2$results5 = results2.results) === null || _results2$results5 === void 0 ? void 0 : _results2$results5.testFiles) || [])], ((_results1$results6 = results1.results) === null || _results1$results6 === void 0 ? void 0 : _results1$results6.success) && ((_results2$results6 = results2.results) === null || _results2$results6 === void 0 ? void 0 : _results2$results6.success), start);
145
+ merged.results = mergedTestsResults;
146
+ merged.errors = [...(results1.errors || []), ...(results2.errors || [])];
147
+ merged.loading = results1.loading || results2.loading;
148
+ return merged;
149
+ }
150
+
151
+ }
152
+
153
+ exports.MultiTester = MultiTester;
154
+
155
+ //# sourceMappingURL=multi-tester.tester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MultiTester","constructor","id","testers","displayConfig","map","tester","displayName","join","test","context","allResults","pMapSeries","merged","mergeTests","watch","version","tests","componentResultsMap","Map","compact","forEach","currentTests","components","currentComponentResults","currIdStr","componentId","toString","foundComponent","get","set","mergeComponentResults","Tests","Array","from","values","results1","results2","start","results","mergedTestsResults","TestsResult","testFiles","success","errors","loading"],"sources":["multi-tester.tester.ts"],"sourcesContent":["import pMapSeries from 'p-map-series';\nimport {\n Tester,\n TesterContext,\n Tests,\n ComponentsResults,\n} from '@teambit/tester';\nimport { TestsResult } from '@teambit/tests-results';\nimport { compact } from 'lodash';\n\nexport type MultiCompilerOptions = {\n targetExtension?: string;\n};\n\nexport class MultiTester implements Tester {\n displayName = 'Multi tester';\n\n constructor(\n readonly id: string,\n readonly testers: Tester[],\n ) {}\n\n displayConfig() {\n return this.testers\n .map((tester) => {\n return `${tester.displayName}\\n${tester.displayConfig}\\n`;\n })\n .join('\\n');\n }\n\n async test(context: TesterContext): Promise<Tests> {\n const allResults = await pMapSeries(this.testers,\n (tester) => {\n return tester.test(context);\n });\n const merged = this.mergeTests(allResults);\n return merged;\n }\n\n // TODO: not working properly yet\n async watch(context: TesterContext): Promise<Tests> {\n const allResults = await pMapSeries(this.testers,\n (tester) => {\n return tester.watch ? tester.watch(context) : tester.test(context);\n });\n const merged = this.mergeTests(allResults);\n return merged;\n }\n\n /**\n * returns the version of all testers instance (e.g. '4.0.1').\n */\n version(): string {\n return this.testers\n .map((tester) => {\n return `${tester.displayName}@${tester.version()}`;\n })\n .join('\\n');\n }\n\n private mergeTests(tests: Tests[]): Tests {\n const componentResultsMap = new Map<string, ComponentsResults>();\n\n compact(tests).forEach((currentTests) => {\n currentTests.components.forEach(currentComponentResults => {\n const currIdStr = currentComponentResults.componentId.toString();\n const foundComponent = componentResultsMap.get(currIdStr);\n if (foundComponent){\n componentResultsMap.set(currIdStr, this.mergeComponentResults(foundComponent, currentComponentResults));\n } else {\n componentResultsMap.set(currIdStr, currentComponentResults);\n }\n })\n });\n\n return new Tests(Array.from(componentResultsMap.values()));\n }\n\n private mergeComponentResults(results1: ComponentsResults, results2: ComponentsResults): ComponentsResults {\n const merged: ComponentsResults = {\n componentId: results1.componentId\n };\n let start;\n if (!results1.results?.start){\n start = results2.results?.start;\n } else if (!results2.results?.start){\n start = results1.results?.start;\n } else {\n // Take sooner start\n start = results1.results?.start < results2.results?.start ? results1.results?.start : results2.results?.start;\n }\n const mergedTestsResults: TestsResult = new TestsResult(\n [...(results1.results?.testFiles || []), ...(results2.results?.testFiles || [])],\n results1.results?.success && results2.results?.success,\n start\n );\n merged.results = mergedTestsResults;\n merged.errors = [...(results1.errors || []), ...(results2.errors || [])];\n merged.loading = results1.loading || results2.loading;\n return merged;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+
3
+ export const Logo = () => (
4
+ <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>
5
+ <img style={{ width: 70 }} src="https://static.bit.dev/extensions-icons/tester.svg" />
6
+ </div>
7
+ );
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: Allows to apply components with multiple testers
3
+ labels: ['multi-tester', 'tester', 'envs', 'compiler', 'bit', 'extension', 'aspect']
4
+ ---
5
+
6
+ import TesterOverview from '@teambit/defender.content.tester-overview';
7
+
8
+ <TesterOverview />
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@teambit/multi-tester",
3
+ "version": "0.0.1",
4
+ "main": "dist/index.js",
5
+ "componentId": {
6
+ "scope": "teambit.defender",
7
+ "name": "multi-tester",
8
+ "version": "0.0.1"
9
+ },
10
+ "dependencies": {
11
+ "lodash": "4.17.21",
12
+ "p-map-series": "2.1.0",
13
+ "@babel/runtime": "7.12.18",
14
+ "core-js": "^3.0.0",
15
+ "@teambit/harmony": "0.3.3",
16
+ "@teambit/cli": "0.0.557",
17
+ "@teambit/tester": "0.0.832",
18
+ "@teambit/tests-results": "0.0.98"
19
+ },
20
+ "devDependencies": {
21
+ "@types/react": "^17.0.8",
22
+ "@types/lodash": "4.14.165",
23
+ "@types/mocha": "9.1.0",
24
+ "@types/testing-library__jest-dom": "5.9.5",
25
+ "@types/jest": "^26.0.0",
26
+ "@types/react-dom": "^17.0.5",
27
+ "@types/node": "12.20.4",
28
+ "@teambit/defender.content.tester-overview": "1.95.0"
29
+ },
30
+ "peerDependencies": {
31
+ "@teambit/legacy": "1.0.340",
32
+ "react-dom": "^16.8.0 || ^17.0.0",
33
+ "react": "^16.8.0 || ^17.0.0"
34
+ },
35
+ "license": "Apache-2.0",
36
+ "private": false,
37
+ "engines": {
38
+ "node": ">=12.22.0"
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/teambit/bit"
43
+ },
44
+ "keywords": [
45
+ "bit",
46
+ "bit-aspect",
47
+ "components",
48
+ "collaboration",
49
+ "web",
50
+ "react",
51
+ "react-components",
52
+ "angular",
53
+ "angular-components"
54
+ ]
55
+ }
@@ -0,0 +1,5 @@
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_multi-tester@0.0.1/dist/multi-tester.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_multi-tester@0.0.1/dist/multi-tester.docs.mdx';
3
+
4
+ export const compositions = [compositions_0];
5
+ export const overview = [overview_0];
package/tsconfig.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable",
8
+ "ScriptHost"
9
+ ],
10
+ "target": "es2015",
11
+ "module": "commonjs",
12
+ "jsx": "react",
13
+ "allowJs": true,
14
+ "composite": true,
15
+ "declaration": true,
16
+ "sourceMap": true,
17
+ "skipLibCheck": true,
18
+ "experimentalDecorators": true,
19
+ "outDir": "dist",
20
+ "moduleResolution": "node",
21
+ "esModuleInterop": true,
22
+ "rootDir": ".",
23
+ "resolveJsonModule": true,
24
+ "emitDeclarationOnly": true,
25
+ "emitDecoratorMetadata": true,
26
+ "allowSyntheticDefaultImports": true,
27
+ "strictPropertyInitialization": false,
28
+ "strict": true,
29
+ "noImplicitAny": false,
30
+ "preserveConstEnums": true
31
+ },
32
+ "exclude": [
33
+ "dist",
34
+ "package.json"
35
+ ],
36
+ "include": [
37
+ "**/*",
38
+ "**/*.json"
39
+ ]
40
+ }
@@ -0,0 +1,29 @@
1
+ declare module '*.png' {
2
+ const value: any;
3
+ export = value;
4
+ }
5
+ declare module '*.svg' {
6
+ import type { FunctionComponent, SVGProps } from 'react';
7
+
8
+ export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
9
+ const src: string;
10
+ export default src;
11
+ }
12
+
13
+ // @TODO Gilad
14
+ declare module '*.jpg' {
15
+ const value: any;
16
+ export = value;
17
+ }
18
+ declare module '*.jpeg' {
19
+ const value: any;
20
+ export = value;
21
+ }
22
+ declare module '*.gif' {
23
+ const value: any;
24
+ export = value;
25
+ }
26
+ declare module '*.bmp' {
27
+ const value: any;
28
+ export = value;
29
+ }
@@ -0,0 +1,42 @@
1
+ declare module '*.module.css' {
2
+ const classes: { readonly [key: string]: string };
3
+ export default classes;
4
+ }
5
+ declare module '*.module.scss' {
6
+ const classes: { readonly [key: string]: string };
7
+ export default classes;
8
+ }
9
+ declare module '*.module.sass' {
10
+ const classes: { readonly [key: string]: string };
11
+ export default classes;
12
+ }
13
+
14
+ declare module '*.module.less' {
15
+ const classes: { readonly [key: string]: string };
16
+ export default classes;
17
+ }
18
+
19
+ declare module '*.less' {
20
+ const classes: { readonly [key: string]: string };
21
+ export default classes;
22
+ }
23
+
24
+ declare module '*.css' {
25
+ const classes: { readonly [key: string]: string };
26
+ export default classes;
27
+ }
28
+
29
+ declare module '*.sass' {
30
+ const classes: { readonly [key: string]: string };
31
+ export default classes;
32
+ }
33
+
34
+ declare module '*.scss' {
35
+ const classes: { readonly [key: string]: string };
36
+ export default classes;
37
+ }
38
+
39
+ declare module '*.mdx' {
40
+ const component: any;
41
+ export default component;
42
+ }