wc-compiler 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,7 +50,7 @@
50
50
  1. Get HTML!
51
51
  ```html
52
52
  <wcc-footer>
53
- <template shadowroot="open">
53
+ <template shadowrootmode="open">
54
54
  <style>
55
55
  .footer {
56
56
  color: white;
package/dist/wcc.dist.cjs CHANGED
@@ -83,7 +83,7 @@ class Document extends Node$1 {
83
83
  return new HTMLTemplateElement();
84
84
 
85
85
  default:
86
- return new HTMLElement$1();
86
+ return new HTMLElement();
87
87
 
88
88
  }
89
89
  }
@@ -95,7 +95,7 @@ class Document extends Node$1 {
95
95
 
96
96
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
97
97
  // EventTarget <- Node <- Element <- HTMLElement
98
- class HTMLElement$1 extends Element {
98
+ class HTMLElement extends Element {
99
99
  attachShadow(options) {
100
100
  this.shadowRoot = new ShadowRoot(options);
101
101
 
@@ -126,7 +126,7 @@ class ShadowRoot extends DocumentFragment {
126
126
 
127
127
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement
128
128
  // EventTarget <- Node <- Element <- HTMLElement <- HTMLTemplateElement
129
- class HTMLTemplateElement extends HTMLElement$1 {
129
+ class HTMLTemplateElement extends HTMLElement {
130
130
  constructor() {
131
131
  super();
132
132
  this.content = new DocumentFragment();
@@ -136,7 +136,7 @@ class HTMLTemplateElement extends HTMLElement$1 {
136
136
  set innerHTML(html) {
137
137
  if (this.content) {
138
138
  this.content.innerHTML = `
139
- <template shadowroot="open">
139
+ <template shadowrootmode="open">
140
140
  ${html}
141
141
  </template>
142
142
  `;
@@ -168,7 +168,7 @@ class CustomElementsRegistry {
168
168
  globalThis.addEventListener = noop;
169
169
  globalThis.document = new Document();
170
170
  globalThis.customElements = new CustomElementsRegistry();
171
- globalThis.HTMLElement = HTMLElement$1;
171
+ globalThis.HTMLElement = HTMLElement;
172
172
 
173
173
  // Reserved word lists for various dialects of the language
174
174
 
@@ -28130,9 +28130,6 @@ async function initializeCustomElement(elementURL, tagName, attrs = [], definiti
28130
28130
  await elementInstance.connectedCallback();
28131
28131
 
28132
28132
  return elementInstance;
28133
- } else {
28134
- console.debug('No custom element class found for this file');
28135
- return new HTMLElement();
28136
28133
  }
28137
28134
  }
28138
28135
 
@@ -28141,18 +28138,25 @@ async function renderToString(elementURL, wrappingEntryTag = true, props = {}) {
28141
28138
  const elementTagName = wrappingEntryTag && await getTagName(elementURL);
28142
28139
  const isEntry = !!elementTagName;
28143
28140
  const elementInstance = await initializeCustomElement(elementURL, undefined, undefined, definitions, isEntry, props);
28144
-
28145
- const elementHtml = elementInstance.shadowRoot
28146
- ? elementInstance.getInnerHTML({ includeShadowRoots: true })
28147
- : elementInstance.innerHTML;
28148
- const elementTree = getParse(elementHtml)(elementHtml);
28149
- const finalTree = await renderComponentRoots(elementTree, definitions);
28150
- const html = wrappingEntryTag && elementTagName ? `
28151
- <${elementTagName}>
28152
- ${serialize(finalTree)}
28153
- </${elementTagName}>
28154
- `
28155
- : serialize(finalTree);
28141
+ let html;
28142
+
28143
+ // in case the entry point isn't valid
28144
+ if (elementInstance) {
28145
+ const elementHtml = elementInstance.shadowRoot
28146
+ ? elementInstance.getInnerHTML({ includeShadowRoots: true })
28147
+ : elementInstance.innerHTML;
28148
+ const elementTree = getParse(elementHtml)(elementHtml);
28149
+ const finalTree = await renderComponentRoots(elementTree, definitions);
28150
+
28151
+ html = wrappingEntryTag && elementTagName ? `
28152
+ <${elementTagName}>
28153
+ ${serialize(finalTree)}
28154
+ </${elementTagName}>
28155
+ `
28156
+ : serialize(finalTree);
28157
+ } else {
28158
+ console.warn('WARNING: No custom element class found for this entry point.');
28159
+ }
28156
28160
 
28157
28161
  return {
28158
28162
  html,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wc-compiler",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Experimental native Web Components compiler.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,6 +11,7 @@
11
11
  "author": "Owen Buckley <owen@thegreenhouse.io>",
12
12
  "keywords": [
13
13
  "Web Components",
14
+ "SSR",
14
15
  "JSX",
15
16
  "Greenwood"
16
17
  ],
package/src/dom-shim.js CHANGED
@@ -108,7 +108,7 @@ class HTMLTemplateElement extends HTMLElement {
108
108
  set innerHTML(html) {
109
109
  if (this.content) {
110
110
  this.content.innerHTML = `
111
- <template shadowroot="open">
111
+ <template shadowrootmode="open">
112
112
  ${html}
113
113
  </template>
114
114
  `;
package/src/wcc.js CHANGED
@@ -158,9 +158,6 @@ async function initializeCustomElement(elementURL, tagName, attrs = [], definiti
158
158
  await elementInstance.connectedCallback();
159
159
 
160
160
  return elementInstance;
161
- } else {
162
- console.debug('No custom element class found for this file');
163
- return new HTMLElement();
164
161
  }
165
162
  }
166
163
 
@@ -169,18 +166,25 @@ async function renderToString(elementURL, wrappingEntryTag = true, props = {}) {
169
166
  const elementTagName = wrappingEntryTag && await getTagName(elementURL);
170
167
  const isEntry = !!elementTagName;
171
168
  const elementInstance = await initializeCustomElement(elementURL, undefined, undefined, definitions, isEntry, props);
172
-
173
- const elementHtml = elementInstance.shadowRoot
174
- ? elementInstance.getInnerHTML({ includeShadowRoots: true })
175
- : elementInstance.innerHTML;
176
- const elementTree = getParse(elementHtml)(elementHtml);
177
- const finalTree = await renderComponentRoots(elementTree, definitions);
178
- const html = wrappingEntryTag && elementTagName ? `
179
- <${elementTagName}>
180
- ${serialize(finalTree)}
181
- </${elementTagName}>
182
- `
183
- : serialize(finalTree);
169
+ let html;
170
+
171
+ // in case the entry point isn't valid
172
+ if (elementInstance) {
173
+ const elementHtml = elementInstance.shadowRoot
174
+ ? elementInstance.getInnerHTML({ includeShadowRoots: true })
175
+ : elementInstance.innerHTML;
176
+ const elementTree = getParse(elementHtml)(elementHtml);
177
+ const finalTree = await renderComponentRoots(elementTree, definitions);
178
+
179
+ html = wrappingEntryTag && elementTagName ? `
180
+ <${elementTagName}>
181
+ ${serialize(finalTree)}
182
+ </${elementTagName}>
183
+ `
184
+ : serialize(finalTree);
185
+ } else {
186
+ console.warn('WARNING: No custom element class found for this entry point.');
187
+ }
184
188
 
185
189
  return {
186
190
  html,