{"version":3,"file":"testing-utils.js","names":[],"sources":["esm/testing-utils.js"],"sourcesContent":["import path from \"node:path\";\nimport { getReactNavigationConfig } from \"./getReactNavigationConfig\";\nimport { getRoutes } from \"./router/getRoutes\";\nconst validExtensions = [\".js\", \".jsx\", \".ts\", \".tsx\"];\nfunction inMemoryContext(context) {\n  return Object.assign(\n    (id) => {\n      id = id.replace(/^\\.\\//, \"\").replace(/\\.\\w*$/, \"\");\n      return typeof context[id] === \"function\" ? { default: context[id] } : context[id];\n    },\n    {\n      resolve: (key) => key,\n      id: \"0\",\n      keys: () => Object.keys(context).map((key) => {\n        const ext = path.extname(key);\n        key = key.replace(/^\\.\\//, \"\");\n        key = key.startsWith(\"/\") ? key : `./${key}`;\n        key = validExtensions.includes(ext) ? key : `${key}.js`;\n        return key;\n      })\n    }\n  );\n}\nfunction getMockContext(context) {\n  if (Array.isArray(context)) {\n    return inMemoryContext(\n      Object.fromEntries(context.map((filename) => [filename, { default: () => null }]))\n    );\n  }\n  throw new Error(\"Invalid context\");\n}\nfunction getMockConfig(context, metaOnly = true) {\n  return getReactNavigationConfig(getRoutes(getMockContext(context)), metaOnly);\n}\nexport {\n  getMockConfig,\n  getMockContext,\n  inMemoryContext\n};\n//# sourceMappingURL=testing-utils.js.map\n"],"mappings":";;;;;AAGA,MAAM,kBAAkB;CAAC;CAAO;CAAQ;CAAO;AAAM;AACrD,SAAS,gBAAgB,SAAS;CAChC,OAAO,OAAO,QACX,OAAO;EACN,KAAK,GAAG,QAAQ,SAAS,EAAE,CAAC,CAAC,QAAQ,UAAU,EAAE;EACjD,OAAO,OAAO,QAAQ,QAAQ,aAAa,EAAE,SAAS,QAAQ,IAAI,IAAI,QAAQ;CAChF,GACA;EACE,UAAU,QAAQ;EAClB,IAAI;EACJ,YAAY,OAAO,KAAK,OAAO,CAAC,CAAC,KAAK,QAAQ;GAC5C,MAAM,MAAM,KAAK,QAAQ,GAAG;GAC5B,MAAM,IAAI,QAAQ,SAAS,EAAE;GAC7B,MAAM,IAAI,WAAW,GAAG,IAAI,MAAM,KAAK;GACvC,MAAM,gBAAgB,SAAS,GAAG,IAAI,MAAM,GAAG,IAAI;GACnD,OAAO;EACT,CAAC;CACH,CACF;AACF;AACA,SAAS,eAAe,SAAS;CAC/B,IAAI,MAAM,QAAQ,OAAO,GAAG;EAC1B,OAAO,gBACL,OAAO,YAAY,QAAQ,KAAK,aAAa,CAAC,UAAU,EAAE,eAAe,KAAK,CAAC,CAAC,CAAC,CACnF;CACF;CACA,MAAM,IAAI,MAAM,iBAAiB;AACnC;AACA,SAAS,cAAc,SAAS,WAAW,MAAM;CAC/C,OAAO,yBAAyB,UAAU,eAAe,OAAO,CAAC,GAAG,QAAQ;AAC9E"}