@hydre/commons

1.0.22 • Public • Published

@hydre/commons

Javascript commons

Install

npm i @hydre/commons

Use:

Deferred Promise

Execute a promise outside scope

import { Deferred } from '@hydre/commons'

const def = new Deferred()
def.promise.then(console.log('slt'))

setTimeout(() => {
	def.resolve() // or deferred.reject()
}, 1000)

Decorators

@cache

Call the function/getter only once and keep the result in memory

import { cache } from '@hydre/commons'

class Foo {

	@cache
	bar() {
		console.log('This line will be printed only once')
		return new myApiCall()
	}

	@cache
	get baz() {
		return 5 + 5
	}
}

Helpers

mixin

Multiple class inheritance see exploring-es7-decorators

import { mixin } from '@hydre/commons'

const TimeStone = mixin({
	get canRewind() {
		return true
	}
})

const PlaysFortnite = mixin({
	isDumb() {
		return true
	}
})

@TimeStone
@PlaysFortnite
class Thanos {
	isDumb() {
		return false
	}
}

new Thanos().isDumb() |> console.log // print true

Package Sidebar

Install

npm i @hydre/commons

Homepage

hydre.io

Weekly Downloads

5

Version

1.0.22

License

MIT

Unpacked Size

7.93 kB

Total Files

10

Last publish

Collaborators

  • deltaevo
  • hydre-bot
  • sceat