{"version":3,"sources":["../../../../src/vanilla/builders/searcher.builder.ts"],"sourcesContent":["import type { FuzzyResponse, Result } from \"../types\";\n\nexport class FuzzyBuilder<T> {\n\tprivate results: Array<Result<T>>;\n\tprivate time: number;\n\tprivate normalizedQuery: string;\n\n\tconstructor({\n\t\tresults = [],\n\t\tstartTime = Date.now(),\n\t\tendTime = Date.now(),\n\t\tnormalizedQuery = \"\",\n\t}: {\n\t\tresults?: Array<Result<T>>;\n\t\tstartTime?: number;\n\t\tendTime?: number;\n\t\tnormalizedQuery?: string;\n\t}) {\n\t\tthis.time = endTime - startTime;\n\t\tthis.results = results;\n\t\tthis.normalizedQuery = normalizedQuery;\n\t}\n\n\tpublic build(): FuzzyResponse<T> {\n\t\treturn {\n\t\t\tresults: this.results,\n\t\t\tlength: this.results.length,\n\t\t\ttime: this.time,\n\t\t\tnormalizedQuery: this.normalizedQuery,\n\t\t\thasExactMatch:\n\t\t\t\tthis.results.filter((result) => result.score === 0).length > 0,\n\t\t\tbestMatch: this.results[0] ?? null,\n\t\t\thasResults: this.results.length > 0,\n\t\t};\n\t}\n}\n"],"mappings":";AAEO,IAAM,eAAN,MAAsB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY;AAAA,IACX,UAAU,CAAC;AAAA,IACX,YAAY,KAAK,IAAI;AAAA,IACrB,UAAU,KAAK,IAAI;AAAA,IACnB,kBAAkB;AAAA,EACnB,GAKG;AACF,SAAK,OAAO,UAAU;AACtB,SAAK,UAAU;AACf,SAAK,kBAAkB;AAAA,EACxB;AAAA,EAEO,QAA0B;AAChC,WAAO;AAAA,MACN,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,iBAAiB,KAAK;AAAA,MACtB,eACC,KAAK,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU,CAAC,EAAE,SAAS;AAAA,MAC9D,WAAW,KAAK,QAAQ,CAAC,KAAK;AAAA,MAC9B,YAAY,KAAK,QAAQ,SAAS;AAAA,IACnC;AAAA,EACD;AACD;","names":[]}