|
1 | | -import { updateCheck } from "./update_check.ts"; |
2 | | -import { |
3 | | - DAY, |
4 | | - dirname, |
5 | | - fromFileUrl, |
6 | | - gte, |
7 | | - join, |
8 | | - posix, |
9 | | - relative, |
10 | | - walk, |
11 | | - WalkEntry, |
12 | | -} from "./deps.ts"; |
| 1 | +import { gte, join, posix, relative, walk, WalkEntry } from "./deps.ts"; |
13 | 2 | import { error } from "./error.ts"; |
14 | | -import { FreshOptions } from "../server/mod.ts"; |
15 | | -import { build } from "./build.ts"; |
16 | 3 |
|
17 | 4 | const MIN_DENO_VERSION = "1.31.0"; |
18 | 5 |
|
@@ -57,7 +44,7 @@ async function collectDir( |
57 | 44 | } |
58 | 45 | } |
59 | 46 |
|
60 | | -interface Manifest { |
| 47 | +export interface Manifest { |
61 | 48 | routes: string[]; |
62 | 49 | islands: string[]; |
63 | 50 | } |
@@ -184,48 +171,3 @@ export default manifest; |
184 | 171 | "color: blue; font-weight: bold", |
185 | 172 | ); |
186 | 173 | } |
187 | | - |
188 | | -export async function dev( |
189 | | - base: string, |
190 | | - entrypoint: string, |
191 | | - options: FreshOptions = {}, |
192 | | -) { |
193 | | - ensureMinDenoVersion(); |
194 | | - |
195 | | - // Run update check in background |
196 | | - updateCheck(DAY).catch(() => {}); |
197 | | - |
198 | | - entrypoint = new URL(entrypoint, base).href; |
199 | | - |
200 | | - const dir = dirname(fromFileUrl(base)); |
201 | | - |
202 | | - let currentManifest: Manifest; |
203 | | - const prevManifest = Deno.env.get("FRSH_DEV_PREVIOUS_MANIFEST"); |
204 | | - if (prevManifest) { |
205 | | - currentManifest = JSON.parse(prevManifest); |
206 | | - } else { |
207 | | - currentManifest = { islands: [], routes: [] }; |
208 | | - } |
209 | | - const newManifest = await collect(dir); |
210 | | - Deno.env.set("FRSH_DEV_PREVIOUS_MANIFEST", JSON.stringify(newManifest)); |
211 | | - |
212 | | - const manifestChanged = |
213 | | - !arraysEqual(newManifest.routes, currentManifest.routes) || |
214 | | - !arraysEqual(newManifest.islands, currentManifest.islands); |
215 | | - |
216 | | - if (manifestChanged) await generate(dir, newManifest); |
217 | | - |
218 | | - if (Deno.args.includes("build")) { |
219 | | - await build(join(dir, "fresh.gen.ts"), options); |
220 | | - } else { |
221 | | - await import(entrypoint); |
222 | | - } |
223 | | -} |
224 | | - |
225 | | -function arraysEqual<T>(a: T[], b: T[]): boolean { |
226 | | - if (a.length !== b.length) return false; |
227 | | - for (let i = 0; i < a.length; ++i) { |
228 | | - if (a[i] !== b[i]) return false; |
229 | | - } |
230 | | - return true; |
231 | | -} |
0 commit comments