Reflection util
npm install @azera/reflecttypescript
import {isCallable} from "@azera/reflect";isCallable(function () {}); // true
isCallable(class {}); // false
`$3
`typescript
import {isClass} from "@azera/reflect";isClass(function () {}); // false
isClass(class {}); // true
`$3
`typescript
import {isMethod} from "@azera/reflect";class Console {
static print() {}
}
isMethod(Console.print); // true
isMethod(function () {}); // false
isMethod( name => null ); // false
iisMethod( class {} ); // false
`$3
`typescript
import {getParameters} from "@azera/reflect";getParameters( name =>
Hello ${name} ); // [ 'name' ]
getParameters( (first, last) => Hello ${first} ${last} ); // [ 'first', 'last' ]
getParameters( function ( options ) {} ); // [ 'options' ]
getParameters(class App {
constructor( version ) {}
}); // [ 'version' ]getParameters(function ({ name, age }) {}); // [ 'p0' ]
`$3
`typescript
import {reflect} from "@azera/reflect";console.log( reflect(class Console {
constructor(version) {}
}) );
`
Output :
`json
{
name: 'Console',
isClass: true,
isFunction: false,
isAnonymous: false,
isArrow: false,
parameters: [ 'version' ],
toString: 'class Console {\r\n constructor(version) { }\r\n }'
}
``