@nuxt/utils
Advanced tools
Comparing version 2.4.5 to 2.5.0
@@ -6,2 +6,19 @@ # Change Log | ||
# [2.5.0](https://github.com/nuxt/nuxt.js/compare/v2.4.5...v2.5.0) (2019-03-21) | ||
### Bug Fixes | ||
* **pkg:** add missing dependencies ([665f15a](https://github.com/nuxt/nuxt.js/commit/665f15a)) | ||
* relax lock settings ([#5280](https://github.com/nuxt/nuxt.js/issues/5280)) ([65a431d](https://github.com/nuxt/nuxt.js/commit/65a431d)) | ||
### Features | ||
* **cli:** lock project during build or generate ([#4985](https://github.com/nuxt/nuxt.js/issues/4985)) ([4e51723](https://github.com/nuxt/nuxt.js/commit/4e51723)) | ||
## [2.4.3](https://github.com/nuxt/nuxt.js/compare/v2.4.2...v2.4.3) (2019-02-06) | ||
@@ -8,0 +25,0 @@ |
/*! | ||
* @nuxt/utils v2.4.5 (c) 2016-2019 | ||
* @nuxt/utils v2.5.0 (c) 2016-2019 | ||
@@ -16,2 +16,6 @@ * - All the amazing contributors | ||
const consola = _interopDefault(require('consola')); | ||
const hash = _interopDefault(require('hash-sum')); | ||
const fs = _interopDefault(require('fs-extra')); | ||
const properlock = _interopDefault(require('proper-lockfile')); | ||
const onExit = _interopDefault(require('signal-exit')); | ||
const serialize = _interopDefault(require('serialize-javascript')); | ||
@@ -41,3 +45,3 @@ | ||
const isNonEmptyString = obj => obj && isString(obj); | ||
const isNonEmptyString = obj => Boolean(obj && isString(obj)); | ||
@@ -83,2 +87,61 @@ const isPureObject = function isPureObject(o) { | ||
const lockPaths = new Set(); | ||
const defaultLockOptions = { | ||
stale: 30000, | ||
onCompromised: err => consola.warn(err) | ||
}; | ||
function getLockOptions(options) { | ||
return Object.assign({}, defaultLockOptions, options) | ||
} | ||
function createLockPath({ id = 'nuxt', dir, root }) { | ||
const sum = hash(`${root}-${dir}`); | ||
return path.resolve(root, 'node_modules/.cache/nuxt', `${id}-lock-${sum}`) | ||
} | ||
async function getLockPath(config) { | ||
const lockPath = createLockPath(config); | ||
// the lock is created for the lockPath as ${lockPath}.lock | ||
// so the (temporary) lockPath needs to exist | ||
await fs.ensureDir(lockPath); | ||
return lockPath | ||
} | ||
async function lock({ id, dir, root, options }) { | ||
const lockPath = await getLockPath({ id, dir, root }); | ||
const locked = await properlock.check(lockPath); | ||
if (locked) { | ||
consola.fatal(`A lock with id '${id}' already exists on ${dir}`); | ||
} | ||
const release = await properlock.lock(lockPath, options); | ||
if (!release) { | ||
consola.warn(`Unable to get a lock with id '${id}' on ${dir} (but will continue)`); | ||
} | ||
if (!lockPaths.size) { | ||
// make sure to always cleanup our temporate lockPaths | ||
onExit(() => { | ||
for (const lockPath of lockPaths) { | ||
fs.removeSync(lockPath); | ||
} | ||
}); | ||
} | ||
lockPaths.add(lockPath); | ||
return async function lockRelease() { | ||
await release(); | ||
await fs.remove(lockPath); | ||
lockPaths.delete(lockPath); | ||
} | ||
} | ||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; | ||
@@ -403,3 +466,2 @@ | ||
const wp = function wp(p = '') { | ||
/* istanbul ignore if */ | ||
if (isWindows) { | ||
@@ -412,3 +474,2 @@ return p.replace(/\\/g, '\\\\') | ||
const wChunk = function wChunk(p = '') { | ||
/* istanbul ignore if */ | ||
if (isWindows) { | ||
@@ -434,4 +495,3 @@ return p.replace(/\//g, '_') | ||
const relativeTo = function relativeTo() { | ||
const args = Array.prototype.slice.apply(arguments); | ||
const relativeTo = function relativeTo(...args) { | ||
const dir = args.shift(); | ||
@@ -457,3 +517,3 @@ | ||
if (rp[0] !== '.') { | ||
rp = './' + rp; | ||
rp = '.' + path.sep + rp; | ||
} | ||
@@ -1422,3 +1482,2 @@ | ||
} | ||
/* istanbul ignore if */ | ||
if (r.children) { | ||
@@ -1682,3 +1741,2 @@ if (_path === '' && r.path === '/') { | ||
const chainFn = function chainFn(base, fn) { | ||
/* istanbul ignore if */ | ||
if (typeof fn !== 'function') { | ||
@@ -1775,33 +1833,39 @@ return base | ||
exports.getContext = getContext; | ||
exports.Timer = Timer; | ||
exports.chainFn = chainFn; | ||
exports.createLockPath = createLockPath; | ||
exports.createRoutes = createRoutes; | ||
exports.defaultLockOptions = defaultLockOptions; | ||
exports.defineAlias = defineAlias; | ||
exports.determineGlobals = determineGlobals; | ||
exports.encodeHtml = encodeHtml; | ||
exports.isString = isString; | ||
exports.flatRoutes = flatRoutes; | ||
exports.getContext = getContext; | ||
exports.getLockOptions = getLockOptions; | ||
exports.getLockPath = getLockPath; | ||
exports.getMainModule = getMainModule; | ||
exports.guardDir = guardDir; | ||
exports.isIndexFileAndFolder = isIndexFileAndFolder; | ||
exports.isNonEmptyString = isNonEmptyString; | ||
exports.isPureObject = isPureObject; | ||
exports.isString = isString; | ||
exports.isUrl = isUrl; | ||
exports.urlJoin = urlJoin; | ||
exports.wrapArray = wrapArray; | ||
exports.stripWhitespace = stripWhitespace; | ||
exports.startsWithAlias = startsWithAlias; | ||
exports.startsWithSrcAlias = startsWithSrcAlias; | ||
exports.startsWithRootAlias = startsWithRootAlias; | ||
exports.isWindows = isWindows; | ||
exports.wp = wp; | ||
exports.wChunk = wChunk; | ||
exports.lock = lock; | ||
exports.lockPaths = lockPaths; | ||
exports.parallel = parallel; | ||
exports.promisifyRoute = promisifyRoute; | ||
exports.r = r; | ||
exports.relativeTo = relativeTo; | ||
exports.defineAlias = defineAlias; | ||
exports.isIndexFileAndFolder = isIndexFileAndFolder; | ||
exports.getMainModule = getMainModule; | ||
exports.flatRoutes = flatRoutes; | ||
exports.createRoutes = createRoutes; | ||
exports.guardDir = guardDir; | ||
exports.promisifyRoute = promisifyRoute; | ||
exports.sequence = sequence; | ||
exports.serializeFunction = serializeFunction; | ||
exports.sequence = sequence; | ||
exports.parallel = parallel; | ||
exports.chainFn = chainFn; | ||
exports.startsWithAlias = startsWithAlias; | ||
exports.startsWithRootAlias = startsWithRootAlias; | ||
exports.startsWithSrcAlias = startsWithSrcAlias; | ||
exports.stripWhitespace = stripWhitespace; | ||
exports.timeout = timeout; | ||
exports.urlJoin = urlJoin; | ||
exports.wChunk = wChunk; | ||
exports.waitFor = waitFor; | ||
exports.Timer = Timer; | ||
exports.wp = wp; | ||
exports.wrapArray = wrapArray; |
{ | ||
"name": "@nuxt/utils", | ||
"version": "2.4.5", | ||
"version": "2.5.0", | ||
"repository": "nuxt/nuxt.js", | ||
@@ -11,4 +11,8 @@ "license": "MIT", | ||
"dependencies": { | ||
"consola": "^2.3.2", | ||
"serialize-javascript": "^1.6.1" | ||
"consola": "^2.5.7", | ||
"fs-extra": "^7.0.1", | ||
"hash-sum": "^1.0.2", | ||
"proper-lockfile": "^4.1.0", | ||
"serialize-javascript": "^1.6.1", | ||
"signal-exit": "^3.0.2" | ||
}, | ||
@@ -15,0 +19,0 @@ "publishConfig": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49210
1612
6
2
+ Addedfs-extra@^7.0.1
+ Addedhash-sum@^1.0.2
+ Addedproper-lockfile@^4.1.0
+ Addedsignal-exit@^3.0.2
+ Addedfs-extra@7.0.1(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhash-sum@1.0.2(transitive)
+ Addedjsonfile@4.0.0(transitive)
+ Addedproper-lockfile@4.1.2(transitive)
+ Addedretry@0.12.0(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addeduniversalify@0.1.2(transitive)
Updatedconsola@^2.5.7