open-index/open-npm huggingface dataset:
npm package: @lsge/pgtyped-cli
Description: This package provides the `pgtyped` CLI.   The `pgtyped` CLI can work in build and watch mode.
Latest version: 2.3.1

## @pgtyped/cli

This package provides the `pgtyped` CLI.  
The `pgtyped` CLI can work in build and watch mode.

### Flags:

The CLI supports two flags:

- `-c config_file_path.json` to pass the config file path.
- `-w` to start in watch mode.

Running the CLI:

```
npx pgtyped -w -c config.json
```

### Env variables:

PgTyped supports common PostgreSQL environment variables:

- `PGHOST`
- `PGUSER`
- `PGPASSWORD`
- `PGDATABASE`
- `PGPORT`

These variables will override values provided in `config.json`.

### Config file:

Config file format (`config.json`):

```js
{
  // You can specify as many transforms as you want
  // Only TS and SQL files (modes) are supported at the moment
  "transforms": [
    {
      "mode": "sql", // SQL mode
      "include": "**/*.sql", // SQL files pattern to scan for queries
      "emitTemplate": "{{dir}}/{{name}}.queries.ts" // File name template to save generated files
    },
    {
      "mode": "ts", // TS mode
      "include": "**/action.ts", // TS file pattern to scan for queries
      "emitTemplate": "{{dir}}/{{name}}.types.ts" // File name template to save generated files
    }
  ],
  "srcDir": "./src/", // Directory to scan or watch for query files
  "failOnError": false, // Whether to fail on a file processing error and abort generation (can be omitted - default is false)
  "camelCaseColumnNames": false, // convert to camelCase column names of result interface
  "db": {
    "dbName": "testdb", // DB name
    "user": "user", // DB username
    "password": "password", // DB password (optional)
    "host": "127.0.0.1" // DB host (optional)
  }
}
```

### Generated files

By default, PgTyped saves generated files in the same folder as the source files it parses.  
This behavior can be customized using the `emitTemplate` config parameter.  
In that template, following parameters are available for interpolation: `root`, `dir`, `dir_base`, `base`, `name` and `ext`.  
For example, when parsing source/query file `/home/user/dir/file.sql`, these parameters are assigned the following values:

```
┌───────────────────────────┬────────────┐
│          dir              │    base    │
├──────┬─────────┬──────────├──────┬─────┤
│ root │         │ dir_base │ name │ ext │
"  /    home/user/    dir   / file  .sql "
└──────┴────────────────────┴──────┴─────┘
(All spaces in the "" line should be ignored. They are purely for formatting.)
```

---

