{"version":3,"file":"bypass.cjs","names":[],"sources":["../../../../../node_modules/mock-fs/lib/bypass.js"],"sourcesContent":["const realBinding = process.binding('fs');\n\nlet storedBinding;\n\n/**\n * Perform action, bypassing mock FS\n * @param {Function} fn The function.\n * @example\n * // This file exists on the real FS, not on the mocked FS\n * const filePath = '/path/file.json';\n * const data = mock.bypass(() => fs.readFileSync(filePath, 'utf-8'));\n * @return {*} The return.\n */\nmodule.exports = function bypass(fn) {\n  if (typeof fn !== 'function') {\n    throw new Error(`Must provide a function to perform for mock.bypass()`);\n  }\n\n  disable();\n\n  let result;\n  try {\n    result = fn();\n    if (result && typeof result.then === 'function') {\n      return result.then(\n        (r) => {\n          enable();\n          return r;\n        },\n        (err) => {\n          enable();\n          throw err;\n        }\n      );\n    } else {\n      enable();\n      return result;\n    }\n  } catch (err) {\n    enable();\n    throw err;\n  }\n};\n\n/**\n * Temporarily disable Mocked FS\n */\nfunction disable() {\n  if (realBinding._mockedBinding) {\n    storedBinding = realBinding._mockedBinding;\n    delete realBinding._mockedBinding;\n  }\n}\n\n/**\n * Enables Mocked FS after being disabled by disable()\n */\nfunction enable() {\n  if (storedBinding) {\n    realBinding._mockedBinding = storedBinding;\n    storedBinding = undefined;\n  }\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;CAAA,MAAM,cAAc,QAAQ,QAAQ,KAAK;CAEzC,IAAI;;;;;;;;;;AAWJ,QAAO,UAAU,SAAS,OAAO,IAAI;AACnC,MAAI,OAAO,OAAO,WAChB,OAAM,IAAI,MAAM,uDAAuD;AAGzE,WAAS;EAET,IAAI;AACJ,MAAI;AACF,YAAS,IAAI;AACb,OAAI,UAAU,OAAO,OAAO,SAAS,WACnC,QAAO,OAAO,MACX,MAAM;AACL,YAAQ;AACR,WAAO;OAER,QAAQ;AACP,YAAQ;AACR,UAAM;KAET;QACI;AACL,YAAQ;AACR,WAAO;;WAEF,KAAK;AACZ,WAAQ;AACR,SAAM;;;;;;CAOV,SAAS,UAAU;AACjB,MAAI,YAAY,gBAAgB;AAC9B,mBAAgB,YAAY;AAC5B,UAAO,YAAY;;;;;;CAOvB,SAAS,SAAS;AAChB,MAAI,eAAe;AACjB,eAAY,iBAAiB;AAC7B,mBAAgB"}