New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

osm.js

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

osm.js

A modern JavaScript library which offers utility functions for objects in JavaScript

  • 1.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

Osm.js

Commitizen friendly Build Status

A modern JavaScript library which offers utility functions for objects in JavaScript. Osm.js follows functional programming paradigms such as immutability & currying. Osm.js methods always return a new object rather than mutating the objects passed in. This leads to consistent & predictable behavior.

Usage

Osm.js is exported as a UMD module, which means it can work on both the client & the server.

npm

Installing Osm via npm

npm install osm.js

Then require/import it in any module

import osm from 'osm.js';

Browser

To use Osm.js from a browser, download lib/osm.min.js

Then, add it as a script tag to your page

<script src="osm.min.js"></script>
<script>
const scores = {
  Jason: 2,
  Sam: 3,
  Jane: 1
};
const double = (v) => v * 2;
const dbl = osm.map(double, scores);
</script>

Or use an AMD loader such as RequireJS

require(['./osm.min.js'], (osm) => {
  // your code here
});

Documentation

map
osm.map(interatee, obj);

Returns a new object by running obj through iteratee.

const scores = {
  Jason: 2,
  Sam: 3,
  Jane: 1
};
const double = (v) => v * 2;
const dbl = osm.map(double, scores);
filter
osm.filter(predicate, obj);

Iterates over an object & returns a new object with all values predicate returns truthy for. The predicate is invoked with two arguments: (value, key)

const scores = {
  Jason: 2,
  Sam: 3,
  Jane: 1
};
const predicate = score => score > 1;
const highScores = osm.filter(predicate, scores);

isObject

osm.isObject(value)

Checks if the value is a plain object

osm.isObject({}); //true
osm.isObject(''); //false
osm.isObject(0); //false
osm.isObject(null); //false
osm.isObject(undefined); //false
osm.isObject(NaN); //false

clone

osm.clone(obj);

Returns a new object which uses obj as it's prototype and clones the properties.

extend

osm.extend(objA, objB);

Returns a new object which uses own enumerable properties of source objects objA & objB. Sources are applied left to right and objA is not mutated in the process.

const numbers = {One: 1, Two: 2, Three: 3};
const strings = {One: 'One', Two: 'Two'};
osm.extend(numbers, strings); //{One: 'One', Two: 'Two', Three: 3};

omit

osm.omit(obj, [keys]);

Returns a new object which doesn't contain the omitted keys. Keys must be array.

const scores = {
  Jason: 2,
  Sam: 3,
  Jane: 1
};
osm.omit(scores, ['Jason', 'Sam']); //returns {Jane: 1}

findKeyByValue

osm.findKeyByValue(val, obj);

Returns the first key which matches the pass value. If no match found, then undefined is returned. Note: If the val is NaN or an object then undefined is returned.

const obj = {
  'arrayVal': [1, 2, 3],
  'boolean': false,
  'string': 'test',
  'nullVal': null,
  'notDefined': undefined,
  'notANumber': NaN,
  'dateVal': new Date('2016-01-01'),
  'secondBool': false
}

osm.findKeyByValue([1,2,3], obj); //returns 'arrayVal'
osm.findKeyByValue(false, obj); //returns 'boolean'
osm.findKeyByValue('test', obj); //returns 'string'
osm.findKeyByValue([null, obj); //returns 'nullVal'
osm.findKeyByValue(undefined, obj); //returns 'notDefined'
osm.findKeyByValue(NaN, obj); //returns undefined
osm.findKeyByValue(new Date('2016-01-01'), obj); //returns dateVal

Keywords

FAQs

Package last updated on 23 Apr 2017

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