This package is part of the PgTyped project.  
Refer to root [README](https://github.com/adelsz/pgtyped) for details.
npm package: @lsge/pgtyped-runtime
Description: This package provides the `sql` tagged template.   The `sql` tagged template requires a generic parameter: `<TQueryType>`. For each query PgTyped generates an interface that can be used in this parameter to type your query.
Latest version: 2.3.2

## @pgtyped/runtime

This package provides the `sql` tagged template.  
The `sql` tagged template requires a generic parameter: `<TQueryType>`.
For each query PgTyped generates an interface that can be used in this parameter to type your query.

To run a query defined with the `sql` tagged template, call the `sql.run` method.  
The `sql.run` method automatically enforces correct input `TParams` and output `TResult` types.

```js
public run: (
  params: TParams,
  dbConnection: IDatabaseConnection,
) => Promise<TResult[]>;
```

Here `dbConnection` is any object that satisifies the `IDatabaseConnection` interface. It is used to actually send the query to the DB for execution.

```
interface IDatabaseConnection {
  query: (query: string, bindings: any[]) => Promise<{ rows: any[] }>;
}
```

This is usually the `client` object created with [node-postgres](https://github.com/brianc/node-postgres), but can be any other connection of your choice.

This package is part of the pgtyped project.  
Refer to [README](https://github.com/adelsz/pgtyped) for details.
npm package: @lsge/pgtyped-wire
Description: This package implements most of the Postgres protocol for pgTyped internal use.   Refer to root [README](https://github.com/adelsz/pgtyped) for details.
Latest version: 2.2.2

### PgTyped Wire

This package implements most of the Postgres protocol for pgTyped internal use.  
Refer to root [README](https://github.com/adelsz/pgtyped) for details.
npm package: @lshay/constructs
Description: Useful constructs for AWS CDK.
Author: Luke Shay
Latest version: 0.0.6

# @lshay/constructs

Useful constructs for AWS CDK.

## Getting Started

Install using the package manager of your choice.

```sh
npm i @lshay/constructs
```

```sh
pnpm i @lshay/constructs
```

```sh
yarn add @lshay/constructs
```

# API Reference

[Docs](./docs/modules.md)
npm package: @lshay/eslint-config
Description: The eslint config I use on my projects. Automatically adds TypeScript, React, and Vitest rules if they are install.
Author: Luke Shay
Latest version: 0.3.5

# @lshay/eslint-config

The eslint config I use on my projects. Automatically adds TypeScript, React, and Vitest rules if they are install.

## Getting Started

Install using the package manager of your choice.

```
npm i -D eslint @lshay/eslint-config
```

```
pnpm i -D eslint @lshay/eslint-config
```

```
yarn add -D eslint @lshay/eslint-config
```

Create a file named `.eslintrc.cjs` with the following contents.

```js
const { createConfig } = require("@lshay/eslint-config")

module.exports = createConfig(
	{
		typescript: true,
		prettier: true,
		node: true,
	},
	{
		extends: ["@lshay/eslint-config"],
		parserOptions: {
			project: ["./tsconfig.json"],
			tsconfigRootDir: __dirname,
		},
	},
)
```
npm package: @lshay/eslint-config-flat
Description: A ESLint config generator made for TypeScript projects
Author: Luke Shay
Latest version: 0.0.7

# @lshay/eslint-config-flat

A ESLint config generator made for TypeScript projects

## Getting Started

Install using the package manager of your choice.

```
npm i -D eslint @lshay/eslint-config-flat
```

```
pnpm i -D eslint @lshay/eslint-config-flat
```

```
yarn add -D eslint @lshay/eslint-config-flat
```

Create a file named `eslint.config.js` with the following contents.

```js
import { createConfig } from "@lshay/eslint-config-flat"

export default createConfig({
	parserOptions: {
		project: "./tsconfig.json",
	},
	prettier: true,
})
```
npm package: @lshay/next-ga
Description: Adds Google Analytics to your Next.js application. For it to work, you need the environment variable `NEXT_PUBLIC_GOOGLE_ANALYTICS_ID` to be set.
Author: Luke Shay
Latest version: 0.5.4

# @lshay/next-ga

Adds Google Analytics to your Next.js application. For it to work, you need the environment variable `NEXT_PUBLIC_GOOGLE_ANALYTICS_ID` to be set.

To set up, you need `<GoogleAnalytics />` to be added to your document component in the `Head`. Then add `useAppInit()` in your app component. To record web vitals, you can export `reportWebVitals` from your app component.

## Example

`pages/_document.js`:

```javascriptreact
import Document, { Html, Head, Main, NextScript } from 'next/document';
import { GoogleAnalytics } from '@lshay/next-ga';

class MyDocument extends Document {
  render() {
    return (
      <Html>
        <Head>
          <GoogleAnalytics />
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}
```

`pages/_app.js`:

```javascriptreact
import { useAppInit, reportWebVitals } from '@lshay/next-ga';

export default function MyApp() {
  GoogleAnalytics.useAppInit();
  ...
};

export reportWebVitals;
```
npm package: @lshay/next-router
Description: Adds basic routing to Next.js API routes. Also allows for wrapping handler functions to mutate the context that is being passed in.
Author: Luke Shay
Latest version: 0.5.4

# @lshay/next-router

Adds basic routing to Next.js API routes. Also allows for wrapping handler functions to mutate the context that is being passed in.

## Example

`pages/api/hello.js`:

```javascript
import { router } from "@lshay/next-router";

const wrapper = (req, res, handler) => handler({ req, res, wrapped: true });

const get = (ctx) => ctx.res.json({ message: "Hello, World!" });

export default middleware(wrapper).get(get).handler();
```
npm package: @lshay/prettier-config
Description: The prettier config I use on my projects.
Author: Luke Shay
Latest version: 0.7.0

# @lshay/prettier-config

The prettier config I use on my projects.

## Getting Started

Install using the package manager of your choice.

```
npm i -D prettier @lshay/prettier-config
```

```
pnpm i -D prettier @lshay/prettier-config
```

```
yarn add -D prettier @lshay/prettier-config
```

Create a file named `.prettierrc.cjs` with the following contents.

```js
module.exports = {
	...require("@lshay/prettier-config"),
}
```
npm package: @lshay/tsconfig
Description: The tsconfigs I use on my projects.
Author: Luke Shay
Latest version: 0.0.2

# @lshay/tsconfig

The tsconfigs I use on my projects.

## Getting Started

Install using the package manager of your choice.

```
npm i -D @lshay/constructs
```

```
pnpm i -D @lshay/constructs
```

```
yarn add -D @lshay/constructs
```
npm package: @lshay/ui
Description: Published version of @shadcn/ui
Author: Luke Shay
Latest version: 0.1.32

# Components from [shadcn/ui](https://ui.shadcn.com/)

[![Verify](https://github.com/lukeshay/ui/actions/workflows/verify.yml/badge.svg)](https://github.com/lukeshay/ui/actions/workflows/verify.yml) [![npm version](https://badge.fury.io/js/@lshay%2Fui.svg)](https://badge.fury.io/js/@lshay%2Fui)

This packages contains the components from [shadcn/ui](https://ui.shadcn.com/). The version bumps do not correspond to the changes to the components.

## Documentation

[See our website linked here](https://lukeshay.github.io/ui/)