the-value
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

The Value

functional, semantic and neat.

npm i -S the-value

Usage

const Value = require('the-value')
Value(1).Number // true
Value(1).range(0, 1) // true
Value('b').between('a', 'c') // true
Value.is(200, Value.Constant(200)) // true
Value(200).is(Value.Constant(200)) // true

All original provided functions in here

Addon

! All functions should have the first parameter to be the target value (to conduct operations).

addon(utilsObject: object, keys?: string[]|Record<string, string>, type?: 'getter', notCacheGetter?: boolean=false)

  • utilsObject, properties owner.
  • keys, list properties should be added. If ignored, all own enumerable properties will added. Properties will be renamed with the option is not an array.
  • type, if set to be getter, indicate the function type properties should be converted to getter properties.
  • notCacheGetter, if set to be true, indicate the getter properties should not be cached.

All of own enumerable properties:

// * addon() of the top level `Value` will return a new `Value`, to avoid pollute the package source when it's imported in other files.
const NewValue = Value.addon({
  pow(v, n) { return v ** n },
  get Square(v) { return v ** 2 },
  VERSION: '1.0',
})

NewValue(2).pow(2) // 4
NewValue(2).Square // 4
NewValue(2).VERSION // 1.0

// addon() of new `Value` will addon itself (instead of returning a new one).
const NewValue2 = NewValue.addon({})

newValue2 === newValue // true

Specific properties (even non-enumerable or inherited):

const NewValue = Value.addon({
  pow(v, n) { return v ** n },
  get Square(v) { return v ** 2 },
  VERSION: '1.0',
}, ['pow'])

Make function to be getter:

const NewValue = Value.addon({
  square(v) { return v ** 2 },
}, ['square'], 'getter')

NewValue(2).square // 4

Rename:

const NewValue = Value.addon({
  square(v) { return v ** 2 },
}, { square: 'Square' }, 'getter')

NewValue(2).Square // 4

Disable cache of getter properties when add on (cache getter properties is default option of addon(), see declaration):

let count = 0
const NewValue = Value.addon({
  square(v) { count++; return v ** 2 },
}, { square: 'Square' }, 'getter', true)

const v = NewValue(2)
v.Square // count is 1
v.Square // count is 2
v.Square // count is 3
v.Square // count is 4

Add utils from lodash/underscore/...

const underscore = require('underscore')
const Value = require('the-value')
  .addon(underscore, ['pick', 'omit', 'shuffle'])
  .addon(underscore, { isElement: 'Element' }, 'getter')

Package Sidebar

Install

npm i the-value

Weekly Downloads

3

Version

1.1.2

License

MIT

Unpacked Size

24.3 kB

Total Files

7

Last publish

Collaborators

  • lakcaorg