Files
fonts
node_modules
.bin
@alloc
@jridgewell
@nodelib
any-promise
anymatch
arg
balanced-match
binary-extensions
brace-expansion
braces
camelcase-css
chokidar
colord
commander
concat-map
css-selector-tokenizer
cssesc
daisyui
didyoumean
dlv
fast-glob
fastparse
fastq
fill-range
fs.realpath
function-bind
glob
glob-parent
has
inflight
inherits
is-binary-path
is-core-module
is-extglob
is-glob
is-number
jiti
lilconfig
lines-and-columns
merge2
micromatch
minimatch
mz
nanoid
normalize-path
object-assign
object-hash
once
LICENSE
README.md
once.js
package.json
path-is-absolute
path-parse
picocolors
picomatch
pify
pirates
postcss
postcss-import
postcss-js
postcss-load-config
postcss-nested
postcss-selector-parser
postcss-value-parser
queue-microtask
read-cache
readdirp
resolve
reusify
run-parallel
source-map-js
sucrase
supports-preserve-symlinks-flag
tailwindcss
thenify
thenify-all
to-regex-range
ts-interface-checker
util-deprecate
wrappy
yaml
.package-lock.json
GLink-Logo-alt.svg
cat.gif
checkloc.php
db.inc.php
header.php
homepagevideo.mp4
howItWorks.txt
index.css
index.html
index.js
input.css
login.html
login.js
login.php
logout.php
output.css
package-lock.json
package.json
redirect.php
reqloc.html
result.php
signup.html
signup.php
step1.png
step2.png
step3.png
tailwind.config.js
glink-website/node_modules/once
..
2023-07-15 17:06:30 -05:00
2023-07-15 17:06:30 -05:00
2023-07-15 17:06:30 -05:00
2023-07-15 17:06:30 -05:00

once

Only call a function once.

usage

var once = require('once')

function load (file, cb) {
  cb = once(cb)
  loader.load('file')
  loader.once('load', cb)
  loader.once('error', cb)
}

Or add to the Function.prototype in a responsible way:

// only has to be done once
require('once').proto()

function load (file, cb) {
  cb = cb.once()
  loader.load('file')
  loader.once('load', cb)
  loader.once('error', cb)
}

Ironically, the prototype feature makes this module twice as complicated as necessary.

To check whether you function has been called, use fn.called. Once the function is called for the first time the return value of the original function is saved in fn.value and subsequent calls will continue to return this value.

var once = require('once')

function load (cb) {
  cb = once(cb)
  var stream = createStream()
  stream.once('data', cb)
  stream.once('end', function () {
    if (!cb.called) cb(new Error('not found'))
  })
}

once.strict(func)

Throw an error if the function is called twice.

Some functions are expected to be called only once. Using once for them would potentially hide logical errors.

In the example below, the greet function has to call the callback only once:

function greet (name, cb) {
  // return is missing from the if statement
  // when no name is passed, the callback is called twice
  if (!name) cb('Hello anonymous')
  cb('Hello ' + name)
}

function log (msg) {
  console.log(msg)
}

// this will print 'Hello anonymous' but the logical error will be missed
greet(null, once(msg))

// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time
greet(null, once.strict(msg))