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
trusty-cms-6.3.1 node_modules/once/once.js
immosquare-cleaner-0.1.51 node_modules/once/once.js
boring_generators-0.15.0 tmp/templates/app_template/node_modules/once/once.js
immosquare-cleaner-0.1.50 node_modules/once/once.js
immosquare-cleaner-0.1.49 node_modules/once/once.js
immosquare-cleaner-0.1.48 node_modules/once/once.js
immosquare-cleaner-0.1.47 node_modules/once/once.js
immosquare-cleaner-0.1.46 node_modules/once/once.js
immosquare-cleaner-0.1.45 node_modules/once/once.js
immosquare-cleaner-0.1.44 node_modules/once/once.js
opal-1.8.3.rc1 stdlib/nodejs/node_modules/once/once.js
boring_generators-0.14.0 tmp/templates/app_template/node_modules/once/once.js
immosquare-cleaner-0.1.43 node_modules/once/once.js
immosquare-cleaner-0.1.42 node_modules/once/once.js
immosquare-cleaner-0.1.41 node_modules/once/once.js
immosquare-cleaner-0.1.40 node_modules/once/once.js
immosquare-cleaner-0.1.39 node_modules/once/once.js
immosquare-cleaner-0.1.38 node_modules/once/once.js
optimacms-0.1.61 spec/dummy/node_modules/once/once.js
boring_generators-0.13.0 tmp/templates/app_template/node_modules/once/once.js