Freezing of the factory #16

Closed
kitsonk opened this Issue Jan 5, 2016 · 1 comment

Projects

None yet

1 participant

@kitsonk
Member
kitsonk commented Jan 5, 2016

Originally, I thought it was wise to freeze the returned factory, basically to keep factories immutable, and limit the amount unanticipated consequences. The challenge is that it makes it impossible to add static methods/properties to the factory.

There are three approaches I can see to resolving this:

  • Don't recommend/support static properties or methods. If the default export of a module is a factory, it is "better" from a potential code optimisations mechanism, to export static methods related to the factory as part of the module. Of course, this may not gracefully handle typing with downstream composites.
  • Don't freeze the factories
  • Add an API to allowing the addition of static properties. The challenge will how to handle the type inference to return an extension of the ComposeFactory. Likely we would need TS 1.8 with F bound polymorphism (see: Microsoft/TypeScript#5949).

If we choose either of the last two, we will have to change the factory cloning logic to perpetuate these static method/properties, which it currently does not do.

@kitsonk kitsonk added the discussion label Jan 5, 2016
@kitsonk kitsonk added this to the alpha.2 milestone Mar 11, 2016
@kitsonk kitsonk modified the milestone: 2016.04, alpha.2 Apr 8, 2016
@kitsonk
Member
kitsonk commented Apr 8, 2016

@maier49 has implemented as much of a level of freezing as we have felt safe but still workable.

@kitsonk kitsonk closed this Apr 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment