@terminus/ngx-tools
v8.0.6
Published
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
Downloads
632
Keywords
Readme
@terminus/ngx-tools
A collection of tools and utilities for Terminus applications.
Table of Contents
Installation
Install the library and required dependencies:
# Primary dependencies:
$ yarn add @terminus/ngx-tools
# Peer dependencies that need to be installed (you will likely already have some of these installed):
$ yarn add @angular/{core,common,forms,platform-browser} @ngrx/{effects,store} rxjs typescript@~3.4.5
Then import your item from the associated endpoint: import { debounce } from '@terminus/ngx-tools/utilities';
You can play with the library live on StackBlitz: https://stackblitz.com/github/GetTerminus/ngx-tools
Library Structure
| Import location | Description | Docs | Size |
|:----------------------------------|:--------------------------------------------------------------|:---------------------------:|:------------------------------------------------:|
| @terminus/ngx-tools/browser
| Helpers to deal directly with browsers (TsCookieService
..) | :books: | |
| @terminus/ngx-tools/coercion
| Functions to coerce values to specific types (Array
..) | :books: | |
| @terminus/ngx-tools/jwt
| Utilities for dealing with JWT tokens (TokenEscalator
..) | :books: | |
| @terminus/ngx-tools/keycodes
| Constants for commonly needed key codes (ESC
..) | :books: | |
| @terminus/ngx-tools/regex
| Regex definitions (creditCardRegex
..) | :books: | |
| @terminus/ngx-tools/testing
| Test helpers and test mocks (dispatchFakeEvent
..) | :books: | |
| @terminus/ngx-tools/type-guards
| TypeScript type guards (isSet
, isArray
..) | :books: | |
| @terminus/ngx-tools/utilities
| Basic utilities (debounce
, groupBy
..) | :books: | |
Features
Browser Utilities
Import from: @terminus/ngx-tools/browser
// Example usage:
import { TsCookieService } from '@terminus/ngx-tools/browser';
...
this.cookieService.set('myName', 'myValue'); // Sets a cookie
Coercion
Import from: @terminus/ngx-tools/coercion
:books: Coercion Documentation
// Example usage:
import { coerceBooleanProperty } from '@terminus/ngx-tools/coercion';
coerceBooleanProperty('true'); // Returns: true
JWT Token Managment
Store, escalate, renew and use a named set of JWT tokens with ease!
Key Codes
Import from: @terminus/ngx-tools/keycodes
:books: Key Codes Documentation
// Example usage:
import { KEYS } from '@terminus/ngx-tools/keycodes';
import { dispatchKeyboardEvent } from '@terminus/ngx-tools/testing';
KEYS.ENTER.code // 'Enter'
KEYS.ENTER.keyCode // 13
// Example usage:
dispatchKeyboardEvent(myElementRef, KEYS.ENTER.keycode);
Regex
Import from: @terminus/ngx-tools/regex
// Example usage:
import { emailRegex } from '@terminus/ngx-tools/regex';
emailRegex.test('[email protected]'); // Returns: true
Testing Utilities
Import from: @terminus/ngx-tools/testing
// Example usage:
import { dispatchFakeEvent } from '@terminus/ngx-tools/testing';
dispatchFakeEvent(window, 'resize');
Type Guards
Import from: @terminus/ngx-tools/type-guards
:books: Type Guards Documentation
// Example usage:
import { arrayHasAllElementsSet } from '@terminus/ngx-tools/type-guards';
arrayHasAllElementsSet<string>(['foo', 'bar']) // Returns: true
arrayHasAllElementsSet<number>([1, 'bar']) // Returns: false
General Utilities
Import from: @terminus/ngx-tools/utilities
:books: Utilities Documentation
// Example usage:
import { groupBy } from '@terminus/ngx-tools/utilites';
groupBy<MyObj, keyof MyObj>(myArray, 'a');
Contributing
See the development workflow for the @terminus/ui
library: Terminus Library Contribution Docs
Contributors
Thanks goes to these wonderful people (emoji key):
| Benjamin Charity💻 🔧 🤔 📖 💬 🐛 💡 🚇 🚧 👀 ⚠️ | Brian Malinconico💻 🤔 | Wendy💻 📖 ⚠️ 🚧 👀 | shani-terminus🐛 💻 📖 🚧 ⚠️ 👀 | | :---: | :---: | :---: | :---: |
This project follows the all-contributors specification. Contributions of any kind welcome!
Basic Commands
| Command | Function |
|-----------------|--------------------------------------------------|
| build
| Build release |
| test
| Run unit tests |
| test:ci:local
| Run all unit tests and output coverage |
| start:app
| Start demo project |
| lint
| Lint all library files and attempt to fix issues |
| lint:ci
| Lint all library files |
| docs:toc
| Update the Table of Contents in all files |
| cm
| Commit with commitizen cli |
See package.json for the full list of available commands.