npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

joint-normalizer

v0.0.7

Published

Normalization logic for Joint Kit payloads

Downloads

42

Readme

Joint Normalizer

Normalization logic for common HTTP response payloads.

Currently supports JSON API Spec only.

Table of Contents

Introduction

[TBC]

How to Use

Install

$ yarn add joint-normalizer

API

Constructor

Constructor Options

| Name | Required? | Description | | ----------------- | --------- | ----------- | | debugInit | No | Set to true to log debug messages during instantiation. Defaults to false. | | debugToModel | No | Set to true to log debug messages during Model object hydration. Defaults to false. | | debug | No | Set to true to log debug messages during instance utilization. Defaults to false. | | payloadSpec | No | The output specification of the Joint payload. Defaults to 'json-api'. | | fieldForModelType | No | The property name in the payload that identifies the name of the Model type. Defaults to 'type'. | | toFieldFormat | No | The target format (case) for normalized fields. Supported formats: 'snake', 'kebab', 'camel'. Defaults to 'snake'. | | fromFieldFormat | No | The source format (case) of the payload's fields. This declaration is not necessary for functional correctness, but will merely suppress unnecessary transformations (and loops) when the source and target match. Supported formats: 'snake', 'kebab', 'camel'. Defaults to 'snake'. | | relationNameMap | No | [TBC] | models | No | The Model object definitions (shapes) that the normalizer will build and return (if instructed). Provide the model definitions as an Object. |

Instance

Instance Properties

| Name | Type | Description | | ----------- | ------- | ----------- | | ... | ... | [TBC - List all properties from constructor options] | | Model | Function | The Model factory that is constructed with the models provided at instantiation. If a payload type is handled by the normalizer, and a valid Model definition cannot be determined, the normalizer will simply return the generic normalized shape. |

Instance Functions

All functions are synchronous.

| Name | Parameters | Returns | Description | | ---------------- | ---------- | ------- | ----------- | | normalizePayload | payload - the payload to normalize. asModel - whether or not to return a Model object. | The normalized payload (generic object -or- Model object) | Perform the normalization of a provided Joint payload. |

Errors

[TBC]

For Developers

Dev Lint

The plugin uses ESLint for source code linting. The linting will run automatically on git commit.

$ yarn lint

You can run with flag --fix, or shortcut command flint, to trigger auto fixing (e.g. yarn flint).

Dev Test

The plugin uses Mocha for the testing framework, and Chai for its assertions.

$ yarn test

To build the plugin before running the test, you can use:

$ yarn build-test

Dev Build

The plugin is automatically built on yarn publish. But, you can manually build the plugin using:

$ yarn build

License

MIT