mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-03-26 10:21:55 +00:00
3
Makefile
3
Makefile
@@ -1,6 +1,5 @@
|
||||
TEST_FILES := $(shell find ./**/*.ts)
|
||||
|
||||
|
||||
test: $(TEST_FILES)
|
||||
deno test test.ts
|
||||
deno check mod.ts
|
||||
deno check mod.ts
|
||||
|
||||
33
healthUtil.ts
Normal file
33
healthUtil.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { Effects, ExpectedExports, ResultType } from "./types.ts";
|
||||
|
||||
export const checkWebUrl: (
|
||||
url: string,
|
||||
) => (effects: Effects, duration: number) => Promise<ResultType<null | void>> =
|
||||
(url) => {
|
||||
return async (effects, duration) => {
|
||||
await guardDurationAboveMinimum({ duration, minimumTime: 5000 });
|
||||
|
||||
return await effects.fetch(url)
|
||||
.then((_) => ok)
|
||||
.catch((e) => {
|
||||
effects.warn(`Error while fetching URL: ${url}`);
|
||||
effects.error(JSON.stringify(e));
|
||||
effects.error(e.toString());
|
||||
return error(`Error while fetching URL: ${url}`);
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
// Ensure the starting duration is pass a minimum
|
||||
const guardDurationAboveMinimum = (
|
||||
input: { duration: number; minimumTime: number },
|
||||
) =>
|
||||
(input.duration <= input.minimumTime)
|
||||
? Promise.reject(errorCode(60, "Starting"))
|
||||
: null;
|
||||
|
||||
const errorCode = (code: number, error: string) => ({
|
||||
"error-code": [code, error] as const,
|
||||
});
|
||||
const error = (error: string) => ({ error });
|
||||
const ok = { result: null };
|
||||
Reference in New Issue
Block a user