@teambit/react 0.0.738 → 0.0.741

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.
Files changed (50) hide show
  1. package/apps/web/compute-results.ts +18 -0
  2. package/apps/web/react.application.ts +14 -4
  3. package/artifacts/env-template/public/7.js +34 -0
  4. package/artifacts/env-template/public/assets-manifest.json +8 -8
  5. package/artifacts/env-template/public/{compositions.eb4e1edea0a4802cad5a.js → compositions.4d09788ea29660f2f0bb.js} +1 -1
  6. package/artifacts/env-template/public/compositions.html +1 -1
  7. package/artifacts/env-template/public/{overview.37b3198678667237c71a.js → overview.6b518357dda2ccb97ff6.js} +1 -1
  8. package/artifacts/env-template/public/overview.html +1 -1
  9. package/artifacts/env-template/public/{preview-root.0a3624f6e3564141db0b.js → preview-root.1e046ff5674d2ebaa6d7.js} +1 -1
  10. package/artifacts/env-template/public/service-worker.js +1 -1
  11. package/artifacts/preview/teambit_react_react-preview.js +2 -2
  12. package/{compositions-1653227849497.js → compositions-1653494536947.js} +0 -0
  13. package/dist/apps/web/compute-results.d.ts +7 -0
  14. package/dist/apps/web/compute-results.js +21 -0
  15. package/dist/apps/web/compute-results.js.map +1 -0
  16. package/dist/apps/web/react.application.d.ts +1 -0
  17. package/dist/apps/web/react.application.js +25 -7
  18. package/dist/apps/web/react.application.js.map +1 -1
  19. package/dist/react.env.d.ts +4 -2
  20. package/dist/react.env.js +10 -29
  21. package/dist/react.env.js.map +1 -1
  22. package/dist/react.main.runtime.d.ts +3 -2
  23. package/dist/react.main.runtime.js +13 -3
  24. package/dist/react.main.runtime.js.map +1 -1
  25. package/dist/webpack/webpack.config.base.prod.d.ts +1 -1
  26. package/dist/webpack/webpack.config.base.prod.js +1 -13
  27. package/dist/webpack/webpack.config.base.prod.js.map +1 -1
  28. package/{overview-1653227849497.js → overview-1653494536947.js} +0 -0
  29. package/package-tar/teambit-react-0.0.741.tgz +0 -0
  30. package/package.json +32 -39
  31. package/{preview-1653227849497.js → preview-1653494536947.js} +2 -2
  32. package/webpack/webpack.config.base.prod.ts +1 -5
  33. package/artifacts/env-template/public/756.js +0 -34
  34. package/dist/webpack/get-exposed-rules.d.ts +0 -3
  35. package/dist/webpack/get-exposed-rules.js +0 -60
  36. package/dist/webpack/get-exposed-rules.js.map +0 -1
  37. package/dist/webpack/get-externals.d.ts +0 -1
  38. package/dist/webpack/get-externals.js +0 -42
  39. package/dist/webpack/get-externals.js.map +0 -1
  40. package/dist/webpack/resolve-peer.d.ts +0 -14
  41. package/dist/webpack/resolve-peer.js +0 -108
  42. package/dist/webpack/resolve-peer.js.map +0 -1
  43. package/dist/webpack/transformers.d.ts +0 -10
  44. package/dist/webpack/transformers.js +0 -66
  45. package/dist/webpack/transformers.js.map +0 -1
  46. package/package-tar/teambit-react-0.0.738.tgz +0 -0
  47. package/webpack/get-exposed-rules.ts +0 -14
  48. package/webpack/get-externals.ts +0 -8
  49. package/webpack/resolve-peer.ts +0 -60
  50. package/webpack/transformers.ts +0 -37
