@teambit/preview 0.0.880 → 0.0.882

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 (84) hide show
  1. package/dist/artifact-file-middleware.js +2 -22
  2. package/dist/artifact-file-middleware.js.map +1 -1
  3. package/dist/bundler/chunks.js +1 -9
  4. package/dist/bundler/chunks.js.map +1 -1
  5. package/dist/bundler/create-peer-link.spec.js +0 -3
  6. package/dist/bundler/create-peer-link.spec.js.map +1 -1
  7. package/dist/bundler/create-peers-link.js +3 -20
  8. package/dist/bundler/create-peers-link.js.map +1 -1
  9. package/dist/bundler/html-plugin.js +0 -13
  10. package/dist/bundler/html-plugin.js.map +1 -1
  11. package/dist/bundler/html-template.js +0 -1
  12. package/dist/bundler/html-template.js.map +1 -1
  13. package/dist/component-preview.js +0 -3
  14. package/dist/component-preview.js.map +1 -1
  15. package/dist/component-preview.route.js +8 -23
  16. package/dist/component-preview.route.js.map +1 -1
  17. package/dist/env-preview-template.task.js +9 -75
  18. package/dist/env-preview-template.task.js.map +1 -1
  19. package/dist/env-template.route.js +6 -22
  20. package/dist/env-template.route.js.map +1 -1
  21. package/dist/events/click-inside-an-iframe.js +1 -12
  22. package/dist/events/click-inside-an-iframe.js.map +1 -1
  23. package/dist/events/index.js +0 -2
  24. package/dist/events/index.js.map +1 -1
  25. package/dist/exceptions/bundling-strategy-not-found.js +0 -3
  26. package/dist/exceptions/bundling-strategy-not-found.js.map +1 -1
  27. package/dist/exceptions/index.js +0 -12
  28. package/dist/exceptions/index.js.map +1 -1
  29. package/dist/exceptions/preview-artifact-not-found.js +0 -6
  30. package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
  31. package/dist/exceptions/preview-not-found.js +0 -3
  32. package/dist/exceptions/preview-not-found.js.map +1 -1
  33. package/dist/exceptions/preview-output-file-not-found.js +0 -6
  34. package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
  35. package/dist/execution-ref.js +0 -11
  36. package/dist/execution-ref.js.map +1 -1
  37. package/dist/generate-link.js +2 -7
  38. package/dist/generate-link.js.map +1 -1
  39. package/dist/gql/fetch-component-aspects.js +0 -6
  40. package/dist/gql/fetch-component-aspects.js.map +1 -1
  41. package/dist/html-utils.js +0 -9
  42. package/dist/html-utils.js.map +1 -1
  43. package/dist/index.js +0 -8
  44. package/dist/index.js.map +1 -1
  45. package/dist/mk-temp-dir.js +0 -10
  46. package/dist/mk-temp-dir.js.map +1 -1
  47. package/dist/preview-artifact.js +0 -12
  48. package/dist/preview-artifact.js.map +1 -1
  49. package/dist/preview-assets.route.js +2 -13
  50. package/dist/preview-assets.route.js.map +1 -1
  51. package/dist/preview-modules.js +0 -11
  52. package/dist/preview-modules.js.map +1 -1
  53. package/dist/preview.aspect.js +0 -6
  54. package/dist/preview.aspect.js.map +1 -1
  55. package/dist/preview.composition.js +0 -6
  56. package/dist/preview.composition.js.map +1 -1
  57. package/dist/preview.graphql.js +0 -5
  58. package/dist/preview.graphql.js.map +1 -1
  59. package/dist/preview.main.runtime.js +53 -226
  60. package/dist/preview.main.runtime.js.map +1 -1
  61. package/dist/preview.preview.runtime.js +18 -108
  62. package/dist/preview.preview.runtime.js.map +1 -1
  63. package/dist/preview.route.js +6 -21
  64. package/dist/preview.route.js.map +1 -1
  65. package/dist/preview.start-plugin.js +8 -42
  66. package/dist/preview.start-plugin.js.map +1 -1
  67. package/dist/preview.task.js +1 -20
  68. package/dist/preview.task.js.map +1 -1
  69. package/dist/rendering-context.js +1 -5
  70. package/dist/rendering-context.js.map +1 -1
  71. package/dist/size-event.js +0 -10
  72. package/dist/size-event.js.map +1 -1
  73. package/dist/strategies/component-strategy.js +19 -69
  74. package/dist/strategies/component-strategy.js.map +1 -1
  75. package/dist/strategies/env-strategy.js +1 -40
  76. package/dist/strategies/env-strategy.js.map +1 -1
  77. package/dist/strategies/generate-component-link.js +4 -7
  78. package/dist/strategies/generate-component-link.js.map +1 -1
  79. package/dist/strategies/index.js +0 -6
  80. package/dist/strategies/index.js.map +1 -1
  81. package/package-tar/teambit-preview-0.0.882.tgz +0 -0
  82. package/package.json +19 -19
  83. package/{preview-1666312873430.js → preview-1666496165706.js} +2 -2
  84. package/package-tar/teambit-preview-0.0.880.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","noPreview","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","e","error","serverError","getArtifactFileMiddleware"],"sources":["preview.route.ts"],"sourcesContent":["import type { NextFunction, Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport { PreviewMain } from './preview.main.runtime';\nimport { PreviewArtifact } from './preview-artifact';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\n\nexport class PreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/preview/:previewName?/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n // @ts-ignore TODO: @guy please fix.\n const component = req.component as Component | undefined;\n if (!component) return res.status(404).send(noPreview());\n const isLegacyPath = await this.preview.isBundledWithEnv(component);\n\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n // Taking the env template (in this case we will take the component only bundle throw component-preview route)\n // We use this route for the env template for backward compatibility - new scopes which contain components tagged with old versions of bit\n if (!isLegacyPath) {\n artifact = await this.preview.getEnvTemplateFromComponentEnv(component);\n } else {\n // If it's legacy (bundled together with the env template) take the preview bundle from the component directly\n artifact = await this.preview.getPreview(component);\n }\n } catch (e: any) {\n this.logger.error(`getEnvTemplateFromComponentEnv or getPreview has failed`, e);\n return res.status(404).send(noPreview());\n }\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = isLegacyPath;\n return next();\n } catch (e: any) {\n this.logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n },\n getArtifactFileMiddleware(this.logger),\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,YAAN,CAAoC;EACzCC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKDC,MALC,EAMT;IAAA,KAFQD,OAER,GAFQA,OAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,+CAEO,qCAFP;IAAA,gDAGO,KAHP;IAAA,qDAKY,CACZ,OAAOC,GAAP,EAAuCC,GAAvC,EAAsDC,IAAtD,KAA6E;MAC3E,IAAI;QACF;QACA,MAAMC,SAAS,GAAGH,GAAG,CAACG,SAAtB;QACA,IAAI,CAACA,SAAL,EAAgB,OAAOF,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QAChB,MAAMC,YAAY,GAAG,MAAM,KAAKT,OAAL,CAAaU,gBAAb,CAA8BL,SAA9B,CAA3B;QAEA,IAAIM,QAAJ,CANE,CAOF;;QACA,IAAI;UACF;UACA;UACA,IAAI,CAACF,YAAL,EAAmB;YACjBE,QAAQ,GAAG,MAAM,KAAKX,OAAL,CAAaY,8BAAb,CAA4CP,SAA5C,CAAjB;UACD,CAFD,MAEO;YACL;YACAM,QAAQ,GAAG,MAAM,KAAKX,OAAL,CAAaa,UAAb,CAAwBR,SAAxB,CAAjB;UACD;QACF,CATD,CASE,OAAOS,CAAP,EAAe;UACf,KAAKb,MAAL,CAAYc,KAAZ,CAAmB,yDAAnB,EAA6ED,CAA7E;UACA,OAAOX,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QACD,CApBC,CAqBF;;;QACAN,GAAG,CAACS,QAAJ,GAAeA,QAAf,CAtBE,CAuBF;;QACAT,GAAG,CAACO,YAAJ,GAAmBA,YAAnB;QACA,OAAOL,IAAI,EAAX;MACD,CA1BD,CA0BE,OAAOU,CAAP,EAAe;QACf,KAAKb,MAAL,CAAYc,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;QACA,OAAOX,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAS,kCAAA,GAArB,CAAP;MACD;IACF,CAhCW,EAiCZ,IAAAC,mDAAA,EAA0B,KAAKhB,MAA/B,CAjCY,CALZ;EAAE;;AAPqC"}
1
+ {"version":3,"names":["PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","noPreview","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","e","error","serverError","getArtifactFileMiddleware"],"sources":["preview.route.ts"],"sourcesContent":["import type { NextFunction, Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport { PreviewMain } from './preview.main.runtime';\nimport { PreviewArtifact } from './preview-artifact';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\n\nexport class PreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/preview/:previewName?/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n // @ts-ignore TODO: @guy please fix.\n const component = req.component as Component | undefined;\n if (!component) return res.status(404).send(noPreview());\n const isLegacyPath = await this.preview.isBundledWithEnv(component);\n\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n // Taking the env template (in this case we will take the component only bundle throw component-preview route)\n // We use this route for the env template for backward compatibility - new scopes which contain components tagged with old versions of bit\n if (!isLegacyPath) {\n artifact = await this.preview.getEnvTemplateFromComponentEnv(component);\n } else {\n // If it's legacy (bundled together with the env template) take the preview bundle from the component directly\n artifact = await this.preview.getPreview(component);\n }\n } catch (e: any) {\n this.logger.error(`getEnvTemplateFromComponentEnv or getPreview has failed`, e);\n return res.status(404).send(noPreview());\n }\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = isLegacyPath;\n return next();\n } catch (e: any) {\n this.logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n },\n getArtifactFileMiddleware(this.logger),\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,MAAMA,YAAY,CAAkB;EACzCC,WAAW;EACT;AACJ;AACA;EACYC,OAAoB,EACpBC,MAAc,EACtB;IAAA,KAFQD,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,+CAGf,qCAAoC;IAAA,gDACpC,KAAK;IAAA,qDAEA,CACZ,OAAOC,GAA8B,EAAEC,GAAa,EAAEC,IAAkB,KAAK;MAC3E,IAAI;QACF;QACA,MAAMC,SAAS,GAAGH,GAAG,CAACG,SAAkC;QACxD,IAAI,CAACA,SAAS,EAAE,OAAOF,GAAG,CAACG,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,gCAAS,GAAE,CAAC;QACxD,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACT,OAAO,CAACU,gBAAgB,CAACL,SAAS,CAAC;QAEnE,IAAIM,QAAqC;QACzC;QACA,IAAI;UACF;UACA;UACA,IAAI,CAACF,YAAY,EAAE;YACjBE,QAAQ,GAAG,MAAM,IAAI,CAACX,OAAO,CAACY,8BAA8B,CAACP,SAAS,CAAC;UACzE,CAAC,MAAM;YACL;YACAM,QAAQ,GAAG,MAAM,IAAI,CAACX,OAAO,CAACa,UAAU,CAACR,SAAS,CAAC;UACrD;QACF,CAAC,CAAC,OAAOS,CAAM,EAAE;UACf,IAAI,CAACb,MAAM,CAACc,KAAK,CAAE,yDAAwD,EAAED,CAAC,CAAC;UAC/E,OAAOX,GAAG,CAACG,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,gCAAS,GAAE,CAAC;QAC1C;QACA;QACAN,GAAG,CAACS,QAAQ,GAAGA,QAAQ;QACvB;QACAT,GAAG,CAACO,YAAY,GAAGA,YAAY;QAC/B,OAAOL,IAAI,EAAE;MACf,CAAC,CAAC,OAAOU,CAAM,EAAE;QACf,IAAI,CAACb,MAAM,CAACc,KAAK,CAAC,wBAAwB,EAAED,CAAC,CAAC;QAC9C,OAAOX,GAAG,CAACG,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAS,kCAAW,GAAE,CAAC;MAC5C;IACF,CAAC,EACD,IAAAC,mDAAyB,EAAC,IAAI,CAAChB,MAAM,CAAC,CACvC;EAvCE;AAwCL;AAAC"}
@@ -1,94 +1,65 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.iterator.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.PreviewStartPlugin = 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 _react() {
25
18
  const data = _interopRequireWildcard(require("react"));
26
-
27
19
  _react = function () {
28
20
  return data;
29
21
  };
30
-
31
22
  return data;
32
23
  }
33
-
34
24
  function _lodash() {
35
25
  const data = require("lodash");
36
-
37
26
  _lodash = function () {
38
27
  return data;
39
28
  };
40
-
41
29
  return data;
42
30
  }
43
-
44
31
  function _previewCli() {
45
32
  const data = require("@teambit/preview.cli.preview-server-status");
46
-
47
33
  _previewCli = function () {
48
34
  return data;
49
35
  };
50
-
51
36
  return data;
52
37
  }
53
-
54
38
  function _workspace() {
55
39
  const data = require("@teambit/workspace");
56
-
57
40
  _workspace = function () {
58
41
  return data;
59
42
  };
60
-
61
43
  return data;
62
44
  }
63
-
64
45
  function _previewCli2() {
65
46
  const data = require("@teambit/preview.cli.webpack-events-listener");
66
-
67
47
  _previewCli2 = function () {
68
48
  return data;
69
49
  };
70
-
71
50
  return data;
72
51
  }
73
-
74
52
  function _compiler() {
75
53
  const data = require("@teambit/compiler");
76
-
77
54
  _compiler = function () {
78
55
  return data;
79
56
  };
80
-
81
57
  return data;
82
58
  }
83
-
84
59
  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); }
