@stencil/dev-server 5.0.0-alpha.3 → 5.0.0-alpha.5

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.
@@ -507,6 +507,7 @@ const hmrInlineStylesTraverse = (elm, versionId, trackers) => {
507
507
  if (hasShadowRoot(elm)) hmrInlineStylesTraverse(elm.shadowRoot, versionId, trackers);
508
508
  if (elm.children) for (let i = 0; i < elm.children.length; i++) hmrInlineStylesTraverse(elm.children[i], versionId, trackers);
509
509
  };
510
+ const SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
510
511
  /**
511
512
  * Update or remove a style element based on the HMR update.
512
513
  * @param elm - the style element to update
@@ -517,7 +518,8 @@ const hmrInlineStylesTraverse = (elm, versionId, trackers) => {
517
518
  const hmrStyleElement = (elm, versionId, stylesUpdated) => {
518
519
  if (elm.getAttribute(STYLE_ID_ATTR) === stylesUpdated.styleId) {
519
520
  if (stylesUpdated.styleText) {
520
- elm.innerHTML = stylesUpdated.styleText.replace(/\\n/g, "\n");
521
+ const slotFbSuffix = elm.hasAttribute("data-slot-fb") ? SLOT_FB_CSS : "";
522
+ elm.innerHTML = stylesUpdated.styleText.replace(/\\n/g, "\n") + slotFbSuffix;
521
523
  elm.setAttribute("data-hmr", versionId);
522
524
  } else elm.remove();
523
525
  return true;
package/dist/index.mjs CHANGED
@@ -519,10 +519,10 @@ async function ssrPageRequest(devServerConfig, serverCtx, req, res) {
519
519
  try {
520
520
  let status = 500;
521
521
  let content = "";
522
- const { hydrateApp, srcIndexHtml, diagnostics } = await setupHydrateApp(devServerConfig, serverCtx);
522
+ const { ssrApp, srcIndexHtml, diagnostics } = await setupHydrateApp(devServerConfig, serverCtx);
523
523
  if (!diagnostics.some((diagnostic) => diagnostic.level === "error")) try {
524
524
  const opts = getSsrHydrateOptions(devServerConfig, serverCtx, req.url);
525
- const ssrResults = await hydrateApp.renderToString(srcIndexHtml, opts);
525
+ const ssrResults = await ssrApp.renderToString(srcIndexHtml, opts);
526
526
  diagnostics.push(...ssrResults.diagnostics);
527
527
  status = ssrResults.httpStatus ?? 500;
528
528
  content = ssrResults.html ?? "";
@@ -549,11 +549,11 @@ async function ssrStaticDataRequest(devServerConfig, serverCtx, req, res) {
549
549
  try {
550
550
  const data = {};
551
551
  let httpCache = false;
552
- const { hydrateApp, srcIndexHtml, diagnostics } = await setupHydrateApp(devServerConfig, serverCtx);
552
+ const { ssrApp, srcIndexHtml, diagnostics } = await setupHydrateApp(devServerConfig, serverCtx);
553
553
  if (!diagnostics.some((diagnostic) => diagnostic.level === "error")) try {
554
554
  const { ssrPath, hasQueryString } = getSsrStaticDataPath(req);
555
555
  const opts = getSsrHydrateOptions(devServerConfig, serverCtx, new URL(ssrPath, req.url));
556
- const ssrResults = await hydrateApp.renderToString(srcIndexHtml, opts);
556
+ const ssrResults = await ssrApp.renderToString(srcIndexHtml, opts);
557
557
  diagnostics.push(...ssrResults.diagnostics);
558
558
  ssrResults.staticData.forEach((s) => {
559
559
  if (s.type === "application/json") data[s.id] = JSON.parse(s.content);
@@ -580,7 +580,7 @@ async function ssrStaticDataRequest(devServerConfig, serverCtx, req, res) {
580
580
  }
581
581
  async function setupHydrateApp(devServerConfig, serverCtx) {
582
582
  let srcIndexHtml = null;
583
- let hydrateApp = null;
583
+ let ssrApp = null;
584
584
  const buildResults = await serverCtx.getBuildResults();
585
585
  const diagnostics = [];
586
586
  if (serverCtx.prerenderConfig == null && isString(devServerConfig.prerenderConfig)) try {
@@ -590,8 +590,8 @@ async function setupHydrateApp(devServerConfig, serverCtx) {
590
590
  } catch (e) {
591
591
  catchError(diagnostics, e);
592
592
  }
593
- if (!isString(buildResults.hydrateAppFilePath)) diagnostics.push({
594
- messageText: "Missing hydrateAppFilePath",
593
+ if (!isString(buildResults.ssrAppFilePath)) diagnostics.push({
594
+ messageText: "Missing ssrAppFilePath",
595
595
  level: "error",
596
596
  type: "ssr",
597
597
  lines: []
@@ -611,19 +611,19 @@ async function setupHydrateApp(devServerConfig, serverCtx) {
611
611
  type: "ssr"
612
612
  });
613
613
  else {
614
- const hydrateAppFilePath = path.resolve(buildResults.hydrateAppFilePath);
614
+ const ssrAppFilePath = path.resolve(buildResults.ssrAppFilePath);
615
615
  try {
616
- const hydrateUrl = pathToFileURL(hydrateAppFilePath);
616
+ const hydrateUrl = pathToFileURL(ssrAppFilePath);
617
617
  hydrateUrl.search = `?t=${Date.now()}`;
618
618
  const hydrateModule = await import(hydrateUrl.href);
619
- hydrateApp = hydrateModule.default || hydrateModule;
619
+ ssrApp = hydrateModule.default || hydrateModule;
620
620
  } catch (e) {
621
621
  catchError(diagnostics, e);
622
622
  }
623
623
  }
624
624
  }
625
625
  return {
626
- hydrateApp,
626
+ ssrApp,
627
627
  srcIndexHtml,
628
628
  diagnostics
629
629
  };
@@ -643,14 +643,14 @@ function getSsrHydrateOptions(devServerConfig, serverCtx, url) {
643
643
  prettyHtml: true
644
644
  };
645
645
  const prerenderConfig = serverCtx?.prerenderConfig;
646
- if (isFunction(prerenderConfig?.hydrateOptions)) {
647
- const userOpts = prerenderConfig.hydrateOptions(url);
646
+ if (isFunction(prerenderConfig?.prerenderOptions)) {
647
+ const userOpts = prerenderConfig.prerenderOptions(url);
648
648
  if (userOpts) Object.assign(opts, userOpts);
649
649
  }
650
650
  if (isFunction(serverCtx.sys.applyPrerenderGlobalPatch)) {
651
- const orgBeforeHydrate = opts.beforeHydrate;
651
+ const orgBeforeHydrate = opts.beforeSsr;
652
652
  const applyPatch = serverCtx.sys.applyPrerenderGlobalPatch;
653
- opts.beforeHydrate = (document) => {
653
+ opts.beforeSsr = (document) => {
654
654
  const devServerHostUrl = new URL(devServerConfig.browserUrl).origin;
655
655
  applyPatch({
656
656
  devServerHostUrl,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/dev-server",
3
- "version": "5.0.0-alpha.3",
3
+ "version": "5.0.0-alpha.5",
4
4
  "description": "Development server for Stencil with DOM-based HMR",
5
5
  "keywords": [
6
6
  "dev server",
@@ -42,11 +42,11 @@
42
42
  "devDependencies": {
43
43
  "@tsdown/css": "^0.21.6",
44
44
  "@types/ws": "^8.0.0",
45
- "tsdown": "^0.21.6",
46
- "typescript": "~6.0.2",
45
+ "tsdown": "^0.21.7",
46
+ "typescript": ">4.0.0",
47
47
  "vitest": "^4.1.1",
48
- "vitest-environment-stencil": "^1.10.0",
49
- "@stencil/core": "5.0.0-alpha.3"
48
+ "vitest-environment-stencil": "^1.11.6",
49
+ "@stencil/core": "5.0.0-alpha.5"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "@stencil/core": "^5.0.0-0"