{"version":3,"sources":["route-filter.ts"],"sourcesContent":["import { Context } from \"./context.ts\";\n\nexport type filterFunction = (ctx: Context) => boolean|Promise<boolean>;\nexport type filter = symbol & {readonly __tag: unique symbol};\n\n// TODO: use WeakMap when supported in Firefox\nconst filters = new Map<filter, filterFunction>()\n\n/**\n * Creates a new filter that can be used as a key for route maps\n */\nexport function createFilter(filter: filterFunction, name?: string) {\n\tconst filterSymbol = Symbol(name??filter.name??'anonymous route filter') as filter;\n\tfilters.set(filterSymbol, filter);\n\treturn filterSymbol;\n}\n\nexport function evaluateFilter(filter: filter, ctx: Context) {\n\tconst filterFunction = filters.get(filter);\n\tif (!filterFunction) return false; // TODO: throw error (problem with DX_PTR and other symbols)\n\t// if (!filterFunction) throw new Error(\"Invalid symbol as route map key ('\"+filter.description+\"') - not a registered filter. Use createFilter()\");\n\treturn filterFunction(ctx);\n}"],"names":["filters","Map","createFilter","filter","name","filterSymbol","Symbol","set","evaluateFilter","ctx","filterFunction","get"],"mappings":"AAMA,IAAMA,UAAU,IAAIC;AAKpB,OAAO,SAASC,aAAaC,MAAsB,EAAEC,IAAa;IACjE,IAAMC,eAAeC,OAAOF,QAAMD,OAAOC,IAAI,IAAE;IAE/C,OADAJ,QAAQO,GAAG,CAACF,cAAcF,SACnBE;AACR;AAEA,OAAO,SAASG,eAAeL,MAAc,EAAEM,GAAY;IAC1D,IAAMC,iBAAiBV,QAAQW,GAAG,CAACR;WACnC,EAAKO,kBAEEA,eAAeD;AACvB","sourceRoot":"/lib/uix-0.4.39/src/routing/","file":"route-filter.ts"}