Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2namespace Apie\TypescriptCodeBuilder;
3
4use Apie\Core\Attributes\ConcreteClasses;
5use Apie\Core\Dto\DtoInterface;
6use Apie\TypescriptCodeBuilder\Dto\ControlFlow\BlockStatement;
7use Apie\TypescriptCodeBuilder\Dto\ControlFlow\BreakStatement;
8use Apie\TypescriptCodeBuilder\Dto\ControlFlow\ContinueStatement;
9use Apie\TypescriptCodeBuilder\Dto\ControlFlow\DoWhileStatement;
10use Apie\TypescriptCodeBuilder\Dto\ControlFlow\ForInStatement;
11use Apie\TypescriptCodeBuilder\Dto\ControlFlow\ForOfStatement;
12use Apie\TypescriptCodeBuilder\Dto\ControlFlow\ForStatement;
13use Apie\TypescriptCodeBuilder\Dto\ControlFlow\GotoStatement;
14use Apie\TypescriptCodeBuilder\Dto\ControlFlow\IfStatement;
15use Apie\TypescriptCodeBuilder\Dto\ControlFlow\LabelStatement;
16use Apie\TypescriptCodeBuilder\Dto\ControlFlow\SwitchStatement;
17use Apie\TypescriptCodeBuilder\Dto\ControlFlow\WhileStatement;
18use Apie\TypescriptCodeBuilder\Dto\ExportStatement;
19use Apie\TypescriptCodeBuilder\Dto\Expressions\ArrayAccessExpression;
20use Apie\TypescriptCodeBuilder\Dto\Expressions\AsExpression;
21use Apie\TypescriptCodeBuilder\Dto\Expressions\BinaryOperationExpression;
22use Apie\TypescriptCodeBuilder\Dto\Expressions\BooleanLiteralExpression;
23use Apie\TypescriptCodeBuilder\Dto\Expressions\FunctionCallExpression;
24use Apie\TypescriptCodeBuilder\Dto\Expressions\IdentifierExpression;
25use Apie\TypescriptCodeBuilder\Dto\Expressions\NullExpression;
26use Apie\TypescriptCodeBuilder\Dto\Expressions\NumberLiteralExpression;
27use Apie\TypescriptCodeBuilder\Dto\Expressions\ObjectExpression;
28use Apie\TypescriptCodeBuilder\Dto\Expressions\ParenthesizedExpression;
29use Apie\TypescriptCodeBuilder\Dto\Expressions\PropertyAccessExpression;
30use Apie\TypescriptCodeBuilder\Dto\Expressions\StringLiteralExpression;
31use Apie\TypescriptCodeBuilder\Dto\Expressions\TernaryExpression;
32use Apie\TypescriptCodeBuilder\Dto\Expressions\TypeCastExpression;
33use Apie\TypescriptCodeBuilder\Dto\Expressions\UnaryOperationExpression;
34use Apie\TypescriptCodeBuilder\Dto\Expressions\UndefinedExpression;
35use Apie\TypescriptCodeBuilder\Dto\IIFE;
36use Apie\TypescriptCodeBuilder\Dto\ImportStatement;
37use Apie\TypescriptCodeBuilder\Dto\NamedFunction;
38use Apie\TypescriptCodeBuilder\Dto\RawJavascript;
39use Apie\TypescriptCodeBuilder\Dto\TypescriptDeclaration;
40use Apie\TypescriptCodeBuilder\Dto\VariableAssignment;
41use Apie\TypescriptCodeBuilder\Lists\JavascriptIdentifierList;
42
43#[ConcreteClasses(
44    IIFE::class,
45    ExportStatement::class,
46    ImportStatement::class,
47    TypescriptDeclaration::class,
48    RawJavascript::class,
49    NamedFunction::class,
50    VariableAssignment::class,
51    ArrayAccessExpression::class,
52    AsExpression::class,
53    BinaryOperationExpression::class,
54    BooleanLiteralExpression::class,
55    FunctionCallExpression::class,
56    IdentifierExpression::class,
57    NullExpression::class,
58    NumberLiteralExpression::class,
59    ObjectExpression::class,
60    ParenthesizedExpression::class,
61    PropertyAccessExpression::class,
62    StringLiteralExpression::class,
63    TypeCastExpression::class,
64    UndefinedExpression::class,
65    UnaryOperationExpression::class,
66    TernaryExpression::class,
67    BreakStatement::class,
68    BlockStatement::class,
69    ContinueStatement::class,
70    DoWhileStatement::class,
71    ForInStatement::class,
72    ForOfStatement::class,
73    ForStatement::class,
74    GotoStatement::class,
75    IfStatement::class,
76    LabelStatement::class,
77    SwitchStatement::class,
78    WhileStatement::class,
79)]
80interface TypescriptFileExpressionInterface extends DtoInterface
81{
82    public function toTypescript(): string;
83    public function toJavascript(): string;
84    public function providesDefinitions(bool $applyBlockScope): JavascriptIdentifierList;
85    public function needsDefinitions(): JavascriptIdentifierList;
86}