Socket
Socket
Sign inDemoInstall

@oada/oadaify

Package Overview
Dependencies
Maintainers
8
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@oada/oadaify

Make OADA data nicer to work with in JS/TS


Version published
Weekly downloads
31
decreased by-3.12%
Maintainers
8
Weekly downloads
 
Created
Source

@OADA/oadaify

A library to make working with OADA data in JavaSript/TypeScript less annoying.

I was always writing loops with checks to skip _ keys, or forgetting to add the check and my code did something weird. This makes loops etc. do what one expects and wants 99% of the time. The library exports Symbols which can be used to access the OADA keys.

The OADAified objects still function correctly with JSON.stringify and ajv. There is a deoadaify function in the case you need to put it back.

Be warned though, TypeScript is... quirky about Symbol keys in objects. You should mostly be fine, but sometimes it will get dumb on you.

Example

import {
  oadaify,
  // Symbol for accessing `_id`
  _id,
} from '@oada/oadaify';

// Some data from an OADA API
const data = {
  _id: 'resources/123',
  _rev: 1,
  _type: 'application/foo+json',
  foo: 'bar',
  baz: 7,
};

// OADAify the data
const oadaified = oadaify(data);

// Makes loops etc only get non OADA keys
console.log(Object.entries(oadaified)); // [['foo', 'bar'], ['baz', 7]]

// The OADA keys are not gone
console.log(oadaified[_id]); // 'resources/123'

// JSON is still original OADA data
console.log(JSON.stringify(oadaified, null, 2));
/*
{
  "_id": "resources/123",
  "_rev": 1,
  "_type": "application/foo+json",
  "foo": "bar",
  "baz": 7,
}
*/

Keywords

FAQs

Package last updated on 09 Feb 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc