New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

mysql-typebox

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mysql-typebox

Generate Typebox interfaces from MySQL database

latest
npmnpm
Version
2.0.2
Version published
Maintainers
1
Created
Source

mysql-typebox

Generate Typebox interfaces from MySQL database

Installation

Install mysql-typebox with npm

npm install mysql-typebox --save-dev

Usage/Examples

Create a file named mysql-typebox.json and fill it as follows (adjust to your needs):

{
  "host": "127.0.0.1",
  "port": 3306,
  "user": "root",
  "password": "secret",
  "database": "myapp"
}

Create User table:

CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `profile_picture` varchar(255) DEFAULT NULL,
  `role` enum('admin','user') NOT NULL,
  PRIMARY KEY (`id`)
);

Then run the command:

npx mysql-typebox

The above command will create a user.ts file with the following contents:

import { Type } from '@sinclair/typebox'
import type { Static } from '@sinclair/typebox'

export const user = Type.Object({
  id: Type.Number(),
  name: Type.String(),
  username: Type.String(),
  password: Type.String(),
  profile_picture: Type.Union([Type.String(), Type.Null()]),
  role: Type.Unsafe<'admin' | 'user'>({ type: 'string', enum: ['admin', 'user'] }),
})

export type userType = Static<typeof user>

Config

mysql-typebox.json

{
  "host": "127.0.0.1",
  "port": 3306,
  "user": "root",
  "password": "secret",
  "database": "myapp",
  "tables": ["User", "Log"],
  "ignore": ["Log"],
  "folder": "@typebox",
  "suffix": "table",
  "camelCase": false,
  "nullish": false,
  "requiredString": false
}
OptionDescription
tablesFilter the tables to include only those specified.
ignoreFilter the tables to exclude those specified.
folderSpecify the output directory.
suffixSuffix to the name of a generated file. (eg: user.table.ts)
camelCaseConvert all table names and their properties to camelcase. (eg: profile_picture becomes profilePicture)
nullishSet schema as nullish. Nullish schemas will accept both undefined and null
requiredStringAdd minLength: 1 for string schema

FAQs

Package last updated on 28 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts