npm.io
8.0.6 • Published 6 years ago

@terminus/ngx-tools

Licence
MIT
Version
8.0.6
Deps
0
Size
2.3 MB
Vulns
0
Weekly
0
Stars
9

@terminus/ngx-tools

CircleCI codecov semantic-release MIT License
NPM version Github release

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..) File size
@terminus/ngx-tools/coercion Functions to coerce values to specific types (Array..) File size
@terminus/ngx-tools/jwt Utilities for dealing with JWT tokens (TokenEscalator..) File size
@terminus/ngx-tools/keycodes Constants for commonly needed key codes (ESC..) File size
@terminus/ngx-tools/regex Regex definitions (creditCardRegex..) File size
@terminus/ngx-tools/testing Test helpers and test mocks (dispatchFakeEvent..) File size
@terminus/ngx-tools/type-guards TypeScript type guards (isSet, isArray..) File size
@terminus/ngx-tools/utilities Basic utilities (debounce, groupBy..) File size

Features

Browser Utilities

Import from: @terminus/ngx-tools/browser

Browser Documentation

// Example usage:
import { TsCookieService } from '@terminus/ngx-tools/browser';

...

this.cookieService.set('myName', 'myValue'); // Sets a cookie
Coercion

Import from: @terminus/ngx-tools/coercion

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!

JWT Documentation

Key Codes

Import from: @terminus/ngx-tools/keycodes

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

RegEx Documentation

// Example usage:
import { emailRegex } from '@terminus/ngx-tools/regex';

emailRegex.test('foo@bar.com'); // Returns: true
Testing Utilities

Import from: @terminus/ngx-tools/testing

Testing Documentation

// Example usage:
import { dispatchFakeEvent } from '@terminus/ngx-tools/testing';

dispatchFakeEvent(window, 'resize');
Type Guards

Import from: @terminus/ngx-tools/type-guards

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

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
Benjamin Charity

Brian Malinconico
Brian Malinconico

Wendy
Wendy

shani-terminus
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.