Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
I
init-things
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
init-things
Commits
b575540d
Commit
b575540d
authored
Nov 22, 2021
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates
parent
822a50a5
Pipeline
#7076
passed with stages
in 1 minute and 20 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
3 deletions
+35
-3
things/nest-typeorm/src/entities/decorators/base.ts
things/nest-typeorm/src/entities/decorators/base.ts
+35
-3
No files found.
things/nest-typeorm/src/entities/decorators/base.ts
View file @
b575540d
...
...
@@ -5,11 +5,14 @@ import { ColumnCommonOptions } from 'typeorm/decorator/options/ColumnCommonOptio
import
{
ColumnEnumOptions
}
from
'
typeorm/decorator/options/ColumnEnumOptions
'
;
import
{
IsEnum
,
IsInt
,
IsNotEmpty
,
IsOptional
,
IsString
,
ValidateIf
,
Min
,
}
from
'
class-validator
'
;
import
{
ColumnWithWidthOptions
}
from
'
typeorm/decorator/options/ColumnWithWidthOptions
'
;
import
{
BigintTransformer
}
from
'
../utility/bigint-transform
'
;
export
function
MergePropertyDecorators
(
decs
:
PropertyDecorator
[],
...
...
@@ -36,14 +39,14 @@ export const StringColumn = (
Column
(
'
varchar
'
,
{
length
,
default
:
defaultValue
,
nullable
:
!
required
&&
!
defaultValue
,
nullable
:
!
required
&&
defaultValue
==
null
,
...
columnExtras
,
}),
ApiProperty
({
type
:
String
,
description
,
default
:
defaultValue
,
required
:
required
&&
!
defaultValue
,
required
:
required
&&
defaultValue
==
null
,
...
propertyExtras
,
}),
...(
required
?
[]
:
[
IsOptional
()]),
...
...
@@ -51,6 +54,35 @@ export const StringColumn = (
IsNotEmpty
(),
]);
export
const
IntColumn
=
(
type
:
'
int
'
|
'
smallint
'
|
'
bigint
'
|
'
tinyint
'
=
'
int
'
,
unsigned
=
false
,
description
=
'
unknown
'
,
defaultValue
?:
number
,
required
=
false
,
columnExtras
:
ColumnCommonOptions
&
ColumnWithWidthOptions
=
{},
propertyExtras
:
ApiPropertyOptions
=
{},
)
=>
MergePropertyDecorators
([
Column
(
type
,
{
default
:
defaultValue
,
nullable
:
!
required
&&
defaultValue
==
null
,
unsigned
,
...(
type
===
'
bigint
'
?
{
transformer
:
new
BigintTransformer
()
}
:
{}),
...
columnExtras
,
}),
ApiProperty
({
type
:
Number
,
description
,
default
:
defaultValue
,
required
:
required
&&
defaultValue
==
null
,
...
propertyExtras
,
}),
...(
required
?
[]
:
[
IsOptional
()]),
IsInt
(),
...(
unsigned
?
[
Min
(
0
)]
:
[]),
]);
export
const
EnumColumn
=
<
T
>
(
targetEnum
:
Record
<
string
,
T
>
,
description
=
'
unknown
'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment