mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 14:15:13 +00:00
9df5f49e07
New packages: - `@nuxt/webpack` - `@nuxt/generator`
45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
import klawSync from 'klaw-sync'
|
|
import { waitFor } from '../../packages/common/src/utils'
|
|
export { default as getPort } from 'get-port'
|
|
export { default as rp } from 'request-promise-native'
|
|
|
|
export * from './nuxt'
|
|
|
|
// Pauses execution for a determined amount of time (`duration`)
|
|
// until `condition` is met. Also allows specifying the `interval`
|
|
// at which the condition is checked during the waiting period.
|
|
export const waitUntil = async function waitUntil(condition, duration = 20, interval = 250) {
|
|
let iterator = 0
|
|
const steps = Math.floor(duration * 1000 / interval)
|
|
|
|
while (!condition() && iterator < steps) {
|
|
await waitFor(interval)
|
|
iterator++
|
|
}
|
|
|
|
if (iterator === steps) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
export const listPaths = function listPaths(dir, pathsBefore = [], options = {}) {
|
|
if (Array.isArray(pathsBefore) && pathsBefore.length) {
|
|
// Only return files that didn't exist before building
|
|
// and files that have been changed
|
|
options.filter = (item) => {
|
|
const foundItem = pathsBefore.find((itemBefore) => {
|
|
return item.path === itemBefore.path
|
|
})
|
|
return typeof foundItem === 'undefined' ||
|
|
item.stats.mtimeMs !== foundItem.stats.mtimeMs
|
|
}
|
|
}
|
|
|
|
return klawSync(dir, options)
|
|
}
|
|
|
|
export const equalOrStartsWith = function equalOrStartsWith(string1, string2) {
|
|
return string1 === string2 || string2.startsWith(string1)
|
|
}
|