UNPKG

@studiometa/js-toolkit

Version:

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

48 lines (47 loc) • 1.92 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 * @link https://js-toolkit.studiometa.dev/utils/loadElement.html */ export declare function loadElement<T extends LoadableElementsNames>(src: string, type: T, { appendTo }?: LoadElementsOptions): LoadElementsReturnType<T>; /** * Load the given source as an `<img>` element. * @link https://js-toolkit.studiometa.dev/utils/loadImage.html */ export declare function loadImage(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"img">; /** * Load the given source as an `<iframe>` element. * @link https://js-toolkit.studiometa.dev/utils/loadIframe.html */ export declare function loadIframe(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"iframe">; /** * Load the given source as a `<link>` element. * @link https://js-toolkit.studiometa.dev/utils/loadLink.html */ 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. * @link https://js-toolkit.studiometa.dev/utils/loadScript.html */ export declare function loadScript(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"script">;