Sha256: 3db73e347ecbdbafdf8d0db85145c877e133f5372e767360ef90c09f70ac5103

Contents?: true

Size: 935 Bytes

Versions: 298

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

298 entries across 274 versions & 34 rubygems

Version Path
rapid_stack-0.2.0 templates/frontend/node_modules/once/once.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/once/once.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/once/once.js
immosquare-cleaner-0.1.60 node_modules/once/once.js
immosquare-cleaner-0.1.59 node_modules/once/once.js
immosquare-cleaner-0.1.58 node_modules/once/once.js
immosquare-cleaner-0.1.57 node_modules/once/once.js
immosquare-cleaner-0.1.56 node_modules/once/once.js
immosquare-cleaner-0.1.55 node_modules/once/once.js
immosquare-cleaner-0.1.54 node_modules/once/once.js
immosquare-cleaner-0.1.53 node_modules/once/once.js
immosquare-cleaner-0.1.52 node_modules/once/once.js
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