0.0.19 • Published 4 months ago

@standev2001/db_connection v0.0.19

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Project Name

DB_Connection

Overview

This is a project that makes it easy create paths for your D1Database api. It is written in TypeScript and compiled to JavaScript.

Table of contents

Requirements

The following software is required to be installed on your system:

Installation

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

Usage

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 });
  },
};

Head Function: pathApi

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.

Example

return await pathApi<BodyGame>(env.DB, "games", pathname, body);

Parameters

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 use getBody function from /dist/utils see usage)

Importable functions/types

  • 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)

Distribution

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)

Contributing

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.

MIT License

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.

0.0.19

4 months ago

0.0.18

4 months ago

0.0.17

4 months ago

0.0.16

4 months ago

0.0.15

4 months ago

0.0.13

4 months ago

0.0.12

4 months ago

0.0.11

4 months ago

0.0.10

4 months ago

0.0.9

4 months ago

0.0.8

4 months ago

0.0.7

4 months ago

0.0.6

4 months ago

0.0.5

4 months ago

0.0.4

4 months ago

0.0.3

4 months ago

0.0.2

4 months ago

0.0.1

4 months ago