Sha256: 3db73e347ecbdbafdf8d0db85145c877e133f5372e767360ef90c09f70ac5103

Contents?: true

Size: 935 Bytes

Versions: 297

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

297 entries across 273 versions & 34 rubygems

Version Path
ela-3.1.0 node_modules/once/once.js
ela-3.0.0 node_modules/once/once.js
ela-2.0.0 node_modules/once/once.js
ela-1.1.0 node_modules/once/once.js
dragonfly_chrome_headless-0.2.0 node_modules/once/once.js
affiliator-0.2.1 node_modules/fsevents/node_modules/once/once.js
affiliator-0.2.1 node_modules/once/once.js
guard-sass-lint-0.1.2 node_modules/once/once.js
guard-sass-lint-0.1.1 node_modules/once/once.js
lanes-0.8.0 node_modules/once/once.js
lanes-0.8.0 node_modules/fsevents/node_modules/once/once.js
node-compiler-0.9.1 vendor/node/deps/npm/node_modules/once/once.js
node-compiler-0.9.0 vendor/node-v7.2.1/deps/npm/node_modules/once/once.js
node-compiler-0.8.0 vendor/node-v7.2.0/deps/npm/node_modules/once/once.js
node-compiler-0.7.0 vendor/node-v6.9.1/deps/npm/node_modules/once/once.js
node-compiler-0.7.0 vendor/node-v7.1.0/deps/npm/node_modules/once/once.js
stylus-source-0.54.5 vendor/node_modules/once/once.js