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
immosquare-cleaner-0.1.32 node_modules/once/once.js
immosquare-cleaner-0.1.31 node_modules/once/once.js
immosquare-cleaner-0.1.30 node_modules/once/once.js
immosquare-cleaner-0.1.29 node_modules/once/once.js
immosquare-cleaner-0.1.28 node_modules/once/once.js
immosquare-cleaner-0.1.27 node_modules/once/once.js
immosquare-cleaner-0.1.26 node_modules/once/once.js
immosquare-cleaner-0.1.25 node_modules/once/once.js
immosquare-cleaner-0.1.24 node_modules/once/once.js
immosquare-cleaner-0.1.23 node_modules/once/once.js
immosquare-cleaner-0.1.22 node_modules/once/once.js
immosquare-cleaner-0.1.21 node_modules/once/once.js
immosquare-cleaner-0.1.20 node_modules/once/once.js
immosquare-cleaner-0.1.19 node_modules/once/once.js
immosquare-cleaner-0.1.18 node_modules/once/once.js
immosquare-cleaner-0.1.17 node_modules/once/once.js
opal-1.8.2 stdlib/nodejs/node_modules/once/once.js
opal-1.8.1 stdlib/nodejs/node_modules/once/once.js
opal-1.8.0 stdlib/nodejs/node_modules/once/once.js
immosquare-cleaner-0.1.16 node_modules/once/once.js