1.1.6 • Published 3 months ago

web-resource-loader v1.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

web-resource-loader

NPM version Downloads Load all resources (images, videos, fonts, audio, css and js files) asynchronously and wait for complete.

Installation

npm i web-resource-loader

Simple usage example

import ResourceManager from 'web-resource-loader'

const resourceManager = new ResourceManager();

resourceManager.loadResources({
    images: [{
        key: "myKey",
        src: "https://i.imgur.com/rsjPao4.gif"
    }]
}).then((message) => {
    // all resources are loaded, do what you want after
    console.log(message);

    const myLoadedImage = resourceManager.getImage("myKey"); // return an HTMLImageElement

    if (myLoadedImage == null) {
        console.log("impossible to find the image with key myKey")
    } else {
        document.body.appendChild(myLoadedImage);
        console.log(myLoadedImage)
    }
}).catch((err) => console.error(err));

Advanced usage

import ResourceManager from 'web-resource-loader'

const resourceManager = new ResourceManager();

const imagesList = [{
    key: "myImageKey",
    src: "assets/images/myImage.png"
},
{
    key: "myImageOtherKey",
    src: "https://i.imgur.com/rsjPao4.gif"
}]

const videosList = [{
    key: "videoKey",
    src: "assets/videos/video.mp4"
}]

const fontsList = [{
    key: "myFont",
    src: "assets/fonts/myFont.ttf"
}]

const audiosList = [{
    key: "alert",
    src: "assets/audios/alert.mp3"
}]

const diversesList = [{
    key: "3dmodel",
    src: "assets/3d/model.glb"
},
{
    key: "myJson",
    src: "http://example.com/myJson.json"
}]

const cssList = [{
    key: "myCssFile",
    src: "assets/css/file.css"
}]

const jsList = [{
    key: "myJsFile",
    src: "assets/js/file.js"
}]

resourceManager.addEventListener("start", () => {
    console.log("Resource loading starts")
})

resourceManager.addEventListener("progress", (e) => {
    // e.detail.totalResources display total resources to load
    // e.detail.loadedResources display loaded resources
    // e.detail.percentage display percentage
    console.log("Progress", e.detail)
})

resourceManager.loadResources({
    images: imagesList,
    videos: videosList,
    fonts: fontsList,
    audios: audiosList,
    diverses: diversesList, // return an fetch() response
    css: cssList, // append automatically in <head></head>
    js: jsList // append automatically in <head></head>
}).then(async (message) => {
    // all resources are loaded, do what you want after
    console.log(message);

    const myJson = await resourceManager.getDiverse("myJson").json(); // return an JSON parsed data
    console.log(myJson);
}).catch((err) => console.error(err));

You need define one key for each item. The keys are unique for each category. Methods available for fetch your resoures are:

  • getImage(key)
  • getVideo(key)
  • getFont(key)
  • getAudio(key)
  • getDiverse(key)
  • getJs(key)
  • getCss(key)
1.1.6

3 months ago

1.1.5

3 months ago

1.1.4

3 months ago

1.1.3

3 months ago

1.1.2

3 months ago

1.1.1

3 months ago

1.1.0

3 months ago

1.0.9

3 months ago

1.0.8

3 months ago

1.0.7

3 months ago

1.0.6

3 months ago

1.0.5

3 months ago

1.0.4

3 months ago

1.0.3

3 months ago

1.0.2

3 months ago

1.0.1

3 months ago

1.0.0

3 months ago