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

u2x

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

u2x

A suite of utilities for converting unknown data to desired type.

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by400%
Maintainers
1
Weekly downloads
 
Created
Source

u2x · LICENSE codecov

A suite of utilities for converting unknown data to desired type.

Install

yarn add u2x

or

npm install u2x --save

Background

When you receive data from remote.

const result = await request('...');

You cannot trust that type of data. If you access its property directly, such as:

console.log(result.aaa); // May be thrown.

That may be thrown, if the result is null or undefined.

Therefore, you can wrap u2o with this result, such as

const safeResult = u2o(result);

console.log(safeResult.aaa);

The u2o function convert any value to an object.

Wait! Is not that too simple? So why do not I wrap it with Object?

const safeResult = Object(result);

console.log(safeResult.aaa);

This code works just as well.

Yes, you are right. The u2o function is also implemented using Object, you can see the code src/u2o.ts here.

But, in TypeScript, Object always returns an any, it is a bad practis.

For example

const safeResult = Object(result);

console.log(safeResult.aaa.bbb); // May be throw

On an any, all properties are any (The contagiousness of any), you can not guarantee that every property is an object.

In fact, if Object(...) returns Record<PropertyKey, unknown>, that is a better definition. When you attempt to access a property from an unknown, TypeScript compiler warns you that this is an error.

FAQs

Package last updated on 17 Jul 2023

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