All files / src/controller/assets/sources imageSources.js

87.87% Statements 29/33
100% Branches 15/15
93.33% Functions 14/15
96.29% Lines 26/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44  1x 2x 2x 2x   4x 2x     1x 1x 1x     6x 6x     4x     2x 2x 2x 1x 1x 1x       1x 1x 1x 1x 1x 1x 1x         1x  
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImageSources = void 0;
const imageSource_1 = require("./imageSource");
class ImageSources extends Map {
    constructor() {
        super();
        this._imagePaths = new Array();
    }
    add(...images) {
        this._imagePaths.push(...images);
    }
    remove(...images) {
        images.forEach(image => {
            const index = this._imagePaths.indexOf(image);
            if (index < 0 || index >= this._imagePaths.length)
                return;
            this._imagePaths.splice(index, 1);
            this.delete(image);
        });
    }
    loadAsync() {
        return __awaiter(this, void 0, void 0, function* () {
            yield Promise.all(this._imagePaths.map((path) => __awaiter(this, void 0, void 0, function* () {
                const image = new Image();
                image.src = path;
                yield image.decode();
                const imageName = path.split('/').pop();
                this.set(imageName, new imageSource_1.ImageSource(imageName, image));
            })));
        });
    }
}
exports.ImageSources = ImageSources;