Skip to content

Latest commit

 

History

History
172 lines (142 loc) · 9.49 KB

Aurelia-TypeScript.md

File metadata and controls

172 lines (142 loc) · 9.49 KB

Aurelia-TypeScript

Table of Contents

  1. TODO
  2. Plan
  3. <Repo>.d.ts files
  4. Code Comments
  5. framework.d.ts Aggregate
  6. aurelia.d.ts Aggregate
  7. external .d.ts files
  8. IDE Tooling
  9. External .d.ts Files
  10. Coverage
  11. dependency-injection
  12. router
  13. metadata
  14. http-client
  15. framework
  16. Behaviors (Decorators)
  17. Repos & Classes
  18. Dependency Injection

TODO

  1. Update to Latest Aurelia repos
  2. ✅ create release for aurelia-typescript
  3. ✅ add aurelia-loader to packages in main-config.js
  4. rebundle
  5. <import> ==> <require>
  6. aurelia-main ==> aurelia-app
  7. start testing
  8. incorporate colin dembovsky aurelia.d.ts changes
  9. Gulp-TypeScript aurelia-ts spike
  10. ✅ Install Gulp-TypeScript
  11. ✅ Configure Gulp-TypeScript Version
  12. ✅ Configure Gulp-TypeScript Build
  13. ✅ Run it - generate compile output in output-gulp
  14. ✅ Inspect files
  15. problem: 5. gulp-typescript doesn't generate ES6 .ts files 6. gulp-typescript doesn't generate proper index.d.ts files
  16. Document process
  17. Atom / Atom-TypeScript AureliaTS spike
  18. resolve missing lib types (look for [") 15. lib.core.es6.d.ts 16. lib.es6.d.ts 17. lib.dom.d.ts
  19. Create Aurelia TypeScript Plan using spike results
  20. Test if code comments in typescript --> intellisense
  21. Document Current Coverage
  22. Document Missing Coverage in DI, Router, Behaviors (Decorators), and HTTP Client
  23. Create .d.ts files & update code comments
  24. Create unit tests
  25. create samples
  26. deploy samples to gh pages
  27. document samples
  28. Create aurelia-framework.d.ts aggregate
  29. Create aurelia.d.ts aggregate
  30. Plan series of TypeScript blog posts

Plan

<Repo>.d.ts Files

Code Comments

framework.d.ts Aggregate

aurelia.d.ts Aggregate

External .d.ts Files

  1. Microsoft TypeScript ES6 .d.ts

IDE Tooling

  1. WebStorm IDE
  2. Built-in TypeScript
  3. WebStorm Instruction Page
  4. Sublime Text IDE
  5. Extension: Better TypeScript
  6. Sublime Instruction Page
  7. Atom IDE
  8. Extension: ATOM TypeScript
  9. Atom Instruction Page
  10. Visual Studio 2013 IDE
  11. TypeScript Install
  12. VS2013 Instruction Page

Coverage

organizing the typescript todos. initial target aurelia libs are: DI, router, behaviors (decorators) and http

Dependency-Injection

Class Member code doc'd .d.ts cr. unit test samp. cr. samp. depl. samp. doc'd
Container get 📝 📝 📝 📝 📝 📝
getAll 📝 📝 📝 📝 📝 📝
getOrCreateEntry 📝 📝 📝 📝 📝 📝
getOrCreateConstructorInfo 📝 📝 📝 📝 📝 📝
createConstructorInfo 📝 📝 📝 📝 📝 📝
unregister 📝 📝 📝 📝 📝 📝
registerInstance 📝 📝 📝 📝 📝 📝
registerSingleton 📝 📝 📝 📝 📝 📝
registerTransient 📝 📝 📝 📝 📝 📝
registerInstance 📝 📝 📝 📝 📝 📝
autoRegister 📝 📝 📝 📝 📝 📝
autoRegisterAll 📝 📝 📝 📝 📝 📝
hasHandler 📝 📝 📝 📝 📝 📝
invoke 📝 📝 📝 📝 📝 📝
registerHandler 📝 📝 📝 📝 📝 📝
supportAtScript 📝 📝 📝 📝 📝 📝
addParameterInfoLocator 📝 📝 📝 📝 📝 📝
createChild 📝 📝 📝 📝 📝 📝
Registration (base) ✖️ ✖️ ✖️ ✖️ ✖️ ✖️
register 📝 📝 📝 📝 📝 📝
Transient --> Registration constructor 📝 📝 📝 📝 📝
register 📝 📝 📝 📝 📝 📝
Singleton --> Registration constructor 📝 📝 📝 📝 📝 📝
register 📝 📝 📝 📝 📝 📝
Resolver (base) ✖️ ✖️ ✖️ ✖️ ✖️ ✖️
Lazy --> Resolver constructor 📝 📝 📝 📝 📝 📝
get 📝 📝 📝 📝 📝 📝
static of 📝 📝 📝 📝 📝 📝
All --> Resolver constructor 📝 📝 📝 📝 📝 📝
get 📝 📝 📝 📝 📝 📝
static of 📝 📝 📝 📝 📝 📝
Optional --> Resolver constructor 📝 📝 📝 📝 📝 📝
get 📝 📝 📝 📝 📝 📝
static of 📝 📝 📝 📝 📝 📝
Parent --> Resolver constructor 📝 📝 📝 📝 📝 📝
get 📝 📝 📝 📝 📝 📝
static of 📝 📝 📝 📝 📝 📝

Metadata

Router

Behaviors

Decorators

Repos & Classes

Dependency-Injection

Class (From)
< Metadata Metadata
Container
Registration
Transient --> Registration
Singleton --> Registration
Resolver
Lazy --> Resolver
All --> Resolver
Optional --> Resolver
Parent --> Resolver

Aurelia Public Interface

Metadata

Questions:

  1. metadata/index.js exports Metadata object which has add method that returns MetadataStorage class. Should MetadataStorage be part of the public interface? or should add be removed from the public interface? or some other approach?

Http-Client

  1. should the functions createJSONPRequestMessageProcessor and createHTTPRequestMessageProcessor be part of the public interface?