feat: Runtime type reflection #17

Merged
glen merged 21 commits from ts-macros-issues into main 2023-10-17 22:02:18 +00:00
3 changed files with 15 additions and 12 deletions
Showing only changes of commit 20078d2c87 - Show all commits

View File

@ -28,7 +28,7 @@
'del-cli': '5.1.0',
mkdirp: '3.0.1',
'source-map': '^0.7.4',
'ts-macros': '^2.4.1',
'ts-macros': 'github:GoogleFeud/ts-macros',
'ts-patch': '^3.0.2',
typescript: '^5.1.6',
},

View File

@ -21,8 +21,8 @@ devDependencies:
specifier: ^0.7.4
version: 0.7.4
ts-macros:
specifier: ^2.4.1
version: 2.4.1(typescript@5.1.6)
specifier: github:GoogleFeud/ts-macros
version: github.com/GoogleFeud/ts-macros/4f8c22db77e3b5840e3a2f285e30436f71c27e15(typescript@5.1.6)
ts-patch:
specifier: ^3.0.2
version: 3.0.2
@ -843,14 +843,6 @@ packages:
engines: {node: '>=12'}
dev: true
/ts-macros@2.4.1(typescript@5.1.6):
resolution: {integrity: sha512-DmrftFZ5pgM7dw8ySYcd90wGEfjp7yx9MFw/YyJHNdwKYdUb//lcy/XI/Lvg3LbrGIbjBMEj1rzuc5Kfkzvafg==}
peerDependencies:
typescript: 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x
dependencies:
typescript: 5.1.6
dev: true
/ts-patch@3.0.2:
resolution: {integrity: sha512-iTg8euqiNsNM1VDfOsVIsP0bM4kAVXU38n7TGQSkky7YQX/syh6sDPIRkvSS0HjT8ZOr0pq1h+5Le6jdB3hiJQ==}
hasBin: true
@ -905,3 +897,14 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
github.com/GoogleFeud/ts-macros/4f8c22db77e3b5840e3a2f285e30436f71c27e15(typescript@5.1.6):
resolution: {tarball: https://codeload.github.com/GoogleFeud/ts-macros/tar.gz/4f8c22db77e3b5840e3a2f285e30436f71c27e15}
id: github.com/GoogleFeud/ts-macros/4f8c22db77e3b5840e3a2f285e30436f71c27e15
name: ts-macros
version: 2.4.2
peerDependencies:
typescript: 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x
dependencies:
typescript: 5.1.6
dev: true

View File

@ -84,5 +84,5 @@ export type AliasOf<Name extends string, T> = T & {aliasOf?: Name}
// For defining implementations with type reflection
export function $implement<Impl>(name: string, expr: Impl) {
$$define!(name, expr, false, true); // Final `true` is export
$$ident!(name).reflectedType = $$typeToString!<Impl>();
$$ident!(name).reflectedType = $$typeToString!<Impl>(true, false, true);
}