{"version":3,"file":"routerkit-core.mjs","sources":["../../../package/src/core/getRoutes.utils.ts","../../../package/src/generation/constants.ts","../../../package/src/core/getRoutes.ts","../../../package/src/routerkit-core.ts"],"sourcesContent":["export const getRouteFromPaths = (paths: string[]): string => {\n  if (paths.length === 1) {\n    return paths[0];\n  }\n\n  let route = '';\n\n  for (let i = 1; i < paths.length; i += 1) {\n    route += `/${paths[i]}`;\n  }\n\n  return route;\n};\n","export const PACKAGE_NAME = '@routerkit/core';\n\nexport const STRING_KEYWORD = 'STRING_KEYWORD';\n\nexport const TYPED_ROUTE_TYPE_NAME = 'TypedRoute';\n\nexport const EMPTY_PATH = 'ROOT';\n","import { getRouteFromPaths } from './getRoutes.utils';\nimport { EMPTY_PATH } from '../generation/constants';\n\nexport const getRoutes = <T>(): T => {\n  const proxy = new Proxy(['/'], {\n    get(target: string[], path): string[] {\n      const targetArray = Array.from(target);\n\n      switch (true) {\n        // TODO: add warning about potential mistake when some route \"length\" path\n        case path === 'length':\n          return targetArray.length as any;\n\n        case path === 'toString':\n        case path === Symbol.toPrimitive:\n          return (() => getRouteFromPaths(targetArray)) as any;\n\n        case path === 'asString':\n          return getRouteFromPaths(targetArray) as any;\n\n        case path === 'asArray': {\n          return Array.from(targetArray);\n        }\n\n        case path === Symbol.iterator:\n          return Array.prototype[Symbol.iterator].bind(targetArray);\n\n        case path in Array.prototype: {\n          const updatedTargetPath = Array.prototype[path as any].bind(targetArray);\n          Object.defineProperty(updatedTargetPath, 'length', { get: () => targetArray.length + 1 });\n          const nextTuple = [...targetArray, path];\n          updatedTargetPath[Symbol.iterator] = Array.prototype[Symbol.iterator].bind(nextTuple);\n\n          for (let i = 0; i < nextTuple.length; i += 1) {\n            updatedTargetPath[i] = nextTuple[i];\n          }\n\n          return new Proxy(updatedTargetPath, this);\n        }\n\n        default: {\n          const nextTuple = path === EMPTY_PATH ? targetArray : [...targetArray, path];\n          return new Proxy(nextTuple, this) as string[];\n        }\n      }\n    }\n  });\n\n  return (proxy as unknown) as T;\n};\n\nexport const getPaths = (paths: string[]): string[] => Array.from(paths);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}