Socket
Socket
Sign inDemoInstall

unherit

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    unherit

Create a subclass that can be modified without affecting the super class


Version published
Weekly downloads
2.3M
decreased by-19.08%
Maintainers
1
Install size
6.92 kB
Created
Weekly downloads
 

Package description

What is unherit?

The `unherit` npm package is designed to create a factory for customizable classes. It allows you to inherit from a class and then further customize the subclass. This can be particularly useful in scenarios where you want to extend or modify the behavior of existing classes without directly modifying their source code. It's commonly used in the context of creating customizable components or plugins.

What are unherit's main functionalities?

Creating a customizable subclass

This feature allows you to create a subclass from a superclass and then customize that subclass. It's useful for extending existing classes in a modular and reusable way.

const unherit = require('unherit');
const Super = require('./some-super-class');
const Custom = unherit(Super);

// Now, `Custom` can be further extended or modified without affecting `Super`.

Other packages similar to unherit

Readme

Source

unherit

Build Coverage Downloads Size

Create a subclass that can be modified without affecting the super class.

Contents

What is this?

This is a tiny package lets you create a subclass, that can be modified, without affecting the super class.

When should I use this?

Not often! You might have some weird cases though.

Install

This package is ESM only. In Node.js (version 14.14+, 16.0+), install with npm:

npm install unherit

In Deno with esm.sh:

import {unherit} from 'https://esm.sh/unherit@3'

In browsers with esm.sh:

<script type="module">
  import {unherit} from 'https://esm.sh/unherit@3?bundle'
</script>

Use

import {EventEmitter} from 'node:events'
import {unherit} from 'unherit'

// Create a private class which acts just like `EventEmitter`.
const Emitter = unherit(EventEmitter)

Emitter.prototype.defaultMaxListeners = 0
// Now, all instances of `Emitter` have `0` maximum listeners, without affecting
// other `EventEmitter`s.

new Emitter().defaultMaxListeners === 0 // => true
new EventEmitter().defaultMaxListeners === undefined // => true
new Emitter() instanceof EventEmitter // => true

API

This package exports the identifier unherit. There is no default export.

unherit(Super)

Subclass Super.

Types

This package is fully typed with TypeScript. It exports no additional types.

Compatibility

This package is at least compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. It also works in Deno and modern browsers.

Contribute

Yes please! See How to Contribute to Open Source.

Security

This package is safe.

License

MIT © Titus Wormer

Keywords

FAQs

Last updated on 14 Nov 2022

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc