mobx.dart icon indicating copy to clipboard operation
mobx.dart copied to clipboard

MobX Generator - Simplify writing store code (Realm dart example)

Open mohachouch opened this issue 3 years ago • 2 comments

Hello, Thanks for your work.

Writing a store is too verbose. The Realm team generates the class this way. Is it possible to take inspiration from what they have done?

From

class Counter = CounterBase with _$Counter;

abstract class CounterBase with Store {
}

To

class _Counter with Store {
}

After the generator create this :

class Counter extends _Counter {
}

Here is the sample realm repository https://github.com/realm/realm-dart/tree/main/example/bin

Thanks

mohachouch avatar Dec 29 '22 11:12 mohachouch

@amondnet what do you think, about this ?

mohachouch avatar Jan 31 '23 17:01 mohachouch

Let's consider the code navigation in IDE as well. Currently, in order to make IDE navigate to our own code for the state store, and not the generated one, we always use the generated store cast to the original (non-generated) type.

The author's example makes the _Counter private so that the generated Counter is the type to be used.

I'd prefer to have the ability to specify a non-private abstract class as a base type for state store generation. Something like this:

abstract class Counter with Store {
}

and its generated counterpart:

class CounterStore extends Counter {
}

This way, I'd be able to create a Counter using the CounterStore() constructor but expose it using the original Counter type and have proper code navigation in the IDE.

s0nerik avatar Jan 31 '23 22:01 s0nerik