Skip to content

Latest commit

 

History

History
194 lines (182 loc) · 7.72 KB

roadmap.md

File metadata and controls

194 lines (182 loc) · 7.72 KB

Roadmap

  • TypeScript compiler (uses the TS Compiler API)
  • com.adobe.air typings, including declare global d.ts
  • ts4air command
    • ts4air new --app: Create new application project
      • Look at src/tsair-testproj for a blank project example.
      • Automatically run npm install for the first time.
    • ts4air new --lib: Create new library
      • Automatically run npm install for the first time.
    • ts4air ts2swf
    • ts4air validate: runs ts2swf, but does not generate SWF. Used for validating a program.
    • ts4air doc for running TypeDoc.

Questions

SWF/ABC

actionscript-prelude

  • Re-structure the map and set iterators in com.asprelude.util so that they can be used as proper ECMAScript iterators. Maybe improve some other things too there.
  • Add WeakMap and WeakSet.

TS-to-SWF

  • 1. Merge prelude SWF
  • 2. Create some built-ins manually, like Promise.
  • 3. Compile nodes
    • Fix various parts involving ts.createProgram(). I've discovered TSConfig is handled fine.
    • If the source file is the entry point of a library (state.libEntryPoints.has(path.normalize(sourceFilePath))), compile it via compileProject; otherwise compile it as part of the current project.
    • import.meta.embedBytes: while incrementing the BinaryData id, check if it doesn't duplicate too due to merged SWFs.
  • 4. Generate SWF
    • The application's entry point .ts exports a default Sprite subclass. Add a SymbolClass with character tag ID 0 (the "main" class) and the name of that default class.
      • Report an error if either the entry point does not export a default class or that default class does not extend Sprite.

Nodes

