maximilianMairinger / attachToPrototype

Attatch functions as non enumerable properties to the prototype of any object.

Home Page:https://www.npmjs.com/package/attatch-to-prototype

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Attach to prototype

Attach functions as non enumerable properties to the prototype of any object.

Please not that Attach to prototype is currently under development and not yet suited for production

Example

Generic

import { constructAttachToPrototype } from "attatch-to-prototype"

const attachToArray = constructAttachToPrototype(Array.prototype/*, options*/)
attachToArray("removeByValue", function(value) {
  const index = this.indexOf(value)
  if (index === -1) return
  this.splice(index, 1)
})

const ar = ["a", "b", "c"]

ar.removeByValue("b")

console.log(ar) // ["a", "c"]

Getter / Setter

Attach

attachToArray("last", {
  get() {
    return this[this.length-1]
  }
  set(to) {
    return this[this.length-1] = to
  }
})


let ar = [1, 2, 3]

ar.last      // return 3
ar.last = 0  // return 0

console.log(ar) // [1, 2, 0]

Apply

Just a different syntax to access getter / setter. Use Attach / apply depending on your coding conventions.

import { constructApplyToPrototype } from "attatch-to-prototype"

const attachToArray = constructApplyToPrototype(Array.prototype/*, options*/)
attachToArray("last", {
  get() {
    return this[this.length-1]
  }
  set(to) {
    return this[this.length-1] = to
  }
})


let ar = [1, 2, 3]

ar.last()   // return 3
ar.last(0)  // return 0

console.log(ar) // [1, 2, 0]

The generic functionality is also available on apply

Contribute

All feedback is appreciated. Create a pull request or write an issue.

About

Attatch functions as non enumerable properties to the prototype of any object.

https://www.npmjs.com/package/attatch-to-prototype


Languages

Language:JavaScript 61.8%Language:TypeScript 29.2%Language:HTML 8.9%