DB_Connection
This is a project that makes it easy create paths for your D1Database api. It is written in TypeScript and compiled to JavaScript.
The following software is required to be installed on your system:
It is recommended to install this project using npm, pnpm or yarn.
# Possible commands
npm install @standev2001/db_connection
pnpm add @standev2001/db_connection
yarn add @standev2001/db_connection
Example of index.ts file.
import { pathApi } from "@standev2001/db_connection";
import { getBody, jsonError } from "@standev2001/db_connection/dist/utils";
// The body properties for the games table.
type BodyGame = {
name: string;
description: string;
image: string;
};
export interface Env {
DB: D1Database;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const { pathname } = new URL(request.url);
pathname.toLowerCase();
// Get the body of the request.
const body = await getBody(request);
if (body === jsonError) {
return Response.json({ error: jsonError });
}
// Check if the path is a game link.
const gameLink = pathname.startsWith("/games");
if (gameLink) {
// Go to the games path and return the response.
return await pathApi<BodyGame>(env.DB, "games", pathname, body);
}
return new Response(`Not found: ${request.url}`, { status: 404 });
},
};
The pathApi function is a function that creates a path for your D1Database api.
This will return a response from the database that you can return from your fetch function in your worker.
return await pathApi<BodyGame>(env.DB, "games", pathname, body);
async function pathApi<T>(db, table, pathname, body);
db
- The D1Database instance from the env.table
- The table name. (must be the same as the table name in the database)pathname
- The pathname of the request:const { pathname } = new URL(request.url);
body
- The body of the request. (best to usegetBody
function from/dist/utils
see usage)
pathApi
- A function that creates a path for your D1Database api.Column
- A type that represents a column in a table. (from/dist/types
)getBody
- A function that gets the body of a request. (from/dist/utils
)jsonError
- A string that represents the given body is not json. (from /dist/utils)getBodyFromTable
- A function that gets the body the requested database table. (from/dist/utils
)getTablesInfo
- A function that gets the tables info from the database. (from/dist/utils
)
This project is written in TypeScript and compiled to JavaScript. It is owned by StanDev2001 and can be found on npm.
People can install this project using npm, pnpm or yarn. (see installation)
If you want to contribute to this project, you can fork this project and make a pull request. See GitHub Docs for more information.
You can also make an issue if you have any problems or suggestions. See GitHub Docs for more information.
This project is licensed under the MIT License. So you can use/update/edit this project for any purpose you want, but you can't hold the author liable.