javascript-common
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

javascript-common

The code in this package is common to be used in some my projects. Although for my projects, it may be useful for you. Things that can be imported from this package:

noop

It's a function that does nothing (() => {}). This function is often used as the default value for a variable whose function type. Instead of maintaining many copies, it's better to keep one copy in memory.

noChange

This function returns the parameter that is passed into it, no change (p => p). Like noop, this function is often used as the default value for a variable whose function type. Instead of maintaining many copies, it's better to keep one copy in memory.

emptyString

This is an empty string (""). An empty string is often used as the default value of a string variable.

extendObject(target, proxy)

It extends the object target by adding to it the new members (properties/methods) from the object proxy. It's like Object.assign(target, proxy), but different from Object.assign, when there are some the same members among target and proxy, it doesn't remove those members from target and replace them with the same ones from proxy. The original members still exist in target. This function is simply invoke Object.setPrototypeOf(proxy, target). If it's so simple, why do we need the wrapper function? It's because we need a static type checking. The type of the returned value should be the type which is combination between target's type and proxy's type.

<T extends object, P extends object>(target: T, proxy: P) => T & P

proxyObject(target, proxy)

Similar to extendObject but it doesn't change the prototype of target. It utilizes a Proxy object. It's useful if target already has a prototype object.

proxyClass(Target, proxy)

Similar to proxyObject but the first parameter is not an instance object, it's a class of target object. This function will create the target instance: const target = new Target()

Readme

Keywords

Package Sidebar

Install

npm i javascript-common

Weekly Downloads

0

Version

0.0.5

License

MIT

Unpacked Size

8.89 kB

Total Files

6

Last publish

Collaborators

  • atmulyana