Package Exports
- @igor.dvlpr/hook
- @igor.dvlpr/hook/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@igor.dvlpr/hook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Hook
๐ช Hooks onto a JavaScript prototype, either extending or changing its
behavior or replacing it completely ๐บ
๐ Support further development
I work hard for every project, including this one and your support means a lot to me!
Consider buying me a coffee. โ
Thank you for supporting my efforts! ๐๐
![]()
@igorskyflyer
[!CAUTION] This package provides ways of modifying the native prototype(s) of built-in JavaScript objects, use it only if you know what you're doing and with caution as it may cause unexpected results!
๐ต๐ผ Usage
Install it by executing:
npm i "@igor.dvlpr/hook"
๐คน๐ผ API
function hook(
proto: any,
method: string,
handler: HandlerFn,
replace: boolean = false
): boolean
Hooks onto a JavaScript prototype in order to extend, modify or completely replace a given method of it.
proto
- a prototype, e.g.Array.prototype
,Number.prototype
, etc.method
- a method to hook onto, e.g. 'push' ofArray.prototype
.handler
a custom function to run when the hooked method is called.replace
a Boolean indicating whether the prototype method should be replaced completely. Defaults to false.
Returns a Boolean whether the hooking onto was successful.
Example
import { hook } from '@igor.dvlpr/hook'
hook(Array.prototype, 'unshift', function (x) {
// any code can be here,
// not just owned by the prototype
// you're hooking/replacing
this.push(x * 2)
})
const array: number[] = []
array.unshift(128)
console.log(array) // [128, 256]
๐ชช License
Licensed under the MIT license which is available here, MIT license.
๐งฌ Related
๐ถ๏ธ Reads a JSON file into a Map. ๐ป
๐ฅ Removes HTML code from the given string. Can even extract text-only from the given an HTML string. โจ
๐ Formats the provided string as a comment, either a single or a multi line comment for the given programming language. ๐ป
๐ NormalizedString provides you with a String type with consistent line-endings, guaranteed. ๐ฎ
๐ก Parse, manage, compare and output SemVer-compatible version numbers. ๐ก
Provided by Igor Dimitrijeviฤ (@igorskyflyer).