85
-
86
60
  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; }
87
-
88
61
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
89
-
90
62
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
91
-
92
63
  class PreviewStartPlugin {
93
64
  constructor(workspace, bundler, ui, pubsub, logger) {
94
65
  this.workspace = workspace;
@@ -118,15 +89,14 @@ class PreviewStartPlugin {
118
89
  });
119
90
  });
120
91
  }
121
-
122
92
  async initiate(options) {
123
93
  this.listenToDevServers();
124
- const components = await this.workspace.byPattern(options.pattern || ''); // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.
125
-
126
- const previewServers = await this.bundler.devServer(components); // eslint-disable-next-line @typescript-eslint/no-misused-promises
127
-
128
- previewServers.forEach(server => server.listen()); // DON'T add wait! this promise never resolve so it's stop all the start process!
129
-
94
+ const components = await this.workspace.byPattern(options.pattern || '');
95
+ // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.
96
+ const previewServers = await this.bundler.devServer(components);
97
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
98
+ previewServers.forEach(server => server.listen());
99
+ // DON'T add wait! this promise never resolve so it's stop all the start process!
130
100
  this.workspace.watcher.watchAll({
131
101
  spawnTSServer: true,
132
102
  checkTypes: _workspace().CheckTypes.None,
@@ -139,7 +109,6 @@ class PreviewStartPlugin {
139
109
  });
140
110
  this.previewServers = this.previewServers.concat(previewServers);
141
111
  }
142
-
143
112
  getProxy() {
144
113
  const proxyConfigs = this.previewServers.map(server => {
145
114
  return [{
@@ -152,9 +121,9 @@ class PreviewStartPlugin {
152
121
  }];
153
122
  });
154
123
  return (0, _lodash().flatten)(proxyConfigs);
155
- } // TODO: this should be a part of the devServer
156
-
124
+ }
157
125
 
126
+ // TODO: this should be a part of the devServer
158
127
  listenToDevServers() {
159
128
  // keep state changes immutable!
160
129
  (0, _previewCli2().SubscribeToWebpackEvents)(this.pubsub, {
@@ -172,13 +141,10 @@ class PreviewStartPlugin {
172
141
  }
173
142
  });
174
143
  }
175
-
176
144
  get whenReady() {
177
145
  return this.readyPromise;
178
146
  }
179
-
180
147
  }
