@terminus/ngx-tools
TypeScript icon, indicating that this package has built-in type declarations

8.0.6 • Public • Published

@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.

Readme

Keywords

none

Package Sidebar

Install

npm i @terminus/ngx-tools

Weekly Downloads

386

Version

8.0.6

License

MIT

Unpacked Size

2.46 MB

Total Files

529

Last publish

Collaborators

  • bmalinconico-terminus
  • atlwendy
  • terminus_devops