Skip to content

Latest commit

 

History

History
84 lines (61 loc) · 1.81 KB

TODO.md

File metadata and controls

84 lines (61 loc) · 1.81 KB
  • Remove react jsx from deps types

  • Update ProducerFn signature to match current apply call

  • Make a BaseContext, EngineReactContext, EngineNodeContext, etc

  • Use process.nextTick for nodejs

  • Add the capability to use the opertions outside the producer definition:

const Foo = value => <div>{value}</div>
const a = Observe.foo.bar.baz
<Foo value={a}>
<Foo value="123">
  • Check the value of a prop and if it's a listener treat it as if it was defined at the component level

  • Test if identifier is in the function's arguments list and add it as Arg

  foo,
  bar = Observe[foo.baz]

is considered to be

foo,
bar = Observe[Arg.foo.baz]
  • Test if props are cloned or are given by reference - they should be clonned

  • Add Array methods for modifying arrays to the Update operation

  • Wildcard observe's can be parallelized!

Store all triggers with their respective timestamp as the key and the data (or lack of) as the body

start = update.foo.triggers.start[param.time]

start.set({ foo: 123 }, { time: now()}) start.set({}, { time: now()})

then the listeners for triggers can be:

const startTrigger: producer = ({ id = Wildcard, trigger = observe.foo.triggers.start[arg.id] updateTrigger = update.foo.triggers.start[arg.id] }) => { if (!trigger) [ return ] updateTrigger.remove() }

const trigger = (path, logic) => { const result: producer = ({ id = Wildcard, trigger = observe[path][arg.id], updateTrigger = update[path][arg.id] }) => { if (!trigger) { return } }

}

if observe, etc are not transformed initially and are just proxies - that means they can be reused at runtime

// extend the observe syntax: observe.foo.isDefined() observe.foo.value() // same as observe.foo observe.foo.length() observe.foo.isValid() observe.foo.exists() observe.foo.is("asd")

bam = observe.bam, foo = observe.foo.is(arg.bam)