181
-
182
148
  exports.PreviewStartPlugin = PreviewStartPlugin;
183
149
 
184
150
  //# sourceMappingURL=preview.start-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","Promise","resolve","setReady","servers","initialState","setServers","useState","updateServers","useEffect","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","spawnTSServer","checkTypes","CheckTypes","None","preCompile","initiator","CompilationInitiator","Start","catch","err","msg","error","console","message","concat","getProxy","proxyConfigs","map","context","envRuntime","id","target","port","ws","flatten","SubscribeToWebpackEvents","onStart","state","onDone","results","whenReady","readyPromise"],"sources":["preview.start-plugin.tsx"],"sourcesContent":["import React, { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { flatten } from 'lodash';\nimport { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status';\nimport { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace, CheckTypes } from '@teambit/workspace';\nimport { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\n\ntype CompilationServers = Record<string, CompilationResult>;\ntype ServersSetter = Dispatch<SetStateAction<CompilationServers>>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger\n ) {}\n\n previewServers: ComponentServer[] = [];\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers();\n\n const components = await this.workspace.byPattern(options.pattern || '');\n // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.\n const previewServers = await this.bundler.devServer(components);\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n previewServers.forEach((server) => server.listen());\n // DON'T add wait! this promise never resolve so it's stop all the start process!\n this.workspace.watcher\n .watchAll({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\n initiator: CompilationInitiator.Start,\n })\n .catch((err) => {\n const msg = `watcher found an error`;\n this.logger.error(msg, err);\n this.logger.console(`${msg}, ${err.message}`);\n });\n this.previewServers = this.previewServers.concat(previewServers);\n }\n\n getProxy(): ProxyEntry[] {\n const proxyConfigs = this.previewServers.map<ProxyEntry[]>((server) => {\n return [\n {\n context: [`/preview/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n },\n {\n context: [`/_hmr/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n ws: true,\n },\n ];\n });\n\n return flatten(proxyConfigs);\n }\n\n // TODO: this should be a part of the devServer\n private listenToDevServers() {\n // keep state changes immutable!\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.updateServers((state) => ({\n ...state,\n [id]: { compiling: true },\n }));\n },\n onDone: (id, results) => {\n this.updateServers((state) => ({\n ...state,\n [id]: results,\n }));\n },\n });\n }\n\n private setReady: () => void;\n private readyPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady(): Promise<void> {\n return this.readyPromise;\n }\n\n private initialState: CompilationServers = {};\n // implements react-like setter (value or updater)\n private updateServers: ServersSetter = (servers) => {\n this.initialState = typeof servers === 'function' ? servers(this.initialState) : servers;\n return servers;\n };\n\n render = () => {\n const [servers, setServers] = useState<CompilationServers>(this.initialState);\n this.updateServers = setServers;\n this.initialState = {};\n\n useEffect(() => {\n const noneAreCompiling = Object.values(servers).every((x) => !x.compiling);\n if (noneAreCompiling) this.setReady();\n }, [servers]);\n\n return <PreviewServerStatus previewServers={this.previewServers} serverStats={servers} />;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","Promise","resolve","setReady","servers","initialState","setServers","useState","updateServers","useEffect","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","spawnTSServer","checkTypes","CheckTypes","None","preCompile","initiator","CompilationInitiator","Start","catch","err","msg","error","console","message","concat","getProxy","proxyConfigs","map","context","envRuntime","id","target","port","ws","flatten","SubscribeToWebpackEvents","onStart","state","onDone","results","whenReady","readyPromise"],"sources":["preview.start-plugin.tsx"],"sourcesContent":["import React, { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { flatten } from 'lodash';\nimport { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status';\nimport { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace, CheckTypes } from '@teambit/workspace';\nimport { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\n\ntype CompilationServers = Record<string, CompilationResult>;\ntype ServersSetter = Dispatch<SetStateAction<CompilationServers>>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger\n ) {}\n\n previewServers: ComponentServer[] = [];\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers();\n\n const components = await this.workspace.byPattern(options.pattern || '');\n // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.\n const previewServers = await this.bundler.devServer(components);\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n previewServers.forEach((server) => server.listen());\n // DON'T add wait! this promise never resolve so it's stop all the start process!\n this.workspace.watcher\n .watchAll({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\n initiator: CompilationInitiator.Start,\n })\n .catch((err) => {\n const msg = `watcher found an error`;\n this.logger.error(msg, err);\n this.logger.console(`${msg}, ${err.message}`);\n });\n this.previewServers = this.previewServers.concat(previewServers);\n }\n\n getProxy(): ProxyEntry[] {\n const proxyConfigs = this.previewServers.map<ProxyEntry[]>((server) => {\n return [\n {\n context: [`/preview/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n },\n {\n context: [`/_hmr/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n ws: true,\n },\n ];\n });\n\n return flatten(proxyConfigs);\n }\n\n // TODO: this should be a part of the devServer\n private listenToDevServers() {\n // keep state changes immutable!\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.updateServers((state) => ({\n ...state,\n [id]: { compiling: true },\n }));\n },\n onDone: (id, results) => {\n this.updateServers((state) => ({\n ...state,\n [id]: results,\n }));\n },\n });\n }\n\n private setReady: () => void;\n private readyPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady(): Promise<void> {\n return this.readyPromise;\n }\n\n private initialState: CompilationServers = {};\n // implements react-like setter (value or updater)\n private updateServers: ServersSetter = (servers) => {\n this.initialState = typeof servers === 'function' ? servers(this.initialState) : servers;\n return servers;\n };\n\n render = () => {\n const [servers, setServers] = useState<CompilationServers>(this.initialState);\n this.updateServers = setServers;\n this.initialState = {};\n\n useEffect(() => {\n const noneAreCompiling = Object.values(servers).every((x) => !x.compiling);\n if (noneAreCompiling) this.setReady();\n }, [servers]);\n\n return <PreviewServerStatus previewServers={this.previewServers} serverStats={servers} />;\n };\n}\n"],"mappings":"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"}