@@ -1,3 +0,0 @@
1
- import 'expose-loader';
2
- import { Logger } from '@teambit/logger';
3
- export declare function getExposedRules(peers: string[], logger: Logger, hostRootDir?: string): Object[];
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- require("core-js/modules/es.regexp.exec.js");
6
-
7
- require("core-js/modules/es.string.replace.js");
8
-
9
- Object.defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
- exports.getExposedRules = getExposedRules;
13
-
14
- function _camelcase() {
15
- const data = _interopRequireDefault(require("camelcase"));
16
-
17
- _camelcase = function () {
18
- return data;
19
- };
20
-
21
- return data;
22
- }
23
-
24
- require("expose-loader");
25
-
26
- function _webpackModules() {
27
- const data = require("@teambit/webpack.modules.generate-expose-loaders");
28
-
29
- _webpackModules = function () {
30
- return data;
31
- };
32
-
33
- return data;
34
- }
35
-
36
- function _resolvePeer() {
37
- const data = require("./resolve-peer");
38
-
39
- _resolvePeer = function () {
40
- return data;
41
- };
42
-
43
- return data;
44
- }
45
-
46
- function getExposedRules(peers, logger, hostRootDir) {
47
- const loaderPath = require.resolve('expose-loader');
48
-
49
- const depsEntries = peers.map(peer => ({
50
- path: (0, _resolvePeer().resolvePeerToFile)(peer, logger, hostRootDir),
51
- globalName: (0, _camelcase().default)(peer.replace('@', '').replace('/', '-'), {
52
- pascalCase: true
53
- })
54
- }));
55
- return (0, _webpackModules().generateExposeLoaders)(depsEntries, {
56
- loaderPath
57
- });
58
- }
59
-
60
- //# sourceMappingURL=get-exposed-rules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getExposedRules","peers","logger","hostRootDir","loaderPath","require","resolve","depsEntries","map","peer","path","resolvePeerToFile","globalName","camelcase","replace","pascalCase","generateExposeLoaders"],"sources":["get-exposed-rules.ts"],"sourcesContent":["import camelcase from 'camelcase';\nimport 'expose-loader';\nimport { Logger } from '@teambit/logger';\nimport { generateExposeLoaders } from '@teambit/webpack.modules.generate-expose-loaders';\nimport { resolvePeerToFile } from './resolve-peer';\n\nexport function getExposedRules(peers: string[], logger: Logger, hostRootDir?: string) {\n const loaderPath = require.resolve('expose-loader');\n const depsEntries = peers.map((peer) => ({\n path: resolvePeerToFile(peer, logger, hostRootDir),\n globalName: camelcase(peer.replace('@', '').replace('/', '-'), { pascalCase: true }),\n }));\n return generateExposeLoaders(depsEntries, { loaderPath });\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,eAAT,CAAyBC,KAAzB,EAA0CC,MAA1C,EAA0DC,WAA1D,EAAgF;EACrF,MAAMC,UAAU,GAAGC,OAAO,CAACC,OAAR,CAAgB,eAAhB,CAAnB;;EACA,MAAMC,WAAW,GAAGN,KAAK,CAACO,GAAN,CAAWC,IAAD,KAAW;IACvCC,IAAI,EAAE,IAAAC,gCAAA,EAAkBF,IAAlB,EAAwBP,MAAxB,EAAgCC,WAAhC,CADiC;IAEvCS,UAAU,EAAE,IAAAC,oBAAA,EAAUJ,IAAI,CAACK,OAAL,CAAa,GAAb,EAAkB,EAAlB,EAAsBA,OAAtB,CAA8B,GAA9B,EAAmC,GAAnC,CAAV,EAAmD;MAAEC,UAAU,EAAE;IAAd,CAAnD;EAF2B,CAAX,CAAV,CAApB;EAIA,OAAO,IAAAC,uCAAA,EAAsBT,WAAtB,EAAmC;IAAEH;EAAF,CAAnC,CAAP;AACD"}
@@ -1 +0,0 @@
1
- export declare function getExternals(deps: string[]): Object;
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- require("core-js/modules/es.regexp.exec.js");
6
-
7
- require("core-js/modules/es.string.replace.js");
8
-
9
- Object.defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
- exports.getExternals = getExternals;
13
-
14
- function _camelcase() {
15
- const data = _interopRequireDefault(require("camelcase"));
16
-
17
- _camelcase = function () {
18
- return data;
19
- };
20
-
21
- return data;
22
- }
23
-
24
- function _webpackModules() {
25
- const data = require("@teambit/webpack.modules.generate-externals");
26
-
27
- _webpackModules = function () {
28
- return data;
29
- };
30
-
31
- return data;
32
- }
33
-
34
- function getExternals(deps) {
35
- return (0, _webpackModules().generateExternals)(deps, {
36
- transformName: depName => (0, _camelcase().default)(depName.replace('@', '').replace('/', '-'), {
37
- pascalCase: true
38
- })
39
- });
40
- }
41
-
42
- //# sourceMappingURL=get-externals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getExternals","deps","generateExternals","transformName","depName","camelcase","replace","pascalCase"],"sources":["get-externals.ts"],"sourcesContent":["import camelcase from 'camelcase';\nimport { generateExternals } from '@teambit/webpack.modules.generate-externals';\n\nexport function getExternals(deps: string[]) {\n return generateExternals(deps, {\n transformName: (depName) => camelcase(depName.replace('@', '').replace('/', '-'), { pascalCase: true }),\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,YAAT,CAAsBC,IAAtB,EAAsC;EAC3C,OAAO,IAAAC,mCAAA,EAAkBD,IAAlB,EAAwB;IAC7BE,aAAa,EAAGC,OAAD,IAAa,IAAAC,oBAAA,EAAUD,OAAO,CAACE,OAAR,CAAgB,GAAhB,EAAqB,EAArB,EAAyBA,OAAzB,CAAiC,GAAjC,EAAsC,GAAtC,CAAV,EAAsD;MAAEC,UAAU,EAAE;IAAd,CAAtD;EADC,CAAxB,CAAP;AAGD"}
@@ -1,14 +0,0 @@
1
- import { Logger } from '@teambit/logger';
2
- /**
3
- * Get the package folder, and in case it's not found get the resolved file path
4
- * @param peerName
5
- * @returns
6
- */
7
- export declare function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined;
8
- /**
9
- * Make sure to resolve the peer path correctly
10
- * we first resolve it to its dir (to be aligned with the aliases transformer)
11
- * Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
12
- * @param peer
13
- */
14
- export declare function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string): any;
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.resolvePeerToDirOrFile = resolvePeerToDirOrFile;
9
- exports.resolvePeerToFile = resolvePeerToFile;
10
-
11
- function _fs() {
12
- const data = _interopRequireWildcard(require("fs"));
13
-
14
- _fs = function () {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _enhancedResolve() {
22
- const data = require("enhanced-resolve");
23
-
24
- _enhancedResolve = function () {
25
- return data;
26
- };
27
-
28
- return data;
29
- }
30
-
31
- function _findRoot() {
32
- const data = _interopRequireDefault(require("find-root"));
33
-
34
- _findRoot = function () {
35
- return data;
36
- };
37
-
38
- return data;
39
- }
40
-
41
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
-
43
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
44
-
45
- /**
46
- * Get the package folder, and in case it's not found get the resolved file path
47
- * @param peerName
48
- * @returns
49
- */
50
- function resolvePeerToDirOrFile(peerName, logger, hostRootDir) {
51
- let resolved;
52
-
53
- try {
54
- let options;
55
-
56
- if (hostRootDir) {
57
- options = {
58
- // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
59
- paths: [(0, _fs().realpathSync)(hostRootDir), __dirname]
60
- };
61
- }
62
-
63
- resolved = require.resolve(peerName, options);
64
- const folder = (0, _findRoot().default)(resolved);
65
- return folder;
66
- } catch (e) {
67
- if (resolved) {
68
- logger.warn(`Couldn't find root dir for "${peerName}" from path "${resolved}" to add it as webpack alias`);
69
- } else {
70
- logger.warn(`Couldn't resolve "${peerName}" to add it as webpack alias`);
71
- }
72
-
73
- return resolved;
74
- }
75
- }
76
- /**
77
- * Make sure to resolve the peer path correctly
78
- * we first resolve it to its dir (to be aligned with the aliases transformer)
79
- * Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
80
- * @param peer
81
- */
82
-
83
-
84
- function resolvePeerToFile(peer, logger, hostRootDir) {
85
- const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);
86
- const resolver = createResolver();
87
- const resolvedFile = resolver.resolveSync({}, '', dirOrFile);
88
- return resolvedFile;
89
- }
90
- /**
91
- * Generate a resolver that will read first the module field then the main field
92
- * to make it compatible with webpack behavior
93
- * @returns
94
- */
95
-
96
-
97
- function createResolver() {
98
- // create a resolver
99
- const myResolver = _enhancedResolve().ResolverFactory.createResolver({
100
- fileSystem: new (_enhancedResolve().CachedInputFileSystem)(_fs().default, 4000),
101
- useSyncFileSystemCalls: true,
102
- mainFields: ['module', 'main']
103
- });
104
-
105
- return myResolver;
106
- }
107
-
108
- //# sourceMappingURL=resolve-peer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["resolvePeerToDirOrFile","peerName","logger","hostRootDir","resolved","options","paths","realpathSync","__dirname","require","resolve","folder","findRoot","e","warn","resolvePeerToFile","peer","dirOrFile","resolver","createResolver","resolvedFile","resolveSync","myResolver","ResolverFactory","fileSystem","CachedInputFileSystem","fs","useSyncFileSystemCalls","mainFields"],"sources":["resolve-peer.ts"],"sourcesContent":["import fs, { realpathSync } from 'fs';\nimport { ResolverFactory, CachedInputFileSystem } from 'enhanced-resolve';\nimport findRoot from 'find-root';\nimport { Logger } from '@teambit/logger';\n\n/**\n * Get the package folder, and in case it's not found get the resolved file path\n * @param peerName\n * @returns\n */\nexport function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined {\n let resolved;\n try {\n let options;\n if (hostRootDir) {\n options = {\n // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise\n paths: [realpathSync(hostRootDir), __dirname],\n };\n }\n resolved = require.resolve(peerName, options);\n const folder = findRoot(resolved);\n return folder;\n } catch (e) {\n if (resolved) {\n logger.warn(`Couldn't find root dir for \"${peerName}\" from path \"${resolved}\" to add it as webpack alias`);\n } else {\n logger.warn(`Couldn't resolve \"${peerName}\" to add it as webpack alias`);\n }\n return resolved;\n }\n}\n\n/**\n * Make sure to resolve the peer path correctly\n * we first resolve it to its dir (to be aligned with the aliases transformer)\n * Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order\n * @param peer\n */\nexport function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string) {\n const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);\n const resolver = createResolver();\n const resolvedFile = resolver.resolveSync({}, '', dirOrFile);\n return resolvedFile;\n}\n\n/**\n * Generate a resolver that will read first the module field then the main field\n * to make it compatible with webpack behavior\n * @returns\n */\nfunction createResolver() {\n // create a resolver\n const myResolver = ResolverFactory.createResolver({\n fileSystem: new CachedInputFileSystem(fs, 4000),\n useSyncFileSystemCalls: true,\n mainFields: ['module', 'main'],\n });\n return myResolver;\n}\n"],"mappings":";;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAT,CAAgCC,QAAhC,EAAkDC,MAAlD,EAAkEC,WAAlE,EAA4G;EACjH,IAAIC,QAAJ;;EACA,IAAI;IACF,IAAIC,OAAJ;;IACA,IAAIF,WAAJ,EAAiB;MACfE,OAAO,GAAG;QACR;QACAC,KAAK,EAAE,CAAC,IAAAC,kBAAA,EAAaJ,WAAb,CAAD,EAA4BK,SAA5B;MAFC,CAAV;IAID;;IACDJ,QAAQ,GAAGK,OAAO,CAACC,OAAR,CAAgBT,QAAhB,EAA0BI,OAA1B,CAAX;IACA,MAAMM,MAAM,GAAG,IAAAC,mBAAA,EAASR,QAAT,CAAf;IACA,OAAOO,MAAP;EACD,CAXD,CAWE,OAAOE,CAAP,EAAU;IACV,IAAIT,QAAJ,EAAc;MACZF,MAAM,CAACY,IAAP,CAAa,+BAA8Bb,QAAS,gBAAeG,QAAS,8BAA5E;IACD,CAFD,MAEO;MACLF,MAAM,CAACY,IAAP,CAAa,qBAAoBb,QAAS,8BAA1C;IACD;;IACD,OAAOG,QAAP;EACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASW,iBAAT,CAA2BC,IAA3B,EAAyCd,MAAzC,EAAyDC,WAAzD,EAA+E;EACpF,MAAMc,SAAS,GAAGjB,sBAAsB,CAACgB,IAAD,EAAOd,MAAP,EAAeC,WAAf,CAAxC;EACA,MAAMe,QAAQ,GAAGC,cAAc,EAA/B;EACA,MAAMC,YAAY,GAAGF,QAAQ,CAACG,WAAT,CAAqB,EAArB,EAAyB,EAAzB,EAA6BJ,SAA7B,CAArB;EACA,OAAOG,YAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACA,SAASD,cAAT,GAA0B;EACxB;EACA,MAAMG,UAAU,GAAGC,kCAAA,CAAgBJ,cAAhB,CAA+B;IAChDK,UAAU,EAAE,KAAIC,wCAAJ,EAA0BC,aAA1B,EAA8B,IAA9B,CADoC;IAEhDC,sBAAsB,EAAE,IAFwB;IAGhDC,UAAU,EAAE,CAAC,QAAD,EAAW,MAAX;EAHoC,CAA/B,CAAnB;;EAKA,OAAON,UAAP;AACD"}
@@ -1,10 +0,0 @@
1
- import { WebpackConfigTransformContext } from '@teambit/webpack';
2
- import { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';
3
- import { Logger } from '@teambit/logger';
4
- export declare function generateAddAliasesFromPeersTransformer(peers: string[], logger: Logger): (config: WebpackConfigMutator, context: WebpackConfigTransformContext) => WebpackConfigMutator;
5
- /**
6
- * Generate a transformer that expose all the peers as global via the expose loader
7
- * @param peers
8
- * @returns
9
- */
10
- export declare function generateExposePeersTransformer(peers: string[], logger: Logger): (config: WebpackConfigMutator, context: WebpackConfigTransformContext) => WebpackConfigMutator;
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.generateAddAliasesFromPeersTransformer = generateAddAliasesFromPeersTransformer;
7
- exports.generateExposePeersTransformer = generateExposePeersTransformer;
8
-
9
- function _getExposedRules() {
10
- const data = require("./get-exposed-rules");
11
-
12
- _getExposedRules = function () {
13
- return data;
14
- };
15
-
16
- return data;
17
- }
18
-
19
- function _resolvePeer() {
20
- const data = require("./resolve-peer");
21
-
22
- _resolvePeer = function () {
23
- return data;
24
- };
25
-
26
- return data;
27
- }
28
-
29
- function generateAddAliasesFromPeersTransformer(peers, logger) {
30
- return (config, context) => {
31
- const peerAliases = peers.reduce((acc, peerName) => {
32
- var _context$target;
33
-
34
- // gets the correct module folder of the package.
35
- // this allows us to resolve internal files, for example:
36
- // node_modules/react-dom/test-utils
37
- //
38
- // we can't use require.resolve() because it resolves to a specific file.
39
- // for example, if we used "react-dom": require.resolve("react-dom"),
40
- // it would try to resolve "react-dom/test-utils" as:
41
- // node_modules/react-dom/index.js/test-utils
42
- acc[peerName] = (0, _resolvePeer().resolvePeerToDirOrFile)(peerName, logger, (_context$target = context.target) === null || _context$target === void 0 ? void 0 : _context$target.hostRootDir);
43
- return acc;
44
- }, {});
45
- config.addAliases(peerAliases);
46
- return config;
47
- };
48
- }
49
- /**
50
- * Generate a transformer that expose all the peers as global via the expose loader
51
- * @param peers
52
- * @returns
53
- */
54
-
55
-
56
- function generateExposePeersTransformer(peers, logger) {
57
- return (config, context) => {
58
- var _context$target2;
59
-
60
- const exposedRules = (0, _getExposedRules().getExposedRules)(peers, logger, (_context$target2 = context.target) === null || _context$target2 === void 0 ? void 0 : _context$target2.hostRootDir);
61
- config.addModuleRules(exposedRules);
62
- return config;
63
- };
64
- }
65
-
66
- //# sourceMappingURL=transformers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["generateAddAliasesFromPeersTransformer","peers","logger","config","context","peerAliases","reduce","acc","peerName","resolvePeerToDirOrFile","target","hostRootDir","addAliases","generateExposePeersTransformer","exposedRules","getExposedRules","addModuleRules"],"sources":["transformers.ts"],"sourcesContent":["import { WebpackConfigTransformContext } from '@teambit/webpack';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\nimport { Logger } from '@teambit/logger';\nimport { getExposedRules } from './get-exposed-rules';\nimport { resolvePeerToDirOrFile } from './resolve-peer';\n\nexport function generateAddAliasesFromPeersTransformer(peers: string[], logger: Logger) {\n return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {\n const peerAliases = peers.reduce((acc, peerName) => {\n // gets the correct module folder of the package.\n // this allows us to resolve internal files, for example:\n // node_modules/react-dom/test-utils\n //\n // we can't use require.resolve() because it resolves to a specific file.\n // for example, if we used \"react-dom\": require.resolve(\"react-dom\"),\n // it would try to resolve \"react-dom/test-utils\" as:\n // node_modules/react-dom/index.js/test-utils\n acc[peerName] = resolvePeerToDirOrFile(peerName, logger, context.target?.hostRootDir);\n return acc;\n }, {});\n config.addAliases(peerAliases);\n return config;\n };\n}\n\n/**\n * Generate a transformer that expose all the peers as global via the expose loader\n * @param peers\n * @returns\n */\nexport function generateExposePeersTransformer(peers: string[], logger: Logger) {\n return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {\n const exposedRules = getExposedRules(peers, logger, context.target?.hostRootDir);\n config.addModuleRules(exposedRules);\n return config;\n };\n}\n"],"mappings":";;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,sCAAT,CAAgDC,KAAhD,EAAiEC,MAAjE,EAAiF;EACtF,OAAO,CAACC,MAAD,EAA+BC,OAA/B,KAAgG;IACrG,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,CAAa,CAACC,GAAD,EAAMC,QAAN,KAAmB;MAAA;;MAClD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAD,GAAG,CAACC,QAAD,CAAH,GAAgB,IAAAC,qCAAA,EAAuBD,QAAvB,EAAiCN,MAAjC,qBAAyCE,OAAO,CAACM,MAAjD,oDAAyC,gBAAgBC,WAAzD,CAAhB;MACA,OAAOJ,GAAP;IACD,CAXmB,EAWjB,EAXiB,CAApB;IAYAJ,MAAM,CAACS,UAAP,CAAkBP,WAAlB;IACA,OAAOF,MAAP;EACD,CAfD;AAgBD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASU,8BAAT,CAAwCZ,KAAxC,EAAyDC,MAAzD,EAAyE;EAC9E,OAAO,CAACC,MAAD,EAA+BC,OAA/B,KAAgG;IAAA;;IACrG,MAAMU,YAAY,GAAG,IAAAC,kCAAA,EAAgBd,KAAhB,EAAuBC,MAAvB,sBAA+BE,OAAO,CAACM,MAAvC,qDAA+B,iBAAgBC,WAA/C,CAArB;IACAR,MAAM,CAACa,cAAP,CAAsBF,YAAtB;IACA,OAAOX,MAAP;EACD,CAJD;AAKD"}
@@ -1,14 +0,0 @@
1
- import camelcase from 'camelcase';
2
- import 'expose-loader';
3
- import { Logger } from '@teambit/logger';
4
- import { generateExposeLoaders } from '@teambit/webpack.modules.generate-expose-loaders';
5
- import { resolvePeerToFile } from './resolve-peer';
6
-
7
- export function getExposedRules(peers: string[], logger: Logger, hostRootDir?: string) {
8
- const loaderPath = require.resolve('expose-loader');
9
- const depsEntries = peers.map((peer) => ({
10
- path: resolvePeerToFile(peer, logger, hostRootDir),
11
- globalName: camelcase(peer.replace('@', '').replace('/', '-'), { pascalCase: true }),
12
- }));
13
- return generateExposeLoaders(depsEntries, { loaderPath });
14
- }
@@ -1,8 +0,0 @@
1
- import camelcase from 'camelcase';
2
- import { generateExternals } from '@teambit/webpack.modules.generate-externals';
3
-
4
- export function getExternals(deps: string[]) {
5
- return generateExternals(deps, {
6
- transformName: (depName) => camelcase(depName.replace('@', '').replace('/', '-'), { pascalCase: true }),
7
- });
8
- }
@@ -1,60 +0,0 @@
1
- import fs, { realpathSync } from 'fs';
2
- import { ResolverFactory, CachedInputFileSystem } from 'enhanced-resolve';
3
- import findRoot from 'find-root';
4
- import { Logger } from '@teambit/logger';
5
-
6
- /**
7
- * Get the package folder, and in case it's not found get the resolved file path
8
- * @param peerName
9
- * @returns
10
- */
11
- export function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined {
12
- let resolved;
13
- try {
14
- let options;
15
- if (hostRootDir) {
16
- options = {
17
- // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
18
- paths: [realpathSync(hostRootDir), __dirname],
19
- };
20
- }
21
- resolved = require.resolve(peerName, options);
22
- const folder = findRoot(resolved);
23
- return folder;
24
- } catch (e) {
25
- if (resolved) {
26
- logger.warn(`Couldn't find root dir for "${peerName}" from path "${resolved}" to add it as webpack alias`);
27
- } else {
28
- logger.warn(`Couldn't resolve "${peerName}" to add it as webpack alias`);
29
- }
30
- return resolved;
31
- }
32
- }
33
-
34
- /**
35
- * Make sure to resolve the peer path correctly
36
- * we first resolve it to its dir (to be aligned with the aliases transformer)
37
- * Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
38
- * @param peer
39
- */
40
- export function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string) {
41
- const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);
42
- const resolver = createResolver();
43
- const resolvedFile = resolver.resolveSync({}, '', dirOrFile);
44
- return resolvedFile;
45
- }
46
-
47
- /**
48
- * Generate a resolver that will read first the module field then the main field
49
- * to make it compatible with webpack behavior
50
- * @returns
51
- */
52
- function createResolver() {
53
- // create a resolver
54
- const myResolver = ResolverFactory.createResolver({
55
- fileSystem: new CachedInputFileSystem(fs, 4000),
56
- useSyncFileSystemCalls: true,
57
- mainFields: ['module', 'main'],
58
- });
59
- return myResolver;
60
- }
@@ -1,37 +0,0 @@
1
- import { WebpackConfigTransformContext } from '@teambit/webpack';
2
- import { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';
3
- import { Logger } from '@teambit/logger';
4
- import { getExposedRules } from './get-exposed-rules';
5
- import { resolvePeerToDirOrFile } from './resolve-peer';
6
-
7
- export function generateAddAliasesFromPeersTransformer(peers: string[], logger: Logger) {
8
- return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {
9
- const peerAliases = peers.reduce((acc, peerName) => {
10
- // gets the correct module folder of the package.
11
- // this allows us to resolve internal files, for example:
12
- // node_modules/react-dom/test-utils
13
- //
14
- // we can't use require.resolve() because it resolves to a specific file.
15
- // for example, if we used "react-dom": require.resolve("react-dom"),
16
- // it would try to resolve "react-dom/test-utils" as:
17
- // node_modules/react-dom/index.js/test-utils
18
- acc[peerName] = resolvePeerToDirOrFile(peerName, logger, context.target?.hostRootDir);
19
- return acc;
20
- }, {});
21
- config.addAliases(peerAliases);
22
- return config;
23
- };
24
- }
25
-
26
- /**
27
- * Generate a transformer that expose all the peers as global via the expose loader
28
- * @param peers
29
- * @returns
30
- */
31
- export function generateExposePeersTransformer(peers: string[], logger: Logger) {
32
- return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {
33
- const exposedRules = getExposedRules(peers, logger, context.target?.hostRootDir);
34
- config.addModuleRules(exposedRules);
35
- return config;
36
- };
37
- }