-
Notifications
You must be signed in to change notification settings - Fork 42
Almin 0.18 CHANGELOGΒ #358
Description
π₯ Migration
almin-migration-tools support migration from 0.17.x to 0.18.x.
npx @almin/migration-tools
This(0.17.x β 0.18.x) migration also supports TypeScript.
npx @almin/migration-tools "src/**/*.{ts,tsx}"
π₯ Breaking Change
TypeScript user:
If you use Almin with TypeScript, please upgrade to TypeScript 3.0.
Almin 0.18 require TypeScript 3.0.
If you seen following compile error, you should upgrade to TypeScript 3.0.
Type '{}' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<{ state: StateMap<{ subscriptionList: any; subscri...'.
Type '{}' is not assignable to type 'Readonly<Pick<StateMap<{ subscriptionList: any; subscriptionContents: any; appHeader: any; appPre...'.
JavaScript user:
No breaking change.
β Features
Make execute type complete #355 #107
For TypeScript user
UseCaseExecutor#executor has been introduced as a workaround for TypeScript #107.
In Almin 0.18+, UseCaseExecutor#execute work with TypeScript #355
π Require TypeScript 3.0+
So, you should use UseCaseExecutor#execute instead of UseCaseExecutor#executor.
Before: executor()
import { UseCase, Context } from "almin";
class MyUseCaseA extends UseCase {
execute(_a: string) {}
}
const context = new Context({
store: createStore({ name: "test" })
});
// executor
context.useCase(new MyUseCaseA()).executor(useCase => useCase.execute("A")); After: execute()
import { UseCase, Context } from "almin";
class MyUseCaseA extends UseCase {
execute(_a: string) {}
}
const context = new Context({
store: createStore({ name: "test" })
});
//execute
context.useCase(new MyUseCaseA()).execute("A");These are same meaning without syntax.
Deprecate executor() #356
You can migrate from executor to execute by migration tools
npx @almin/migration-tools "src/**/*.{js,ts,tsx}" --script "executor-to-execute"
β»οΈ Refactoring
Drop to use events module #352
Almin 0.18 drop to use Node.js's events module.
It improves to
- support React Native compatible
- reduce file size