@@ -1,47 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.promise.js");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.PreviewTask = exports.PREVIEW_TASK_NAME = void 0;
11
-
12
9
  function _defineProperty2() {
13
10
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
11
  _defineProperty2 = function () {
16
12
  return data;
17
13
  };
18
-
19
14
  return data;
20
15
  }
21
-
22
16
  function _path() {
23
17
  const data = require("path");
24
-
25
18
  _path = function () {
26
19
  return data;
27
20
  };
28
-
29
21
  return data;
30
22
  }
31
-
32
23
  function _builder() {
33
24
  const data = require("@teambit/builder");
34
-
35
25
  _builder = function () {
36
26
  return data;
37
27
  };
38
-
39
28
  return data;
40
29
  }
41
-
42
30
  const PREVIEW_TASK_NAME = 'GeneratePreview';
43
31
  exports.PREVIEW_TASK_NAME = PREVIEW_TASK_NAME;
44
-
45
32
  class PreviewTask {
46
33
  constructor(
47
34
  /**
@@ -60,11 +47,10 @@ class PreviewTask {
60
47
  (0, _defineProperty2().default)(this, "name", PREVIEW_TASK_NAME);
61
48
  (0, _defineProperty2().default)(this, "location", 'end');
62
49
  }
63
-
64
50
  // readonly dependencies = [CompilerAspect.id];
51
+
65
52
  async execute(context) {
66
53
  var _envPreviewConfig$spl;
67
-
68
54
  const defs = this.preview.getDefs();
69
55
  const url = `/preview/${context.envRuntime.id}`;
70
56
  const bundlingStrategy = this.preview.getBundlingStrategy(context.env);
@@ -91,25 +77,20 @@ class PreviewTask {
91
77
  const results = bundlingStrategy.computeResults(bundlerContext, bundlerResults, this);
92
78
  return results;
93
79
  }
94
-
95
80
  getLinkFileDirectory() {
96
81
  return (0, _path().join)(_builder().CAPSULE_ARTIFACTS_DIR, 'preview-links');
97
82
  }
98
-
99
83
  getPreviewDirectory(context) {
100
84
  const outputPath = (0, _path().resolve)(`${context.id}/public`);
101
85
  return outputPath;
102
86
  }
103
-
104
87
  getPathsFromMap(capsule, moduleMap, context) {
105
88
  const compiler = context.env.getCompiler(context);
106
89
  return moduleMap.map(files => {
107
90
  return files.map(file => (0, _path().join)(capsule.path, compiler.getDistPathBySrcPath(file.relative)));
108
91
  });
109
92
  }
110
-
111
93
  }
112
-
113
94
  exports.PreviewTask = PreviewTask;
114
95
 
115
96
  //# sourceMappingURL=preview.task.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PREVIEW_TASK_NAME","PreviewTask","constructor","bundler","preview","dependencyResolver","logger","execute","context","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","env","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","Object","assign","targets","computeTargets","bundlerContext","compress","name","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","getBundler","bundlerResults","run","results","computeResults","getLinkFileDirectory","join","CAPSULE_ARTIFACTS_DIR","outputPath","resolve","getPathsFromMap","capsule","moduleMap","compiler","getCompiler","map","files","file","path","getDistPathBySrcPath","relative"],"sources":["preview.task.ts"],"sourcesContent":["import { resolve, join } from 'path';\nimport { ExecutionContext } from '@teambit/envs';\nimport { BuildContext, BuiltTaskResult, BuildTask, TaskLocation, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { Bundler, BundlerContext, BundlerMain, Target } from '@teambit/bundler';\nimport { Compiler } from '@teambit/compiler';\nimport { ComponentMap } from '@teambit/component';\nimport { Capsule } from '@teambit/isolator';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PreviewMain } from './preview.main.runtime';\n\nexport const PREVIEW_TASK_NAME = 'GeneratePreview';\nexport class PreviewTask implements BuildTask {\n constructor(\n /**\n * bundler extension.\n */\n private bundler: BundlerMain,\n\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n aspectId = 'teambit.preview/preview';\n name = PREVIEW_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const defs = this.preview.getDefs();\n const url = `/preview/${context.envRuntime.id}`;\n const bundlingStrategy = this.preview.getBundlingStrategy(context.env);\n const envPreviewConfig = this.preview.getEnvPreviewConfig(context.env);\n const splitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n const computeTargetsContext = Object.assign(context, { splitComponentBundle });\n\n const targets: Target[] = await bundlingStrategy.computeTargets(computeTargetsContext, defs, this);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets,\n compress: bundlingStrategy.name !== 'env' && splitComponentBundle,\n entry: [],\n publicPath: this.getPreviewDirectory(context),\n rootPath: url,\n development: context.dev,\n metaData: {\n initiator: `${PREVIEW_TASK_NAME} task`,\n envId: context.id,\n },\n });\n\n const bundler: Bundler = await context.env.getBundler(bundlerContext);\n const bundlerResults = await bundler.run();\n\n const results = bundlingStrategy.computeResults(bundlerContext, bundlerResults, this);\n return results;\n }\n\n getLinkFileDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview-links');\n }\n\n getPreviewDirectory(context: ExecutionContext) {\n const outputPath = resolve(`${context.id}/public`);\n return outputPath;\n }\n\n getPathsFromMap(\n capsule: Capsule,\n moduleMap: ComponentMap<AbstractVinyl[]>,\n context: BuildContext\n ): ComponentMap<string[]> {\n const compiler: Compiler = context.env.getCompiler(context);\n return moduleMap.map((files) => {\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAUO,MAAMA,iBAAiB,GAAG,iBAA1B;;;AACA,MAAMC,WAAN,CAAuC;EAC5CC,WAAW;EACT;AACJ;AACA;EACYC,OAJC;EAMT;AACJ;AACA;EACYC,OATC,EAWDC,kBAXC,EAYDC,MAZC,EAaT;IAAA,KATQH,OASR,GATQA,OASR;IAAA,KAJQC,OAIR,GAJQA,OAIR;IAAA,KAFQC,kBAER,GAFQA,kBAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,kDAES,yBAFT;IAAA,8CAGKN,iBAHL;IAAA,kDAIuB,KAJvB;EAAE;;EAKJ;EAEa,MAAPO,OAAO,CAACC,OAAD,EAAkD;IAAA;;IAC7D,MAAMC,IAAI,GAAG,KAAKL,OAAL,CAAaM,OAAb,EAAb;IACA,MAAMC,GAAG,GAAI,YAAWH,OAAO,CAACI,UAAR,CAAmBC,EAAG,EAA9C;IACA,MAAMC,gBAAgB,GAAG,KAAKV,OAAL,CAAaW,mBAAb,CAAiCP,OAAO,CAACQ,GAAzC,CAAzB;IACA,MAAMC,gBAAgB,GAAG,KAAKb,OAAL,CAAac,mBAAb,CAAiCV,OAAO,CAACQ,GAAzC,CAAzB;IACA,MAAMG,oBAAoB,4BAAGF,gBAAgB,CAACE,oBAApB,yEAA4C,KAAtE;IACA,MAAMC,qBAAqB,GAAGC,MAAM,CAACC,MAAP,CAAcd,OAAd,EAAuB;MAAEW;IAAF,CAAvB,CAA9B;IAEA,MAAMI,OAAiB,GAAG,MAAMT,gBAAgB,CAACU,cAAjB,CAAgCJ,qBAAhC,EAAuDX,IAAvD,EAA6D,IAA7D,CAAhC;IAEA,MAAMgB,cAA8B,GAAGJ,MAAM,CAACC,MAAP,CAAcd,OAAd,EAAuB;MAC5De,OAD4D;MAE5DG,QAAQ,EAAEZ,gBAAgB,CAACa,IAAjB,KAA0B,KAA1B,IAAmCR,oBAFe;MAG5DS,KAAK,EAAE,EAHqD;MAI5DC,UAAU,EAAE,KAAKC,mBAAL,CAAyBtB,OAAzB,CAJgD;MAK5DuB,QAAQ,EAAEpB,GALkD;MAM5DqB,WAAW,EAAExB,OAAO,CAACyB,GANuC;MAO5DC,QAAQ,EAAE;QACRC,SAAS,EAAG,GAAEnC,iBAAkB,OADxB;QAERoC,KAAK,EAAE5B,OAAO,CAACK;MAFP;IAPkD,CAAvB,CAAvC;IAaA,MAAMV,OAAgB,GAAG,MAAMK,OAAO,CAACQ,GAAR,CAAYqB,UAAZ,CAAuBZ,cAAvB,CAA/B;IACA,MAAMa,cAAc,GAAG,MAAMnC,OAAO,CAACoC,GAAR,EAA7B;IAEA,MAAMC,OAAO,GAAG1B,gBAAgB,CAAC2B,cAAjB,CAAgChB,cAAhC,EAAgDa,cAAhD,EAAgE,IAAhE,CAAhB;IACA,OAAOE,OAAP;EACD;;EAEDE,oBAAoB,GAAG;IACrB,OAAO,IAAAC,YAAA,EAAKC,gCAAL,EAA4B,eAA5B,CAAP;EACD;;EAEDd,mBAAmB,CAACtB,OAAD,EAA4B;IAC7C,MAAMqC,UAAU,GAAG,IAAAC,eAAA,EAAS,GAAEtC,OAAO,CAACK,EAAG,SAAtB,CAAnB;IACA,OAAOgC,UAAP;EACD;;EAEDE,eAAe,CACbC,OADa,EAEbC,SAFa,EAGbzC,OAHa,EAIW;IACxB,MAAM0C,QAAkB,GAAG1C,OAAO,CAACQ,GAAR,CAAYmC,WAAZ,CAAwB3C,OAAxB,CAA3B;IACA,OAAOyC,SAAS,CAACG,GAAV,CAAeC,KAAD,IAAW;MAC9B,OAAOA,KAAK,CAACD,GAAN,CAAWE,IAAD,IAAU,IAAAX,YAAA,EAAKK,OAAO,CAACO,IAAb,EAAmBL,QAAQ,CAACM,oBAAT,CAA8BF,IAAI,CAACG,QAAnC,CAAnB,CAApB,CAAP;IACD,CAFM,CAAP;EAGD;;AArE2C"}
