UNPKG

@lautarobock/file-input

Version:
29 lines 3.36 kB
/** * Validator for size of file * @param max Max of size of file (in bytes) */ export function MaxSizeValidator(max) { return (ctrl) => { max = Number(max); if (isNaN(max)) { throw 'MaxSizeValidator: max of size of file is invalid'; } if (!ctrl.value) return null; let files = ctrl.value; if (!Array.isArray(ctrl.value)) { files = [ctrl.value]; } if (!files.length) return null; const add = (a, b) => a + b; const sumSize = files.map(x => x.size).reduce(add); if (sumSize > max) { return { maxSize: true }; } return null; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXNpemUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsZS1pbnB1dC9zcmMvbGliL3ZhbGlkYXRvcnMvbWF4LXNpemUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFXO0lBQ3hDLE9BQU8sQ0FBQyxJQUFxQixFQUEyQixFQUFFO1FBQ3RELEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNiLE1BQU0sa0RBQWtELENBQUM7UUFDN0QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLElBQUksS0FBSyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFHLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDaEIsT0FBTztnQkFDSCxPQUFPLEVBQUUsSUFBSTthQUNoQixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRvciBmb3Igc2l6ZSBvZiBmaWxlXHJcbiAqIEBwYXJhbSBtYXggTWF4IG9mIHNpemUgb2YgZmlsZSAoaW4gYnl0ZXMpXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gTWF4U2l6ZVZhbGlkYXRvcihtYXg6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAgIG1heCA9IE51bWJlcihtYXgpO1xyXG4gICAgICAgIGlmIChpc05hTihtYXgpKSB7XHJcbiAgICAgICAgICAgIHRocm93ICdNYXhTaXplVmFsaWRhdG9yOiBtYXggb2Ygc2l6ZSBvZiBmaWxlIGlzIGludmFsaWQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWN0cmwudmFsdWUpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGxldCBmaWxlczogRmlsZVtdID0gY3RybC52YWx1ZTtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY3RybC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgZmlsZXMgPSBbY3RybC52YWx1ZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKCFmaWxlcy5sZW5ndGgpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGFkZCA9IChhOiBhbnksIGI6IGFueSk6IG51bWJlciA9PiBhICsgYjtcclxuICAgICAgICBjb25zdCBzdW1TaXplID0gZmlsZXMubWFwKHggPT4geC5zaXplKS5yZWR1Y2UoYWRkKTtcclxuICAgICAgICBpZiAoc3VtU2l6ZSA+IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbWF4U2l6ZTogdHJ1ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufSJdfQ==