Skip to content

Commit 422a6a9

Browse files
move schema types to types.ts
1 parent d6866e8 commit 422a6a9

File tree

12 files changed

+34
-28
lines changed

12 files changed

+34
-28
lines changed

src/app/api/(client)/client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { FileSourceResponse, fileSourceResponseSchema, ListRepositoriesResponse, listRepositoriesResponseSchema, SearchRequest, SearchResponse, searchResponseSchema } from "@/lib/schemas";
1+
import { fileSourceResponseSchema, listRepositoriesResponseSchema, searchResponseSchema } from "@/lib/schemas";
2+
import { FileSourceResponse, ListRepositoriesResponse, SearchRequest, SearchResponse } from "@/lib/types";
23

34
export const search = async (body: SearchRequest): Promise<SearchResponse> => {
45
const result = await fetch(`/api/search`, {

src/app/repositoryCarousel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use client';
22

3-
import { Repository } from "@/lib/schemas";
43
import {
54
Carousel,
65
CarouselContent,
@@ -11,6 +10,7 @@ import { getRepoCodeHostInfo } from "@/lib/utils";
1110
import Image from "next/image";
1211
import { FileIcon } from "@radix-ui/react-icons";
1312
import clsx from "clsx";
13+
import { Repository } from "@/lib/types";
1414

1515
interface RepositoryCarouselProps {
1616
repos: Repository[];

src/app/search/components/codePreviewPanel/codePreview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { useSyntaxHighlightingExtension } from "@/hooks/useSyntaxHighlightingExt
88
import { useThemeNormalized } from "@/hooks/useThemeNormalized";
99
import { gutterWidthExtension } from "@/lib/extensions/gutterWidthExtension";
1010
import { highlightRanges, searchResultHighlightExtension } from "@/lib/extensions/searchResultHighlightExtension";
11-
import { SearchResultFileMatch } from "@/lib/schemas";
11+
import { SearchResultFileMatch } from "@/lib/types";
1212
import { defaultKeymap } from "@codemirror/commands";
1313
import { search } from "@codemirror/search";
1414
import { EditorView, keymap } from "@codemirror/view";

src/app/search/components/codePreviewPanel/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
'use client';
22

33
import { fetchFileSource } from "@/app/api/(client)/client";
4-
import { SearchResultFile } from "@/lib/schemas";
54
import { getCodeHostFilePreviewLink } from "@/lib/utils";
65
import { useQuery } from "@tanstack/react-query";
76
import { CodePreview, CodePreviewFile } from "./codePreview";
7+
import { SearchResultFile } from "@/lib/types";
88

99
interface CodePreviewPanelProps {
1010
fileMatch?: SearchResultFile;

src/app/search/components/searchResultsPanel/codePreview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useExtensionWithDependency } from "@/hooks/useExtensionWithDependency";
44
import { useSyntaxHighlightingExtension } from "@/hooks/useSyntaxHighlightingExtension";
55
import { useThemeNormalized } from "@/hooks/useThemeNormalized";
66
import { lineOffsetExtension } from "@/lib/extensions/lineOffsetExtension";
7-
import { SearchResultRange } from "@/lib/schemas";
7+
import { SearchResultRange } from "@/lib/types";
88
import CodeMirror, { Decoration, DecorationSet, EditorState, EditorView, ReactCodeMirrorRef, StateField, Transaction } from "@uiw/react-codemirror";
99
import { useMemo, useRef } from "react";
1010

src/app/search/components/searchResultsPanel/fileMatchContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
'use client';
22

3-
import { SearchResultFile } from "@/lib/schemas";
43
import { getRepoCodeHostInfo } from "@/lib/utils";
54
import { useCallback, useMemo, useState } from "react";
65
import Image from "next/image";
76
import { DoubleArrowDownIcon, DoubleArrowUpIcon, FileIcon } from "@radix-ui/react-icons";
87
import clsx from "clsx";
98
import { Separator } from "@/components/ui/separator";
109
import { CodePreview } from "./codePreview";
10+
import { SearchResultFile } from "@/lib/types";
1111

1212
const MAX_MATCHES_TO_PREVIEW = 3;
1313

src/app/search/components/searchResultsPanel/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
'use client';
22

33
import { ScrollArea } from "@/components/ui/scroll-area";
4-
import { SearchResultFile } from "@/lib/schemas";
54
import { Scrollbar } from "@radix-ui/react-scroll-area";
65
import { FileMatchContainer } from "./fileMatchContainer";
6+
import { SearchResultFile } from "@/lib/types";
77

88
interface SearchResultsPanelProps {
99
fileMatches: SearchResultFile[];

src/app/search/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
} from "@/components/ui/resizable";
88
import { Separator } from "@/components/ui/separator";
99
import { useNonEmptyQueryParam } from "@/hooks/useNonEmptyQueryParam";
10-
import { SearchResultFile } from "@/lib/schemas";
1110
import { createPathWithQueryParams } from "@/lib/utils";
1211
import { SymbolIcon } from "@radix-ui/react-icons";
1312
import { useQuery } from "@tanstack/react-query";
@@ -22,6 +21,7 @@ import { SettingsDropdown } from "../settingsDropdown";
2221
import useCaptureEvent from "@/hooks/useCaptureEvent";
2322
import { CodePreviewPanel } from "./components/codePreviewPanel";
2423
import { SearchResultsPanel } from "./components/searchResultsPanel";
24+
import { SearchResultFile } from "@/lib/types";
2525

2626
const DEFAULT_NUM_RESULTS = 100;
2727

src/lib/extensions/searchResultHighlightExtension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { EditorSelection, Extension, StateEffect, StateField, Text, Transaction } from "@codemirror/state";
22
import { Decoration, DecorationSet, EditorView } from "@codemirror/view";
3-
import { SearchResultRange } from "../schemas";
3+
import { SearchResultRange } from "../types";
44

55
const setMatchState = StateEffect.define<{
66
selectedMatchIndex: number,

src/lib/schemas.ts

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
11
import { z } from "zod";
22

3-
export type SearchRequest = z.infer<typeof searchRequestSchema>;
43
export const searchRequestSchema = z.object({
54
query: z.string(),
65
numResults: z.number(),
76
whole: z.boolean().optional(),
87
});
98

109

11-
export type SearchResponse = z.infer<typeof searchResponseSchema>;
12-
export type SearchResult = SearchResponse["Result"];
13-
export type SearchResultFile = NonNullable<SearchResult["Files"]>[number];
14-
export type SearchResultFileMatch = SearchResultFile["ChunkMatches"][number];
15-
export type SearchResultRange = z.infer<typeof rangeSchema>;
16-
export type SearchResultLocation = z.infer<typeof locationSchema>;
17-
1810
// @see : https://github.com/TaqlaAI/zoekt/blob/main/api.go#L212
19-
const locationSchema = z.object({
11+
export const locationSchema = z.object({
2012
// 0-based byte offset from the beginning of the file
2113
ByteOffset: z.number(),
2214
// 1-based line number from the beginning of the file
@@ -25,7 +17,7 @@ const locationSchema = z.object({
2517
Column: z.number(),
2618
});
2719

28-
const rangeSchema = z.object({
20+
export const rangeSchema = z.object({
2921
Start: locationSchema,
3022
End: locationSchema,
3123
});
@@ -79,22 +71,16 @@ export const searchResponseSchema = z.object({
7971
}),
8072
});
8173

82-
export type FileSourceRequest = z.infer<typeof fileSourceRequestSchema>;
8374
export const fileSourceRequestSchema = z.object({
8475
fileName: z.string(),
8576
repository: z.string()
8677
});
8778

88-
export type FileSourceResponse = z.infer<typeof fileSourceResponseSchema>;
89-
9079
export const fileSourceResponseSchema = z.object({
9180
source: z.string(),
9281
});
9382

9483

95-
export type ListRepositoriesResponse = z.infer<typeof listRepositoriesResponseSchema>;
96-
export type Repository = z.infer<typeof repositorySchema>;
97-
9884
// @see : https://github.com/TaqlaAI/zoekt/blob/3780e68cdb537d5a7ed2c84d9b3784f80c7c5d04/api.go#L728
9985
const repoStatsSchema = z.object({
10086
Repos: z.number(),
@@ -120,7 +106,7 @@ const indexMetadataSchema = z.object({
120106
});
121107

122108
// @see : https://github.com/TaqlaAI/zoekt/blob/3780e68cdb537d5a7ed2c84d9b3784f80c7c5d04/api.go#L555
123-
const repositorySchema = z.object({
109+
export const repositorySchema = z.object({
124110
Name: z.string(),
125111
URL: z.string(),
126112
Source: z.string(),

0 commit comments

Comments
 (0)