1
+ {"version":3,"names":["PREVIEW_TASK_NAME","PreviewTask","constructor","bundler","preview","dependencyResolver","logger","execute","context","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","env","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","Object","assign","targets","computeTargets","bundlerContext","compress","name","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","getBundler","bundlerResults","run","results","computeResults","getLinkFileDirectory","join","CAPSULE_ARTIFACTS_DIR","outputPath","resolve","getPathsFromMap","capsule","moduleMap","compiler","getCompiler","map","files","file","path","getDistPathBySrcPath","relative"],"sources":["preview.task.ts"],"sourcesContent":["import { resolve, join } from 'path';\nimport { ExecutionContext } from '@teambit/envs';\nimport { BuildContext, BuiltTaskResult, BuildTask, TaskLocation, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { Bundler, BundlerContext, BundlerMain, Target } from '@teambit/bundler';\nimport { Compiler } from '@teambit/compiler';\nimport { ComponentMap } from '@teambit/component';\nimport { Capsule } from '@teambit/isolator';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PreviewMain } from './preview.main.runtime';\n\nexport const PREVIEW_TASK_NAME = 'GeneratePreview';\nexport class PreviewTask implements BuildTask {\n constructor(\n /**\n * bundler extension.\n */\n private bundler: BundlerMain,\n\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n aspectId = 'teambit.preview/preview';\n name = PREVIEW_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const defs = this.preview.getDefs();\n const url = `/preview/${context.envRuntime.id}`;\n const bundlingStrategy = this.preview.getBundlingStrategy(context.env);\n const envPreviewConfig = this.preview.getEnvPreviewConfig(context.env);\n const splitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n const computeTargetsContext = Object.assign(context, { splitComponentBundle });\n\n const targets: Target[] = await bundlingStrategy.computeTargets(computeTargetsContext, defs, this);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets,\n compress: bundlingStrategy.name !== 'env' && splitComponentBundle,\n entry: [],\n publicPath: this.getPreviewDirectory(context),\n rootPath: url,\n development: context.dev,\n metaData: {\n initiator: `${PREVIEW_TASK_NAME} task`,\n envId: context.id,\n },\n });\n\n const bundler: Bundler = await context.env.getBundler(bundlerContext);\n const bundlerResults = await bundler.run();\n\n const results = bundlingStrategy.computeResults(bundlerContext, bundlerResults, this);\n return results;\n }\n\n getLinkFileDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview-links');\n }\n\n getPreviewDirectory(context: ExecutionContext) {\n const outputPath = resolve(`${context.id}/public`);\n return outputPath;\n }\n\n getPathsFromMap(\n capsule: Capsule,\n moduleMap: ComponentMap<AbstractVinyl[]>,\n context: BuildContext\n ): ComponentMap<string[]> {\n const compiler: Compiler = context.env.getCompiler(context);\n return moduleMap.map((files) => {\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n });\n }\n}\n"],"mappings":"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"}
@@ -4,24 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.RenderingContext = void 0;
7
-
8
7
  class RenderingContext {
9
8
  constructor(contexts, options = {}) {
10
9
  this.contexts = contexts;
11
10
  this.options = options;
12
11
  }
12
+
13
13
  /**
14
14
  * obtain rendering context of a specific aspect.
15
15
  */
16
-
17
-
18
16
  get(aspectId) {
19
17
  const contextFactory = this.contexts.get(aspectId);
20
18
  return contextFactory === null || contextFactory === void 0 ? void 0 : contextFactory(this.options);
21
19
  }
22
-
23
20
  }
