@web-widget/web-components 3.0.0-beta.2
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/dist/chunk-IQODZJ6D.js +23 -0
- package/dist/components-DcaWMyHn.d.ts +9 -0
- package/dist/web-components.adapter.client.d.ts +7 -0
- package/dist/web-components.adapter.client.js +30 -0
- package/dist/web-components.adapter.server.d.ts +6 -0
- package/dist/web-components.adapter.server.js +13 -0
- package/dist/web-components.d.ts +1 -0
- package/dist/web-components.js +2 -0
- package/package.json +59 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// src/components.ts
|
|
2
|
+
function resolveTagName(component) {
|
|
3
|
+
if (typeof component === "string") return component;
|
|
4
|
+
const tagName = component.tagName;
|
|
5
|
+
if (!(tagName == null ? void 0 : tagName.includes("-")))
|
|
6
|
+
throw new TypeError("Web component classes must declare a static tagName.");
|
|
7
|
+
if (!customElements.get(tagName)) customElements.define(tagName, component);
|
|
8
|
+
return tagName;
|
|
9
|
+
}
|
|
10
|
+
function container(loader) {
|
|
11
|
+
return class WebWidgetContainer extends HTMLElement {
|
|
12
|
+
async connectedCallback() {
|
|
13
|
+
if (this.firstElementChild) return;
|
|
14
|
+
const { default: component } = await loader();
|
|
15
|
+
this.append(document.createElement(resolveTagName(component)));
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
resolveTagName,
|
|
22
|
+
container
|
|
23
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type WebComponent = string | (CustomElementConstructor & {
|
|
2
|
+
tagName: string;
|
|
3
|
+
});
|
|
4
|
+
declare function resolveTagName(component: WebComponent): string;
|
|
5
|
+
declare function container(loader: () => Promise<{
|
|
6
|
+
default: WebComponent;
|
|
7
|
+
}>): CustomElementConstructor;
|
|
8
|
+
|
|
9
|
+
export { type WebComponent as W, container as c, resolveTagName as r };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
|
+
import { W as WebComponent } from './components-DcaWMyHn.js';
|
|
3
|
+
export { c as container, r as resolveTagName } from './components-DcaWMyHn.js';
|
|
4
|
+
|
|
5
|
+
declare const render: _web_widget_schema.ClientRender<WebComponent, unknown, _web_widget_schema.ClientRenderOptions, void | _web_widget_schema.ClientRenderResult<unknown>>;
|
|
6
|
+
|
|
7
|
+
export { WebComponent, render };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
container,
|
|
3
|
+
resolveTagName
|
|
4
|
+
} from "./chunk-IQODZJ6D.js";
|
|
5
|
+
|
|
6
|
+
// src/adapter.client.ts
|
|
7
|
+
import { defineClientRender } from "@web-widget/helpers";
|
|
8
|
+
var render = defineClientRender(
|
|
9
|
+
async (component, data, { container: container2 }) => {
|
|
10
|
+
if (!component) throw new TypeError("Missing component.");
|
|
11
|
+
if (!container2) throw new Error("Missing container.");
|
|
12
|
+
let element;
|
|
13
|
+
return {
|
|
14
|
+
mount() {
|
|
15
|
+
element = document.createElement(resolveTagName(component));
|
|
16
|
+
Object.assign(element, data != null ? data : {});
|
|
17
|
+
container2.replaceChildren(element);
|
|
18
|
+
},
|
|
19
|
+
unmount() {
|
|
20
|
+
element == null ? void 0 : element.remove();
|
|
21
|
+
element = void 0;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
export {
|
|
27
|
+
container,
|
|
28
|
+
render,
|
|
29
|
+
resolveTagName
|
|
30
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
|
+
export { W as WebComponent, c as container, r as resolveTagName } from './components-DcaWMyHn.js';
|
|
3
|
+
|
|
4
|
+
declare const render: _web_widget_schema.ServerRender<unknown, unknown, _web_widget_schema.ServerRenderOptions, _web_widget_schema.ServerRenderResult>;
|
|
5
|
+
|
|
6
|
+
export { render };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
container,
|
|
3
|
+
resolveTagName
|
|
4
|
+
} from "./chunk-IQODZJ6D.js";
|
|
5
|
+
|
|
6
|
+
// src/adapter.server.ts
|
|
7
|
+
import { defineServerRender } from "@web-widget/helpers";
|
|
8
|
+
var render = defineServerRender(async () => "");
|
|
9
|
+
export {
|
|
10
|
+
container,
|
|
11
|
+
render,
|
|
12
|
+
resolveTagName
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@web-widget/helpers';
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@web-widget/web-components",
|
|
3
|
+
"description": "Web Components CSR adapter",
|
|
4
|
+
"version": "3.0.0-beta.2",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@web-widget/helpers": "3.0.0-beta.2",
|
|
10
|
+
"@web-widget/schema": "3.0.0-beta.2",
|
|
11
|
+
"@web-widget/web-widget": "3.0.0-beta.2"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"tsup": "^8.3.4",
|
|
15
|
+
"typescript": "^5.9.3"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/web-components.d.ts",
|
|
20
|
+
"development": "./src/index.ts",
|
|
21
|
+
"default": "./dist/web-components.js"
|
|
22
|
+
},
|
|
23
|
+
"./adapter": {
|
|
24
|
+
"worker": {
|
|
25
|
+
"types": "./dist/web-components.adapter.server.d.ts",
|
|
26
|
+
"development": "./src/adapter.server.ts",
|
|
27
|
+
"default": "./dist/web-components.adapter.server.js"
|
|
28
|
+
},
|
|
29
|
+
"browser": {
|
|
30
|
+
"types": "./dist/web-components.adapter.client.d.ts",
|
|
31
|
+
"development": "./src/adapter.client.ts",
|
|
32
|
+
"default": "./dist/web-components.adapter.client.js"
|
|
33
|
+
},
|
|
34
|
+
"default": {
|
|
35
|
+
"types": "./dist/web-components.adapter.server.d.ts",
|
|
36
|
+
"development": "./src/adapter.server.ts",
|
|
37
|
+
"default": "./dist/web-components.adapter.server.js"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"webWidgetAdapter": {
|
|
42
|
+
"version": "1.0.0",
|
|
43
|
+
"name": "web-components",
|
|
44
|
+
"extensions": [
|
|
45
|
+
".wc.ts",
|
|
46
|
+
".wc.js"
|
|
47
|
+
],
|
|
48
|
+
"adapter": "./adapter"
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "pnpm exec tsup",
|
|
55
|
+
"clean:build": "rm -rf dist",
|
|
56
|
+
"clean:node": "rm -rf node_modules",
|
|
57
|
+
"lint": "eslint src"
|
|
58
|
+
}
|
|
59
|
+
}
|