# @zcong/ts-mongoose-code-generator

> generate ts model types from mongoose schema

Latest version **2.0.0** (published 2021-09-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install @zcong/ts-mongoose-code-generator
pnpm add @zcong/ts-mongoose-code-generator
yarn add @zcong/ts-mongoose-code-generator
bun add @zcong/ts-mongoose-code-generator
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2021-09-16 |
| First published | 2019-09-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 57.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | zcong1993 |
| Maintainers | zcong |
| Keywords | mongoose, typescript, model, generator, schema |

## Links

- npm: https://www.npmjs.com/package/@zcong/ts-mongoose-code-generator
- npm.io page: https://npm.io/package/@zcong/ts-mongoose-code-generator

## Dependencies (3)

- [ts-morph](https://npm.io/package/ts-morph.md) ^7.1.0
- [camelcase](https://npm.io/package/camelcase.md) ^6.0.0
- [@zcong/mongoose-schema-parser](https://npm.io/package/@zcong/mongoose-schema-parser.md) ^0.5.0

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [@temporal-architect/claude-plugin](https://npm.io/package/@temporal-architect/claude-plugin.md) — 335 weekly downloads

## Recent versions

- 2.0.0 (latest) — 2021-09-16
- 2.0.0-beta.0 (beta) — 2021-09-01
- 1.3.1 — 2020-08-19
- 1.3.0 — 2020-06-17
- 1.2.0 — 2020-06-03
- 1.1.6 — 2020-06-01
- 1.1.5 — 2020-06-01
- 1.1.4 — 2020-05-30
- 1.1.3 — 2020-05-30
- 1.1.2 — 2020-05-30
- 1.1.1 — 2020-05-30
- 1.1.0 — 2020-05-30
- 1.0.1 — 2020-05-30
- 1.0.0 — 2020-05-30
- 0.9.0 — 2020-05-30
- … 22 more at https://npm.io/package/@zcong/ts-mongoose-code-generator/versions

## README

# ts-mongoose-code-generator

[![NPM version](https://img.shields.io/npm/v/@zcong/ts-mongoose-code-generator.svg?style=flat)](https://npmjs.com/package/@zcong/ts-mongoose-code-generator) [![NPM downloads](https://img.shields.io/npm/dm/@zcong/ts-mongoose-code-generator.svg?style=flat)](https://npmjs.com/package/@zcong/ts-mongoose-code-generator) [![CircleCI](https://circleci.com/gh/zcong1993/ts-mongoose-code-generator/tree/master.svg?style=shield)](https://circleci.com/gh/zcong1993/ts-mongoose-code-generator/tree/master) [![codecov](https://codecov.io/gh/zcong1993/ts-mongoose-code-generator/branch/master/graph/badge.svg)](https://codecov.io/gh/zcong1993/ts-mongoose-code-generator)

> generate ts model types from mongoose schema

## Install

```bash
$ yarn add @zcong/ts-mongoose-code-generator
```

## Usage

### modelGenerator

```ts
import { ModelGenerator } from '@zcong/ts-mongoose-code-generator'

const testSchema = new Schema({
  name: String,
  age: {
    type: Number
  },
  requiredName: {
    type: String,
    required: true
  }
}

// useInterface: use class or interface as type declaration
const dtoGen = new ModelGenerator({
  filename: `${__dirname}/modelGen.ts`,
  useInterface: true, // use interface type or class type
  arrayStyle: 'squareBrackets', // arrayStyle squareBrackets(T[]) or generic(Array<T>)
  stringEnumUseUnionType: true, // if set true, String type with enum field ['test1', 'test2'] will be type `'test1' | 'test2'`
})
dtoGen.generateModelBySchema(testSchema, 'Test')
dtoGen.getFile().saveSync() // save generated code as file
dtoGen.getGeneratedCode() // get generated code content

// export interface TestModel {
//   name?: string;
//   age?: number;
//   requiredName: string;
// }
```

## License

MIT &copy; zcong1993

---
_Source: https://npm.io/package/@zcong/ts-mongoose-code-generator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