24
-
25
21
  exports.RenderingContext = RenderingContext;
26
22
 
27
23
  //# sourceMappingURL=rendering-context.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory"],"sources":["rendering-context.ts"],"sourcesContent":["import { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(private contexts: RenderingContextSlot, private options: RenderingContextOptions = {}) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;;AAKO,MAAMA,gBAAN,CAAuB;EAC5BC,WAAW,CAASC,QAAT,EAAiDC,OAAgC,GAAG,EAApF,EAAwF;IAAA,KAA/ED,QAA+E,GAA/EA,QAA+E;IAAA,KAAvCC,OAAuC,GAAvCA,OAAuC;EAAE;EAErG;AACF;AACA;;;EACEC,GAAG,CAACC,QAAD,EAAmB;IACpB,MAAMC,cAAc,GAAG,KAAKJ,QAAL,CAAcE,GAAd,CAAkBC,QAAlB,CAAvB;IACA,OAAOC,cAAP,aAAOA,cAAP,uBAAOA,cAAc,CAAG,KAAKH,OAAR,CAArB;EACD;;AAT2B"}
1
+ {"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory"],"sources":["rendering-context.ts"],"sourcesContent":["import { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(private contexts: RenderingContextSlot, private options: RenderingContextOptions = {}) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAW,CAASC,QAA8B,EAAUC,OAAgC,GAAG,CAAC,CAAC,EAAE;IAAA,KAA/ED,QAA8B,GAA9BA,QAA8B;IAAA,KAAUC,OAAgC,GAAhCA,OAAgC;EAAQ;;EAEpG;AACF;AACA;EACEC,GAAG,CAACC,QAAgB,EAAE;IACpB,MAAMC,cAAc,GAAG,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,QAAQ,CAAC;IAClD,OAAOC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG,IAAI,CAACH,OAAO,CAAC;EACvC;AACF;AAAC"}
@@ -1,39 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.SizeEvent = void 0;
9
-
10
8
  function _defineProperty2() {
11
9
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
-
13
10
  _defineProperty2 = function () {
14
11
  return data;
15
12
  };
16
-
17
13
  return data;
18
14
  }
