/** * RTTI Transformer * * This Typescript transformer does two things: * 1. When emitDecoratorMetadata is enabled, this emits Typescript's "design:*" metadata on all syntactic * elements processed during a compilation, regardless of whether a decorator is originally present on the element. * NOTE: You may not want this, because design:* has a number of flaws. If you disable emitDecoratorMetadata this * transformer will still output the rt:* metadata items instead. * 2. Emits "rt:*" metadata on each syntactic element which describes compile-time semantics of an element, * which encodes element type, public, private, protected, abstract, readonly, async, optional, lists of * method names and property names for classes, and lists of parameter names, types, and modifiers for methods * and classes (ie constructors). * * - The "rt:f" metadata item holds a string of flags, where each character indicates the positive presence of a flag. * For the list of available flags, see src/common/flags.ts * - The "rt:i" metadata item contains an array of type references which point to interface objects representing the * interfaces found in the "implements" clause of a class * - The "rt:t" metadata item represents the "type" of an item. This is the type of a property, the return type of a method, * or Function in the case of a class (similar to "design:type" for a class). * - The "rt:p" metadata item represents parameters of a method or a class (ie constructor). It is an array of objects which * each have n (name : string), t (type : Function), and optionally f (flags : string) options. The meaning of flags is * as above. * - The "rt:P" metadata item represents an array of property names * - The "rt:m" metadata item represents an array of method names * - The "rt:SP" metadata item represents an array of static property names * - The "rt:Sm" metadata item represents an array of static method names * - The "rt:h" metadata item represents the "host" of the element. For methods, this is the class constructor * or interface token of the enclosing class/interface. * */ import * as ts from 'typescript'; export interface RttiSettings { trace?: boolean; throwOnFailure?: boolean; } declare const transformer: (program: ts.Program) => ts.TransformerFactory; export default transformer; //# sourceMappingURL=index.d.ts.map