Filter this list.

  • Uncategorized
    • ts.SyntaxKind.SourceFile
    • ts.SyntaxKind.QualifiedName
    • ts.SyntaxKind.ComputedPropertyName
    • ts.SyntaxKind.TypeParameter
    • ts.SyntaxKind.Parameter
    • ts.SyntaxKind.Decorator
    • ts.SyntaxKind.PropertySignature
    • ts.SyntaxKind.PropertyDeclaration
    • ts.SyntaxKind.MethodSignature
    • ts.SyntaxKind.MethodDeclaration
    • ts.SyntaxKind.Constructor
    • ts.SyntaxKind.GetAccessor
    • ts.SyntaxKind.SetAccessor
    • ts.SyntaxKind.CallSignature
    • ts.SyntaxKind.ConstructSignature
    • ts.SyntaxKind.IndexSignature
    • ts.SyntaxKind.TypePredicate
    • ts.SyntaxKind.TypeReference
    • ts.SyntaxKind.FunctionType
    • ts.SyntaxKind.ConstructorType
    • ts.SyntaxKind.TypeQuery
    • ts.SyntaxKind.TypeLiteral
    • ts.SyntaxKind.ArrayType
    • ts.SyntaxKind.TupleType
    • ts.SyntaxKind.OptionalType
    • ts.SyntaxKind.RestType
    • ts.SyntaxKind.UnionType
    • ts.SyntaxKind.IntersectionType
    • ts.SyntaxKind.ConditionalType
    • ts.SyntaxKind.InferType
    • ts.SyntaxKind.ParenthesizedType
    • ts.SyntaxKind.ThisType
    • ts.SyntaxKind.TypeOperator
    • ts.SyntaxKind.IndexedAccessType
    • ts.SyntaxKind.MappedType
    • ts.SyntaxKind.LiteralType
    • ts.SyntaxKind.ImportType
    • ts.SyntaxKind.ObjectBindingPattern
    • ts.SyntaxKind.ArrayBindingPattern
    • ts.SyntaxKind.BindingElement
  • Expressions
    • ts.SyntaxKind.ArrayLiteralExpression
    • ts.SyntaxKind.ObjectLiteralExpression
    • ts.SyntaxKind.PropertyAccessExpression
    • ts.SyntaxKind.ElementAccessExpression
    • ts.SyntaxKind.CallExpression
    • ts.SyntaxKind.NewExpression
    • ts.SyntaxKind.TaggedTemplateExpression
    • ts.SyntaxKind.TypeAssertionExpression
    • ts.SyntaxKind.ParenthesizedExpression
    • ts.SyntaxKind.FunctionExpression
    • ts.SyntaxKind.ArrowFunction
    • ts.SyntaxKind.DeleteExpression
    • ts.SyntaxKind.TypeOfExpression
    • ts.SyntaxKind.VoidExpression
    • ts.SyntaxKind.AwaitExpression
    • ts.SyntaxKind.PrefixUnaryExpression
    • ts.SyntaxKind.PostfixUnaryExpression
    • ts.SyntaxKind.BinaryExpression
    • ts.SyntaxKind.ConditionalExpression
    • ts.SyntaxKind.TemplateExpression
    • ts.SyntaxKind.YieldExpression
    • ts.SyntaxKind.SpreadElement
    • ts.SyntaxKind.ClassExpression
    • ts.SyntaxKind.OmittedExpression
    • ts.SyntaxKind.ExpressionWithTypeArguments
    • ts.SyntaxKind.AsExpression
    • ts.SyntaxKind.NonNullExpression
    • ts.SyntaxKind.MetaProperty
    • ts.SyntaxKind.SyntheticExpression
    • ts.SyntaxKind.TemplateSpan
    • ts.SyntaxKind.CommaListExpression
    • ts.SyntaxKind.PropertyAssignment
    • ts.SyntaxKind.ShorthandPropertyAssignment
    • ts.SyntaxKind.SpreadAssignment
    • ts.SyntaxKind.SyntheticReferenceExpression
    • ts.SyntaxKind.JsxElement
    • ts.SyntaxKind.JsxSelfClosingElement
    • ts.SyntaxKind.JsxOpeningElement
    • ts.SyntaxKind.JsxClosingElement
    • ts.SyntaxKind.JsxFragment
    • ts.SyntaxKind.JsxOpeningFragment
    • ts.SyntaxKind.JsxClosingFragment
    • ts.SyntaxKind.JsxAttribute
    • ts.SyntaxKind.JsxAttributes
    • ts.SyntaxKind.JsxSpreadAttribute
    • ts.SyntaxKind.JsxExpression
  • Statements
    • ts.SyntaxKind.SemicolonClassElement
    • ts.SyntaxKind.Block
    • ts.SyntaxKind.EmptyStatement
    • ts.SyntaxKind.VariableStatement
    • ts.SyntaxKind.ExpressionStatement
    • ts.SyntaxKind.IfStatement
    • ts.SyntaxKind.DoStatement
    • ts.SyntaxKind.WhileStatement
    • ts.SyntaxKind.ForStatement
    • ts.SyntaxKind.ForInStatement
    • ts.SyntaxKind.ForOfStatement
    • ts.SyntaxKind.ContinueStatement
    • ts.SyntaxKind.BreakStatement
    • ts.SyntaxKind.ReturnStatement
    • ts.SyntaxKind.WithStatement
    • ts.SyntaxKind.SwitchStatement
    • ts.SyntaxKind.LabeledStatement
    • ts.SyntaxKind.ThrowStatement
    • ts.SyntaxKind.TryStatement
    • ts.SyntaxKind.DebuggerStatement
    • ts.SyntaxKind.VariableDeclaration
    • ts.SyntaxKind.VariableDeclarationList
    • ts.SyntaxKind.FunctionDeclaration
    • ts.SyntaxKind.ClassDeclaration
    • ts.SyntaxKind.InterfaceDeclaration
    • ts.SyntaxKind.TypeAliasDeclaration
    • ts.SyntaxKind.EnumDeclaration
    • ts.SyntaxKind.ModuleDeclaration
    • ts.SyntaxKind.ModuleBlock
    • ts.SyntaxKind.CaseBlock
    • ts.SyntaxKind.NamespaceExportDeclaration
    • ts.SyntaxKind.ImportEqualsDeclaration
    • ts.SyntaxKind.ImportDeclaration
    • ts.SyntaxKind.ImportClause
    • ts.SyntaxKind.NamespaceImport
    • ts.SyntaxKind.NamedImports
    • ts.SyntaxKind.ImportSpecifier
    • ts.SyntaxKind.ExportAssignment
    • ts.SyntaxKind.ExportDeclaration
    • ts.SyntaxKind.NamedExports
    • ts.SyntaxKind.ExportSpecifier
    • ts.SyntaxKind.MissingDeclaration
    • ts.SyntaxKind.ExternalModuleReference
    • ts.SyntaxKind.CaseClause
    • ts.SyntaxKind.DefaultClause
    • ts.SyntaxKind.HeritageClause
    • ts.SyntaxKind.CatchClause
    • ts.SyntaxKind.EnumMember
    • ts.SyntaxKind.NotEmittedStatement