Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
T
typed-reflector
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
3rdeye
typed-reflector
Commits
e3acddce
Commit
e3acddce
authored
Nov 14, 2021
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix class problem
parent
607cc006
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
12 deletions
+18
-12
src/reflector.ts
src/reflector.ts
+10
-3
src/setter.ts
src/setter.ts
+8
-9
No files found.
src/reflector.ts
View file @
e3acddce
...
...
@@ -37,10 +37,17 @@ export class Reflector<M extends StringDict, AM extends StringDict> {
metadataKey
:
K
,
instance
:
I
,
key
:
keyof
I
&
(
string
|
symbol
),
alternate
:
any
=
instance
,
alternate
:
any
,
):
ArrayValue
<
AM
,
K
>
{
const
valueFromClass
=
this
.
getArray
(
metadataKey
,
alternate
);
const
valueFromClass
=
this
.
getArray
(
metadataKey
,
instance
);
const
valueFromAlternate
=
alternate
?
this
.
getArray
(
metadataKey
,
alternate
)
:
[];
const
valueFromProperty
=
this
.
getArray
(
metadataKey
,
instance
,
key
);
return
[...
valueFromClass
,
...
valueFromProperty
]
as
ArrayValue
<
AM
,
K
>
;
return
[
...
valueFromClass
,
...
valueFromAlternate
,
...
valueFromProperty
,
]
as
ArrayValue
<
AM
,
K
>
;
}
}
src/setter.ts
View file @
e3acddce
...
...
@@ -10,11 +10,10 @@ export class MetadataSetter<M extends StringDict, AM extends StringDict> {
K
extends
MergeKey
<
M
,
AM
>
,
GM
extends
Record
<
MergeKey
<
M
,
AM
>
,
any
>
=
GenericMap
<
M
,
AM
>
>
(
metaKey
:
K
,
target
:
any
,
key
?:
any
):
GM
[
K
]
{
const
targetClass
=
target
.
constructor
;
if
(
key
)
{
return
Reflect
.
getMetadata
(
metaKey
,
target
Class
,
key
);
return
Reflect
.
getMetadata
(
metaKey
,
target
,
key
);
}
else
{
return
Reflect
.
getMetadata
(
metaKey
,
target
Class
);
return
Reflect
.
getMetadata
(
metaKey
,
target
);
}
}
...
...
@@ -22,11 +21,10 @@ export class MetadataSetter<M extends StringDict, AM extends StringDict> {
K
extends
MergeKey
<
M
,
AM
>
,
GM
extends
Record
<
MergeKey
<
M
,
AM
>
,
any
>
=
GenericMap
<
M
,
AM
>
>
(
metaKey
:
K
,
value
:
GM
[
K
],
target
:
any
,
key
?:
any
)
{
const
targetClass
=
target
.
constructor
;
if
(
key
)
{
return
Reflect
.
defineMetadata
(
metaKey
,
value
,
target
Class
,
key
);
return
Reflect
.
defineMetadata
(
metaKey
,
value
,
target
,
key
);
}
else
{
return
Reflect
.
defineMetadata
(
metaKey
,
value
,
target
Class
);
return
Reflect
.
defineMetadata
(
metaKey
,
value
,
target
);
}
}
...
...
@@ -40,16 +38,17 @@ export class MetadataSetter<M extends StringDict, AM extends StringDict> {
keysIndexMeta
?:
IK
,
):
AllDecorators
{
return
(
target
:
any
,
key
?:
any
,
descriptor
?:
any
)
=>
{
const
targetClass
=
!
key
&&
!
descriptor
?
target
:
target
.
constructor
;
const
oldValue
=
this
.
getMetadataInDecorator
<
K
,
GM
>
(
metadataKey
,
target
,
target
Class
,
key
,
);
const
newValue
=
metadataValueFun
(
oldValue
);
this
.
setMetadataInDecorator
(
metadataKey
,
newValue
,
target
,
key
);
this
.
setMetadataInDecorator
(
metadataKey
,
newValue
,
target
Class
,
key
);
if
(
keysIndexMeta
)
{
const
keysDec
=
this
.
append
<
IK
,
any
>
(
keysIndexMeta
,
key
);
keysDec
(
target
);
keysDec
(
target
Class
);
}
if
(
descriptor
)
{
return
descriptor
;
...
...
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