Skip to content

Commit

Permalink
feat(generator): for properties
Browse files Browse the repository at this point in the history
  • Loading branch information
Shchepotin committed Jul 13, 2024
1 parent 23ad8af commit 2e1319a
Show file tree
Hide file tree
Showing 67 changed files with 697 additions and 181 deletions.
7 changes: 3 additions & 4 deletions .hygen/generate/all-db-resource/dto/create.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
---
// Don't forget to use the class-validator decorators in the DTO properties.
// import { Allow } from 'class-validator';

export class Create<%= name %>Dto {}
export class Create<%= name %>Dto {
// Don't forget to use the class-validator decorators in the DTO properties.
}
7 changes: 3 additions & 4 deletions .hygen/generate/document-resource/dto/create.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
---
// Don't forget to use the class-validator decorators in the DTO properties.
// import { Allow } from 'class-validator';

export class Create<%= name %>Dto {}
export class Create<%= name %>Dto {
// Don't forget to use the class-validator decorators in the DTO properties.
}
7 changes: 3 additions & 4 deletions .hygen/generate/relational-resource/dto/create.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
---
// Don't forget to use the class-validator decorators in the DTO properties.
// import { Allow } from 'class-validator';

export class Create<%= name %>Dto {}
export class Create<%= name %>Dto {
// Don't forget to use the class-validator decorators in the DTO properties.
}
8 changes: 8 additions & 0 deletions .hygen/property/add-to-all-db/domain/domain.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/domain/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.ts
after: export class <%= name %> {
---

@ApiProperty()
<%= property %>: <%= type %>;
19 changes: 19 additions & 0 deletions .hygen/property/add-to-all-db/dto/01-create.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
after: export class Create<%= name %>Dto
---

<% if (isAddToDto) { -%>
@ApiProperty()
<% if (type === 'string') { -%>
@IsString()
<% } -%>
<% if (type === 'number') { -%>
@IsNumber()
<% } -%>
<% if (type === 'boolean') { -%>
@IsBoolean()
<% } -%>
<%= property %>: <%= type %>;
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: export class Create<%= name %>Dto
skip_if: "} from 'class-validator'"
---
<% if (isAddToDto) { -%>
import {
// decorators here
} from 'class-validator';
<% } -%>
9 changes: 9 additions & 0 deletions .hygen/property/add-to-all-db/dto/03-create-boolean.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsBoolean,
---
<% if (isAddToDto && type === 'boolean') { -%>
IsBoolean,
<% } -%>
9 changes: 9 additions & 0 deletions .hygen/property/add-to-all-db/dto/04-create-number.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsNumber,
---
<% if (isAddToDto && type === 'number') { -%>
IsNumber,
<% } -%>
9 changes: 9 additions & 0 deletions .hygen/property/add-to-all-db/dto/05-create-string.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsString,
---
<% if (isAddToDto && type === 'string') { -%>
IsString,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: export class Create<%= name %>Dto
skip_if: "} from '@nestjs/swagger'"
---
<% if (isAddToDto) { -%>
import {
// decorators here
} from '@nestjs/swagger';
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from '@nestjs/swagger'"
skip_if: \ApiProperty,
---
<% if (isAddToDto) { -%>
ApiProperty,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema.ts
after: export class <%= name %>SchemaClass
---

@ApiProperty()
@Prop()
<%= property %>: <%= type %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>\(\)
---
domainEntity.<%= property %> = raw.<%= property %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>SchemaClass\(\)
---
persistenceSchema.<%= property %> = domainEntity.<%= property %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity.ts
before: from \'typeorm\'
skip_if: \sColumn,
---
Column,
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity.ts
after: export class <%= name %>Entity
---

@ApiProperty()
@Column()
<%= property %>: <%= type %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>\(\)
---
domainEntity.<%= property %> = raw.<%= property %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>Entity\(\)
---
persistenceEntity.<%= property %> = domainEntity.<%= property %>;
43 changes: 43 additions & 0 deletions .hygen/property/add-to-all-db/prompt.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
module.exports = [
{
type: 'input',
name: 'name',
message: "Entity name (e.g. 'User')",
validate: (input) => {
if (!input.trim()) {
return 'Entity name is required';
}

return true;
},
format: (input) => {
return input.trim();
},
},
{
type: 'input',
name: 'property',
message: "Property name (e.g. 'firstName')",
validate: (input) => {
if (!input.trim()) {
return 'Property name is required';
}

return true;
},
format: (input) => {
return input.trim();
},
},
{
type: 'select',
name: 'type',
choices: ['string', 'number', 'boolean'],
},
{
type: 'confirm',
name: 'isAddToDto',
message: 'Add to DTO?',
initial: true,
},
];
8 changes: 8 additions & 0 deletions .hygen/property/add-to-document/domain/domain.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/domain/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.ts
after: export class <%= name %> {
---

@ApiProperty()
<%= property %>: <%= type %>;
19 changes: 19 additions & 0 deletions .hygen/property/add-to-document/dto/01-create.dto.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
after: export class Create<%= name %>Dto
---

<% if (isAddToDto) { -%>
@ApiProperty()
<% if (type === 'string') { -%>
@IsString()
<% } -%>
<% if (type === 'number') { -%>
@IsNumber()
<% } -%>
<% if (type === 'boolean') { -%>
@IsBoolean()
<% } -%>
<%= property %>: <%= type %>;
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: export class Create<%= name %>Dto
skip_if: "} from 'class-validator'"
---
<% if (isAddToDto) { -%>
import {
// decorators here
} from 'class-validator';
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsBoolean,
---
<% if (isAddToDto && type === 'boolean') { -%>
IsBoolean,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsNumber,
---
<% if (isAddToDto && type === 'number') { -%>
IsNumber,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from 'class-validator'"
skip_if: \IsString,
---
<% if (isAddToDto && type === 'string') { -%>
IsString,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: export class Create<%= name %>Dto
skip_if: "} from '@nestjs/swagger'"
---
<% if (isAddToDto) { -%>
import {
// decorators here
} from '@nestjs/swagger';
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/dto/create-<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.dto.ts
before: "} from '@nestjs/swagger'"
skip_if: \ApiProperty,
---
<% if (isAddToDto) { -%>
ApiProperty,
<% } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema.ts
after: export class <%= name %>SchemaClass
---

@ApiProperty()
@Prop()
<%= property %>: <%= type %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>\(\)
---
domainEntity.<%= property %> = raw.<%= property %>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
inject: true
to: src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/mappers/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.mapper.ts
after: new <%= name %>SchemaClass\(\)
---
persistenceSchema.<%= property %> = domainEntity.<%= property %>;
Loading

0 comments on commit 2e1319a

Please sign in to comment.