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
64d004d3
Commit
64d004d3
authored
Jul 14, 2022
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
catchup typeorm thing
parent
7ad5408a
Pipeline
#14518
passed with stages
in 1 minute and 54 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
23 deletions
+47
-23
things/nest-typeorm/src/dto/ReturnMessage.dto.ts
things/nest-typeorm/src/dto/ReturnMessage.dto.ts
+47
-23
No files found.
things/nest-typeorm/src/dto/ReturnMessage.dto.ts
View file @
64d004d3
...
...
@@ -55,32 +55,51 @@ export class BlankPaginatedReturnMessageDto
}
}
export
class
ReturnMessageDto
<
T
>
extends
BlankReturnMessageDto
implements
ReturnMessage
<
T
>
{
@
ApiProperty
({
description
:
'
返回内容
'
})
data
?:
T
;
constructor
(
statusCode
:
number
,
message
?:
string
,
data
?:
T
)
{
super
(
statusCode
,
message
);
this
.
data
=
data
;
}
type
AnyClass
=
new
(...
args
:
any
[])
=>
any
;
type
ClassOrArray
=
AnyClass
|
[
AnyClass
];
type
TypeFromClass
<
T
>
=
T
extends
new
(...
args
:
any
[])
=>
infer
U
?
U
:
never
;
export
type
ParseType
<
T
extends
ClassOrArray
>
=
T
extends
[
infer
U
]
?
TypeFromClass
<
U
>
[]
:
TypeFromClass
<
T
>
;
function
getClass
(
o
:
ClassOrArray
)
{
return
o
instanceof
Array
?
o
[
0
]
:
o
;
}
export
class
PaginatedReturnMessageDto
<
T
>
extends
BlankPaginatedReturnMessageDto
implements
PageSettingsWise
{
@
ApiProperty
({
description
:
'
返回内容
'
})
data
:
T
[];
constructor
(
statusCode
:
number
,
message
:
string
,
data
:
T
[],
total
:
number
,
pageSettings
:
PageSettingsWise
,
)
{
super
(
statusCode
,
message
,
total
,
pageSettings
);
this
.
data
=
data
;
export
function
ReturnMessageDto
<
T
extends
ClassOrArray
>
(
type
:
T
)
{
const
cl
=
class
SpecificReturnMessage
extends
BlankReturnMessageDto
{
data
?:
ParseType
<
T
>
;
constructor
(
statusCode
:
number
,
message
?:
string
,
data
?:
ParseType
<
T
>
)
{
super
(
statusCode
,
message
);
this
.
data
=
data
;
}
};
ApiProperty
({
description
:
'
返回数据
'
,
type
})(
cl
.
prototype
,
'
data
'
);
Object
.
defineProperty
(
cl
,
'
name
'
,
{
value
:
`
${
getClass
(
type
).
name
}
ReturnMessageDto`
,
});
return
cl
;
}
export
function
PaginatedReturnMessageDto
<
T
extends
AnyClass
>
(
type
:
T
)
{
const
cl
=
class
SpecificPaginatedReturnMessageDto
extends
BlankPaginatedReturnMessageDto
implements
PageSettingsWise
{
data
?:
TypeFromClass
<
T
>
[];
constructor
(
statusCode
:
number
,
message
:
string
,
data
:
TypeFromClass
<
T
>
[],
total
:
number
,
pageSettings
:
PageSettingsWise
,
)
{
super
(
statusCode
,
message
,
total
,
pageSettings
);
this
.
data
=
data
;
}
}
ApiProperty
({
description
:
'
返回数据
'
,
type
:
[
type
]
})(
cl
.
prototype
,
'
data
'
);
Object
.
defineProperty
(
cl
,
'
name
'
,
{
value
:
`
${
getClass
(
type
).
name
}
PaginatedReturnMessageDto`
,
});
return
cl
;
}
export
class
StringReturnMessageDto
...
...
@@ -88,4 +107,9 @@ export class StringReturnMessageDto
implements
ReturnMessage
<
string
>
{
@
ApiProperty
({
description
:
'
返回内容
'
})
data
?:
string
;
constructor
(
statusCode
:
number
,
message
?:
string
,
data
?:
string
)
{
super
(
statusCode
,
message
);
this
.
data
=
data
;
}
}
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