Skip to content
Brian Cavalier edited this page May 11, 2016 · 15 revisions

1.0

  • ✅ Refactor into Timer + Scheduler
    • ✅ Rework TestScheduler into TestTimer + Scheduler
  • ✅ Improve sample or provide a variant that passes the sampler value in addition to all the sampled values
  • ✅ Create @most/dom, which will provide convenience methods for dom events--basically wrappers around fromEvent--like: import { click } from '@most/dom'; const clicks = click(node);
  • ✅ "Bring your own promise"
    • ✅ remove when.js dep, depend on global Promise
    • ✅ Add info to README pointing to creed, when.js, bluebird, rsvp for polyfill if needed
  • ✅ Add useCapture flag to fromEvent
  • ⬜ ES7 Observable interop via [Symbol.observable], subscribe, of, and from
  • ⬜ Create Typescript definition

Post 1.0

Things that are being evaluated, and may happen after 1.0.0 is released. Depending on the nature of the change, some things may happen in 1.x.x releases, and others in x.0.0 releases (based on semver).

Scheduler

  • Investigate hash wheel as new data structure for Scheduler
  • Expose Scheduler constructor or createScheduler smart constructor
  • Expose defaultScheduler as most.defaultScheduler

APIs

  • Autocurry public functional API
  • Expose slightly lower level API than observe/drain/reduce
    • Doesn't involve promises
    • Allows configurable scheduler
    • probably like:
      • runStream :: Observer a b -> Scheduler -> undefined
      • type Handler a :: t -> a -> undefined
      • type Observer a b = { event :: Handler a, end :: Handler b, error :: Handler Error }
  • Consider providing observe/drain/reduce variants that allow passing in a scheduler.
  • Implement full ES7 Observable spec?
  • Decide whether function APIs should be pre-curried.

Tooling

  • Add code coverage (e.g. istanbul + coveralls.io)
  • Update to latest versions of all build tools (webpack, uglify, etc)
  • Create flowtype definition

Modularity / Packaging

  • Discuss @most/core and moving more groups of functionality to @most/* packages.
Clone this wiki locally