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) }