Sha256: 3db73e347ecbdbafdf8d0db85145c877e133f5372e767360ef90c09f70ac5103

Contents?: true

Size: 935 Bytes

Versions: 286

Compression:

Stored size: 935 Bytes

Contents

var wrappy = require('wrappy')
module.exports = wrappy(once)
module.exports.strict = wrappy(onceStrict)

once.proto = once(function () {
  Object.defineProperty(Function.prototype, 'once', {
    value: function () {
      return once(this)
    },
    configurable: true
  })

  Object.defineProperty(Function.prototype, 'onceStrict', {
    value: function () {
      return onceStrict(this)
    },
    configurable: true
  })
})

function once (fn) {
  var f = function () {
    if (f.called) return f.value
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  f.called = false
  return f
}

function onceStrict (fn) {
  var f = function () {
    if (f.called)
      throw new Error(f.onceError)
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  var name = fn.name || 'Function wrapped with `once`'
  f.onceError = name + " shouldn't be called more than once"
  f.called = false
  return f
}

Version data entries

286 entries across 262 versions & 33 rubygems

Version Path
disco_app-0.16.1 test/dummy/node_modules/once/once.js
appmap-0.70.2 ./node_modules/once/once.js
opal-1.4.1 stdlib/nodejs/node_modules/once/once.js
opal-1.4.0 stdlib/nodejs/node_modules/once/once.js
opal-1.4.0.alpha1 stdlib/nodejs/node_modules/once/once.js
appmap-0.70.1 ./node_modules/once/once.js
appmap-0.70.0 ./node_modules/once/once.js
appmap-0.69.0 ./node_modules/once/once.js
appmap-0.68.2 ./node_modules/once/once.js
isomorfeus-puppetmaster-0.5.5 node_modules/once/once.js
appmap-0.68.1 ./node_modules/once/once.js
isomorfeus-puppetmaster-0.5.4 node_modules/once/once.js
opal-1.3.2 stdlib/nodejs/node_modules/once/once.js
disco_app-0.15.2 test/dummy/node_modules/once/once.js
appmap-0.68.0 ./node_modules/once/once.js
opal-1.3.1 stdlib/nodejs/node_modules/once/once.js
appmap-0.67.1 ./node_modules/once/once.js
opal-1.3.0 stdlib/nodejs/node_modules/once/once.js
isomorfeus-puppetmaster-0.5.3 node_modules/once/once.js
trusty-cms-5.0.3 node_modules/once/once.js