angularjs-bytes-validator

Angular module that allow validate model by bytes count.

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Feb 19, 2017May 18, 2016Minified + gzip package size for angularjs-bytes-validator in KB

Readme

Angular Byte Validator Directive

Main idea was to create directive to validate model size in bytes to limit text that should be pasted into push notification. But now module also includes $bytes service to format and calculate bytes number from UTF-8 string and two filters(bytes and stringToBytes) to format string and bytes to pretty format.

Module is built with webpack and typescript now. It has typescript definition file and can be load by any type of module loader. If you have any problems with the last version, please, use version 1.0.0, or better create issue on github.

Install

    npm install angularjs-bytes-validator --save
    # or
    bower install angularjs-bytes-validator --save

Usage

    require('angularjs-bytes-validator');
    // or import 'angularjs-bytes-validator';
    var app = module('somApp', ['bytes-validator']);

    function SomeCtrl($bytes) { // or ($bytes: BytesService) for typescript if you wish.
        // ...
        $bytes.lengthInUtf8Bytes(utf8String); // Get utf-8 string length in bytes.
        $bytes.formatBytes(bytesCount); // Format bytes in pretty format.
        // Units for formatter ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'].
    }
    <!-- Default value is 140 bytes (<= to be valid) -->
    <input ng-model="someCtrl.pushText" name="pushMessage" bytes-validate="140">
    <textarea ng-model="someCtrl.pushText" bytes-validate="140"></textarea>
    <div ng-messages="someCtrl.form.pushMessage.$error">
        <div ng-message="bytes">Too big text size for push notification</div>
    </div>

    <div class="bytes">{{::bytesNumber | bytes}}</div>
    <!-- formatBytes() from the $bytes service - 0.1kB 0.23MB etc. -->

    <div class="bytes">{{::utf8String | stringToBytes}}</div>
    <!-- lengthInUtf8Bytes() from the $bytes service -->

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.