type fixes

This commit is contained in:
Ishaan Dey
2024-05-23 23:52:30 -07:00
parent 1528ea5257
commit 30e1c39d6c
7 changed files with 109 additions and 103 deletions

View File

@ -92,7 +92,7 @@ export default {
return new Response("You reached the maximum # of sandboxes.", { status: 400 });
}
const sb = await db.insert(sandbox).values({ type, name, userId, visibility }).returning().get();
const sb = await db.insert(sandbox).values({ type, name, userId, visibility, createdAt: new Date() }).returning().get();
const initStorageRequest = new Request("https://storage.ishaan1013.workers.dev/api/init", {
method: "POST",

View File

@ -343,6 +343,7 @@ io.on("connection", async (socket) => {
const onExit = pty.onExit((code) => console.log("exit :(", code));
pty.write("clear\r");
pty.write("export PS1='> '\r");
terminals[id] = {
terminal: pty,
@ -457,7 +458,8 @@ io.on("connection", async (socket) => {
io.fetchSockets().then(async (sockets) => {
if (sockets.length === 0) {
console.log("Closing server due to inactivity.");
// const res = await stopServer(data.sandboxId, data.userId);
const res = await stopServer(data.sandboxId);
console.log("Server stopped", res);
}
});
}, 20000);

View File

@ -1,68 +1,70 @@
// DB Types
export type User = {
id: string
name: string
email: string
generations: number
sandbox: Sandbox[]
usersToSandboxes: UsersToSandboxes[]
}
id: string;
name: string;
email: string;
generations: number;
sandbox: Sandbox[];
usersToSandboxes: UsersToSandboxes[];
};
export type Sandbox = {
id: string
name: string
type: "react" | "node"
visibility: "public" | "private"
userId: string
usersToSandboxes: UsersToSandboxes[]
}
id: string;
name: string;
type: "react" | "node";
visibility: "public" | "private";
createdAt: Date;
userId: string;
usersToSandboxes: UsersToSandboxes[];
};
export type UsersToSandboxes = {
userId: string
sandboxId: string
}
userId: string;
sandboxId: string;
sharedOn: Date;
};
export type TFolder = {
id: string
type: "folder"
name: string
children: (TFile | TFolder)[]
}
id: string;
type: "folder";
name: string;
children: (TFile | TFolder)[];
};
export type TFile = {
id: string
type: "file"
name: string
}
id: string;
type: "file";
name: string;
};
export type TFileData = {
id: string
data: string
}
id: string;
data: string;
};
export type R2Files = {
objects: R2FileData[]
truncated: boolean
delimitedPrefixes: any[]
}
objects: R2FileData[];
truncated: boolean;
delimitedPrefixes: any[];
};
export type R2FileData = {
storageClass: string
uploaded: string
checksums: any
httpEtag: string
etag: string
size: number
version: string
key: string
}
storageClass: string;
uploaded: string;
checksums: any;
httpEtag: string;
etag: string;
size: number;
version: string;
key: string;
};
export type R2FileBody = R2FileData & {
body: ReadableStream
bodyUsed: boolean
arrayBuffer: Promise<ArrayBuffer>
text: Promise<string>
json: Promise<any>
blob: Promise<Blob>
}
body: ReadableStream;
bodyUsed: boolean;
arrayBuffer: Promise<ArrayBuffer>;
text: Promise<string>;
json: Promise<any>;
blob: Promise<Blob>;
};

View File

@ -179,14 +179,14 @@ export const getProjectSize = async (id: string) => {
export const stopServer = async (service: string) => {
const command = new DeleteServiceCommand({
cluster: "Sandbox",
cluster: process.env.AWS_ECS_CLUSTER!,
service,
force: true,
});
try {
const response = await client.send(command);
console.log("Stopped server:", response);
return response;
} catch (error) {
console.error("Error stopping server:", error);
}