{
  "version": 3,
  "sources": ["../../cypress-wait-until/src/index.js"],
  "sourcesContent": ["'use strict'\n\nconst logCommand = ({ options, originalOptions }) => {\n  if (options.log) {\n    options.logger({\n      name: options.description,\n      message: options.customMessage,\n      consoleProps: () => originalOptions,\n    })\n  }\n}\nconst logCommandCheck = ({ result, options, originalOptions }) => {\n  if (!options.log || !options.verbose) return\n\n  const message = [result]\n  if (options.customCheckMessage) {\n    message.unshift(options.customCheckMessage)\n  }\n  options.logger({\n    name: options.description,\n    message,\n    consoleProps: () => originalOptions,\n  })\n}\n\nconst waitUntil = (subject, checkFunction, originalOptions = {}) => {\n  if (!(checkFunction instanceof Function)) {\n    throw new Error('`checkFunction` parameter should be a function. Found: ' + checkFunction)\n  }\n\n  const defaultOptions = {\n    // base options\n    interval: 200,\n    timeout: 5000,\n    errorMsg: 'Timed out retrying',\n\n    // log options\n    description: 'waitUntil',\n    log: true,\n    customMessage: undefined,\n    logger: Cypress.log,\n    verbose: false,\n    customCheckMessage: undefined,\n  }\n  const options = { ...defaultOptions, ...originalOptions }\n\n  // filter out a falsy passed \"customMessage\" value\n  options.customMessage = [options.customMessage, originalOptions].filter(Boolean)\n\n  let retries = Math.floor(options.timeout / options.interval)\n\n  logCommand({ options, originalOptions })\n\n  const check = (result) => {\n    logCommandCheck({ result, options, originalOptions })\n    if (result) {\n      return result\n    }\n    if (retries < 1) {\n      const msg =\n        options.errorMsg instanceof Function ? options.errorMsg(result, options) : options.errorMsg\n      throw new Error(msg)\n    }\n    cy.wait(options.interval, { log: false }).then(() => {\n      retries--\n      return resolveValue()\n    })\n  }\n\n  const resolveValue = () => {\n    const result = checkFunction(subject)\n\n    const isAPromise = Boolean(result && result.then)\n    if (isAPromise) {\n      return result.then(check)\n    } else {\n      return check(result)\n    }\n  }\n\n  return resolveValue()\n}\n\nCypress.Commands.add('waitUntil', { prevSubject: 'optional' }, waitUntil)\n"],
  "mappings": ";AAEA,IAAM,aAAa,CAAC,EAAE,SAAS,gBAAgB,MAAM;AACnD,MAAI,QAAQ,KAAK;AACf,YAAQ,OAAO;AAAA,MACb,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,cAAc,MAAM;AAAA,IACtB,CAAC;AAAA,EACH;AACF;AACA,IAAM,kBAAkB,CAAC,EAAE,QAAQ,SAAS,gBAAgB,MAAM;AAChE,MAAI,CAAC,QAAQ,OAAO,CAAC,QAAQ,QAAS;AAEtC,QAAM,UAAU,CAAC,MAAM;AACvB,MAAI,QAAQ,oBAAoB;AAC9B,YAAQ,QAAQ,QAAQ,kBAAkB;AAAA,EAC5C;AACA,UAAQ,OAAO;AAAA,IACb,MAAM,QAAQ;AAAA,IACd;AAAA,IACA,cAAc,MAAM;AAAA,EACtB,CAAC;AACH;AAEA,IAAM,YAAY,CAAC,SAAS,eAAe,kBAAkB,CAAC,MAAM;AAClE,MAAI,EAAE,yBAAyB,WAAW;AACxC,UAAM,IAAI,MAAM,4DAA4D,aAAa;AAAA,EAC3F;AAEA,QAAM,iBAAiB;AAAA;AAAA,IAErB,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA;AAAA,IAGV,aAAa;AAAA,IACb,KAAK;AAAA,IACL,eAAe;AAAA,IACf,QAAQ,QAAQ;AAAA,IAChB,SAAS;AAAA,IACT,oBAAoB;AAAA,EACtB;AACA,QAAM,UAAU,EAAE,GAAG,gBAAgB,GAAG,gBAAgB;AAGxD,UAAQ,gBAAgB,CAAC,QAAQ,eAAe,eAAe,EAAE,OAAO,OAAO;AAE/E,MAAI,UAAU,KAAK,MAAM,QAAQ,UAAU,QAAQ,QAAQ;AAE3D,aAAW,EAAE,SAAS,gBAAgB,CAAC;AAEvC,QAAM,QAAQ,CAAC,WAAW;AACxB,oBAAgB,EAAE,QAAQ,SAAS,gBAAgB,CAAC;AACpD,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AACA,QAAI,UAAU,GAAG;AACf,YAAM,MACJ,QAAQ,oBAAoB,WAAW,QAAQ,SAAS,QAAQ,OAAO,IAAI,QAAQ;AACrF,YAAM,IAAI,MAAM,GAAG;AAAA,IACrB;AACA,OAAG,KAAK,QAAQ,UAAU,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM;AACnD;AACA,aAAO,aAAa;AAAA,IACtB,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,SAAS,cAAc,OAAO;AAEpC,UAAM,aAAa,QAAQ,UAAU,OAAO,IAAI;AAChD,QAAI,YAAY;AACd,aAAO,OAAO,KAAK,KAAK;AAAA,IAC1B,OAAO;AACL,aAAO,MAAM,MAAM;AAAA,IACrB;AAAA,EACF;AAEA,SAAO,aAAa;AACtB;AAEA,QAAQ,SAAS,IAAI,aAAa,EAAE,aAAa,WAAW,GAAG,SAAS;",
  "names": []
}