oxe
Version:
A mighty tiny web components framework/library
16 lines (13 loc) • 549 B
text/typescript
import Load from './load';
const toDash = (data: string) => data.replace(/[a-zA-Z][A-Z]/g, c => `${c[ 0 ]}-${c[ 1 ]}`.toLowerCase());
export default async function Define (component: any) {
if (typeof component === 'string') {
const loaded = await Load(component);
return Define(loaded.default);
} else if (component instanceof Array) {
return Promise.all(component.map(data => Define(data)));
} else {
const name = toDash(component.name);
window.customElements.define(name, component);
}
}