mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-04-04 14:29:47 +00:00
chore: Add in some more types and tools
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { Effects, ExpectedExports, ResultType } from "./types.ts";
|
import { Effects, ResultType } from "./types.ts";
|
||||||
|
import { error, errorCode, ok } from "./util.ts";
|
||||||
|
|
||||||
export const checkWebUrl: (
|
export const checkWebUrl: (
|
||||||
url: string,
|
url: string,
|
||||||
@@ -19,15 +20,9 @@ export const checkWebUrl: (
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Ensure the starting duration is pass a minimum
|
// Ensure the starting duration is pass a minimum
|
||||||
const guardDurationAboveMinimum = (
|
export const guardDurationAboveMinimum = (
|
||||||
input: { duration: number; minimumTime: number },
|
input: { duration: number; minimumTime: number },
|
||||||
) =>
|
) =>
|
||||||
(input.duration <= input.minimumTime)
|
(input.duration <= input.minimumTime)
|
||||||
? Promise.reject(errorCode(60, "Starting"))
|
? Promise.reject(errorCode(60, "Starting"))
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
const errorCode = (code: number, error: string) => ({
|
|
||||||
"error-code": [code, error] as const,
|
|
||||||
});
|
|
||||||
const error = (error: string) => ({ error });
|
|
||||||
const ok = { result: null };
|
|
||||||
|
|||||||
22
types.ts
22
types.ts
@@ -32,6 +32,12 @@ export namespace ExpectedExports {
|
|||||||
config?: Config,
|
config?: Config,
|
||||||
) => Promise<ResultType<ActionResult>>;
|
) => Promise<ResultType<ActionResult>>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the entrypoint for the main container. Used to start up something like the service that the
|
||||||
|
* package represents, like running a bitcoind in a bitcoind-wrapper.
|
||||||
|
*/
|
||||||
|
export type main = (effects: Effects) => Promise<ResultType<null | void>>;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Used to reach out from the pure js runtime */
|
/** Used to reach out from the pure js runtime */
|
||||||
@@ -58,25 +64,23 @@ export type Effects = {
|
|||||||
input: { volumeId: string; path: string },
|
input: { volumeId: string; path: string },
|
||||||
): Promise<Record<string, unknown>>;
|
): Promise<Record<string, unknown>>;
|
||||||
|
|
||||||
|
|
||||||
runCommand(
|
runCommand(
|
||||||
input: {
|
input: {
|
||||||
command: string,
|
command: string;
|
||||||
args?: string[],
|
args?: string[];
|
||||||
timeoutMillis?: number
|
timeoutMillis?: number;
|
||||||
},
|
},
|
||||||
): Promise<ResultType<string>>;
|
): Promise<ResultType<string>>;
|
||||||
runDaemon(
|
runDaemon(
|
||||||
input: {
|
input: {
|
||||||
command: string,
|
command: string;
|
||||||
args?: string[],
|
args?: string[];
|
||||||
},
|
},
|
||||||
): {
|
): {
|
||||||
wait(): Promise<ResultType<string>>,
|
wait(): Promise<ResultType<string>>;
|
||||||
term(): Promise<void>
|
term(): Promise<void>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sleep(
|
sleep(
|
||||||
timeMs: number,
|
timeMs: number,
|
||||||
): Promise<null>;
|
): Promise<null>;
|
||||||
|
|||||||
6
util.ts
6
util.ts
@@ -15,3 +15,9 @@ export const exists = (
|
|||||||
effects: T.Effects,
|
effects: T.Effects,
|
||||||
props: { path: string; volumeId: string },
|
props: { path: string; volumeId: string },
|
||||||
) => effects.metadata(props).then((_) => true, (_) => false);
|
) => effects.metadata(props).then((_) => true, (_) => false);
|
||||||
|
|
||||||
|
export const errorCode = (code: number, error: string) => ({
|
||||||
|
"error-code": [code, error] as const,
|
||||||
|
});
|
||||||
|
export const error = (error: string) => ({ error });
|
||||||
|
export const ok = { result: null };
|
||||||
|
|||||||
Reference in New Issue
Block a user