19
-
20
15
  function _pubsub() {
21
16
  const data = require("@teambit/pubsub");
22
-
23
17
  _pubsub = function () {
24
18
  return data;
25
19
  };
26
-
27
20
  return data;
28
21
  }
29
-
30
22
  class SizeEvent extends _pubsub().BitBaseEvent {
31
23
  constructor(sizeEvent) {
32
24
  super(SizeEvent.TYPE, '0.0.1', new Date().getTime(), sizeEvent);
33
25
  }
34
-
35
26
  }
36
-
37
27
  exports.SizeEvent = SizeEvent;
38
28
  (0, _defineProperty2().default)(SizeEvent, "TYPE", 'preview-size');
39
29
 
@@ -1 +1 @@
1
- {"version":3,"names":["SizeEvent","BitBaseEvent","constructor","sizeEvent","TYPE","Date","getTime"],"sources":["size-event.ts"],"sourcesContent":["import { BitBaseEvent } from '@teambit/pubsub';\n\nexport type SizeEventType = {\n height: number;\n width: number;\n};\n\nexport class SizeEvent extends BitBaseEvent<SizeEventType> {\n static readonly TYPE = 'preview-size';\n\n constructor(sizeEvent: SizeEventType) {\n super(SizeEvent.TYPE, '0.0.1', new Date().getTime(), sizeEvent);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,MAAMA,SAAN,SAAwBC,sBAAxB,CAAoD;EAGzDC,WAAW,CAACC,SAAD,EAA2B;IACpC,MAAMH,SAAS,CAACI,IAAhB,EAAsB,OAAtB,EAA+B,IAAIC,IAAJ,GAAWC,OAAX,EAA/B,EAAqDH,SAArD;EACD;;AALwD;;;gCAA9CH,S,UACY,c"}
1
+ {"version":3,"names":["SizeEvent","BitBaseEvent","constructor","sizeEvent","TYPE","Date","getTime"],"sources":["size-event.ts"],"sourcesContent":["import { BitBaseEvent } from '@teambit/pubsub';\n\nexport type SizeEventType = {\n height: number;\n width: number;\n};\n\nexport class SizeEvent extends BitBaseEvent<SizeEventType> {\n static readonly TYPE = 'preview-size';\n\n constructor(sizeEvent: SizeEventType) {\n super(SizeEvent.TYPE, '0.0.1', new Date().getTime(), sizeEvent);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAOO,MAAMA,SAAS,SAASC,sBAAY,CAAgB;EAGzDC,WAAW,CAACC,SAAwB,EAAE;IACpC,KAAK,CAACH,SAAS,CAACI,IAAI,EAAE,OAAO,EAAE,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,EAAEH,SAAS,CAAC;EACjE;AACF;AAAC;AAAA,gCANYH,SAAS,UACG,cAAc"}