Skip to content

GetTerminus/ngx-tools

Repository files navigation

@terminus/ngx-tools


🚨 ATTENTION: THIS REPO HAS MOVED 🚨

We have moved to separately published packages from within a monorepo. Please update any bookmarks to point to the new repo.

NOTE: This package is being split into 3 packages:

See GetTerminus/terminus-oss#217 for full migration notes.

🚨


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.