PATH: //opt/alt/alt-nodejs14/root/usr/lib/node_modules/npm/lib/utils
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 ansi-trim.js
↓
X
📄 cache-file.js
↓
X
📄 child-path.js
↓
X
📁 completion/
X
📄 completion.sh
↓
X
📄 correct-mkdir.js
↓
X
📄 deep-sort-object.js
↓
X
📄 depr-check.js
↓
X
📄 did-you-mean.js
↓
X
📄 error-handler.js
↓
X
📄 error-message.js
↓
X
📄 escape-arg.js
↓
X
📄 escape-exec-path.js
↓
X
📄 funding.js
↓
X
📄 gently-rm.js
↓
X
📄 git.js
↓
X
📄 gunzip-maybe.js
↓
X
📄 is-registry.js
↓
X
📄 is-windows-bash.js
↓
X
📄 is-windows-shell.js
↓
X
📄 is-windows.js
↓
X
📄 lifecycle-cmd.js
↓
X
📄 lifecycle.js
↓
X
📄 link.js
↓
X
📄 locker.js
↓
X
📄 metrics-launch.js
↓
X
📄 metrics.js
↓
X
📄 module-name.js
↓
X
📄 move.js
↓
X
📄 no-progress-while-running.js
↓
X
📄 open-url.js
↓
X
📄 otplease.js
↓
X
📄 output.js
↓
X
📄 package-id.js
↓
X
📄 parse-json.js
↓
X
📄 perf.js
↓
X
📄 pick-manifest-from-registry-metadata.js
↓
X
📄 pulse-till-done.js
↓
X
📄 read-local-package.js
↓
X
📄 read-user-info.js
↓
X
📄 replace-info.js
↓
X
📄 save-stack.js
↓
X
📄 spawn.js
↓
X
📄 temp-filename.js
↓
X
📄 umask.js
↓
X
📄 unix-format-path.js
↓
X
📄 unsupported.js
↓
X
📄 usage.js
↓
X
📄 warn-deprecated.js
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: locker.js
var crypto = require('crypto') var resolve = require('path').resolve var lockfile = require('lockfile') var log = require('npmlog') var npm = require('../npm.js') var correctMkdir = require('../utils/correct-mkdir.js') var installLocks = {} function lockFileName (base, name) { var c = name.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') var p = resolve(base, name) var h = crypto.createHash('sha1').update(p).digest('hex') var l = resolve(npm.cache, '_locks') return resolve(l, c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock') } function lock (base, name, cb) { var lockDir = resolve(npm.cache, '_locks') correctMkdir(lockDir, function (er) { if (er) return cb(er) var opts = { stale: npm.config.get('cache-lock-stale'), retries: npm.config.get('cache-lock-retries'), wait: npm.config.get('cache-lock-wait') } var lf = lockFileName(base, name) lockfile.lock(lf, opts, function (er) { if (er) log.warn('locking', lf, 'failed', er) if (!er) { log.verbose('lock', 'using', lf, 'for', resolve(base, name)) installLocks[lf] = true } cb(er) }) }) } function unlock (base, name, cb) { var lf = lockFileName(base, name) var locked = installLocks[lf] if (locked === false) { return process.nextTick(cb) } else if (locked === true) { lockfile.unlock(lf, function (er) { if (er) { log.warn('unlocking', lf, 'failed', er) } else { installLocks[lf] = false log.verbose('unlock', 'done using', lf, 'for', resolve(base, name)) } cb(er) }) } else { var notLocked = new Error( 'Attempt to unlock ' + resolve(base, name) + ", which hasn't been locked" ) notLocked.code = 'ENOTLOCKED' throw notLocked } } module.exports = { lock: lock, unlock: unlock }
SIMPAN PERUBAHAN