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
2de6b4b9
Commit
2de6b4b9
authored
Dec 02, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add getMetadataFromDecorator
parent
d401ecb5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
58 additions
and
7 deletions
+58
-7
.npmignore
.npmignore
+2
-1
src/def/decorator-types.ts
src/def/decorator-types.ts
+9
-0
src/def/index.ts
src/def/index.ts
+1
-0
src/reflector.ts
src/reflector.ts
+20
-1
src/setter.ts
src/setter.ts
+1
-5
tests/reflect.spec.ts
tests/reflect.spec.ts
+25
-0
No files found.
.npmignore
View file @
2de6b4b9
...
...
@@ -10,4 +10,5 @@ Dockerfile
/dist/test
/src
/tests
/dist/tests
\ No newline at end of file
/dist/tests
/build.js
src/def/decorator-types.ts
0 → 100644
View file @
2de6b4b9
export
type
AllDecorators
=
MethodDecorator
&
ClassDecorator
&
PropertyDecorator
;
export
type
AnyDecorators
=
|
MethodDecorator
|
ClassDecorator
|
PropertyDecorator
|
ParameterDecorator
;
src/def/index.ts
View file @
2de6b4b9
export
*
from
'
./interfaces
'
;
export
*
from
'
./decorator-types
'
;
src/reflector.ts
View file @
2de6b4b9
import
'
reflect-metadata
'
;
import
{
ArrayValue
,
GenericMap
,
Key
,
MapValue
,
StringDict
}
from
'
./def
'
;
import
{
AnyDecorators
,
ArrayValue
,
GenericMap
,
Key
,
MapValue
,
StringDict
,
}
from
'
./def
'
;
import
{
getClass
}
from
'
./utility/utility
'
;
export
class
Reflector
<
M
extends
StringDict
,
AM
extends
StringDict
>
{
...
...
@@ -41,4 +48,16 @@ export class Reflector<M extends StringDict, AM extends StringDict> {
...
valueFromProperty
,
]
as
ArrayValue
<
AM
,
K
>
;
}
getMetadataFromDecorator
<
K
extends
Key
<
GenericMap
<
M
,
AM
>>>
(
dec
:
AnyDecorators
,
metadataKey
:
K
,
):
MapValue
<
M
,
AM
,
K
>
{
const
_dec
=
dec
as
PropertyDecorator
;
class
TempClass
{}
const
propertyKey
=
'
_temp_property_key_
'
+
Math
.
random
().
toString
(
16
).
slice
(
2
);
_dec
(
TempClass
.
prototype
,
propertyKey
);
return
this
.
get
(
metadataKey
,
TempClass
,
propertyKey
);
}
}
src/setter.ts
View file @
2de6b4b9
import
'
reflect-metadata
'
;
import
{
ArrayValueMap
,
GenericMap
,
Key
,
MergeKey
,
StringDict
}
from
'
./def
'
;
import
{
A
llDecorators
,
A
rrayValueMap
,
GenericMap
,
Key
,
MergeKey
,
StringDict
}
from
'
./def
'
;
import
{
getClass
}
from
'
./utility/utility
'
;
export
type
AllDecorators
=
MethodDecorator
&
ClassDecorator
&
PropertyDecorator
;
export
class
MetadataSetter
<
M
extends
StringDict
,
AM
extends
StringDict
>
{
private
getMetadataInDecorator
<
K
extends
MergeKey
<
M
,
AM
>
,
...
...
tests/reflect.spec.ts
View file @
2de6b4b9
...
...
@@ -212,4 +212,29 @@ describe('Reflector', () => {
expect
(
reflector
.
get
(
'
bar
'
,
A
,
'
staticMethod
'
)).
toStrictEqual
([
5
,
6
]);
expect
(
reflector
.
get
(
'
bar
'
,
a
,
'
staticMethod
'
)).
toStrictEqual
([
5
,
6
]);
});
it
(
'
should get metadata from decorator
'
,
()
=>
{
const
classDec
:
ClassDecorator
=
Metadata
.
set
(
'
foo
'
,
'
class-decorator
'
);
const
propDec
:
PropertyDecorator
=
Metadata
.
set
(
'
foo
'
,
'
property-decorator
'
,
);
const
methodDec
:
MethodDecorator
=
Metadata
.
set
(
'
foo
'
,
'
method-decorator
'
);
const
transDec
=
Metadata
.
append
(
'
bar
'
,
444
);
expect
(
reflector
.
getMetadataFromDecorator
(
classDec
,
'
foo
'
)).
toEqual
(
'
class-decorator
'
,
);
expect
(
reflector
.
getMetadataFromDecorator
(
propDec
,
'
foo
'
)).
toEqual
(
'
property-decorator
'
,
);
expect
(
reflector
.
getMetadataFromDecorator
(
methodDec
,
'
foo
'
)).
toEqual
(
'
method-decorator
'
,
);
expect
(
reflector
.
getMetadataFromDecorator
(
transDec
,
'
bar
'
)).
toEqual
([
444
]);
});
});
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