UNPKG

ng2-file-type

Version:
104 lines (75 loc) 3.45 kB
# ng2-file-type [![npm version](https://badge.fury.io/js/ng2-file-type.svg)](http://badge.fury.io/js/ng2-file-type) [![npm downloads](https://img.shields.io/npm/dm/ng2-file-type.svg)](https://npmjs.org/ng2-file-type) [![Build Status](https://travis-ci.org/pkantsedalov/ng2-file-type.svg?branch=master)](https://travis-ci.org/pkantsedalov/ng2-file-type) <!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - [Description](#description) - [Demo](#demo) - [Installation](#installation) - [Usage](#usage) - [Acknowledgments](#acknowledgments) - [Development](#development) <!-- END doctoc generated TOC please keep comment here to allow auto update --> ## Description Angular 2 validation directive for checking `<input type="file" />` value to be of the valid MIME type. Works both with one & multiple files mode. ## Demo See it [here](https://pkantsedalov.github.io/ng2-file-type). ## Installation `npm install ng2-file-type --save` `npm i ng2-file-type -S` (shortcut) ## Usage 1. import the module to your one: ```typescript import { Ng2FileTypeModule } from 'ng2-file-type'; @NgModule({ ... imports: [ ... Ng2FileTypeModule ] }) ... ``` 2. then use the directive: ```html <!-- 1. Make it's type restricted by string value. 2. The error message is a default one: 'File type is invalid'. --> <input type="file" [ng2FileType]="'application/json'" /> <!-- 1. Make it's type restricted by array of values. 2. The error message is a default one: 'File type is invalid'. --> <input type="file" [ng2FileType]="['application/json', 'text/plain']" /> <!-- 1. Make it's type restricted by regex value. 2. The error message is customized to 'File type must be less that 1mb and more that 1kb!' --> <input type="file" [ng2FileType]="regexComponentProperty" [fileTypeErrorMsg]="'File type must match the pattern'" /> <!-- 1. Make it's type restricted by dynamic values. 2. The error message is customized dynamically --> <input type="file" [ng2FileType]="fileTypeRestriction" [fileTypeErrorMsg]="customErrorMessage" /> ``` ## Acknowledgments I express my gratitude to the [valor-software](https://github.com/valor-software) team. This project structure is based on their [ng2-file-upload](https://github.com/valor-software/ng2-file-upload) solution, their [tslint configuration](https://github.com/valor-software/tslint-config-valorsoft) and [npm submodules manager](https://www.npmjs.com/package/ngm-cli). ## Development 1. Clone/fork it 2. In `./src` directory you can find the directive sources & unit tests, in the `./demo` one - the files for Github Pages demo. 3. Use next npm scripts for development (they use [angular-cli](https://github.com/angular/angular-cli) and [ngm-cli](https://www.npmjs.com/package/ngm-cli)): 3.1. `npm start` serves with `ng serve` command; 3.2. `npm build` - created `./dist` directory in the end; 3.3 `npm test` - runs unit tests with `ng test` using Karma and Angular 2 testing tools. 3.4 `npm run e2e` - runs e2e tests using Protractor and Selenium Webdriver.