UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

43 lines (42 loc) • 1.6 kB
export type LoadableElements = { embed: HTMLEmbedElement; iframe: HTMLIFrameElement; img: HTMLImageElement; link: HTMLLinkElement; script: HTMLScriptElement; track: HTMLTrackElement; }; export type LoadableElementsNames = keyof LoadableElements; export type LoadElementsOptions = { /** * An HTML element where the created element will be appended. */ appendTo?: HTMLElement; }; export type LoadElementsReturnType<T extends LoadableElementsNames> = Promise<{ event: Event; element: LoadableElements[T]; }>; /** * Load the given source for the given type of element. * @todo manage memo */ export declare function loadElement<T extends LoadableElementsNames>(src: string, type: T, { appendTo }?: LoadElementsOptions): LoadElementsReturnType<T>; /** * Load the given source as an `<img>` element. */ export declare function loadImage(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"img">; /** * Load the given source as an `<iframe>` element. */ export declare function loadIframe(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"iframe">; /** * Load the given source as a `<link>` element. */ export declare function loadLink(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"link">; /** * Load the given source as a `<script>` element. The generated element is * appended to `document.head` by default, as a script element needs * to be inserted in the DOM to load. */ export declare function loadScript(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"script">;