Commit graph

19 commits

Author SHA1 Message Date
cae6d11d53
feat(types): move Emigrate types to separate package and improve types (#41)
* feat(types): move Emigrate types to separate package

Also refactor the types to use discriminating unions for easier error handling and such.
Errors passed to storage plugins should now be serialized and storage plugins are expected to return already serialized errors on failed history entries.

* fix(mysql): handle the new type changes

* fix(storage-fs): handle the new type changes

* feat(cli): better error handling and types

Adapt to the new types from the @emigrate/types package, like discriminating union types and serializing and deserializing errors
2023-12-15 13:03:35 +01:00
a79f8e8e37 feat(plugin-tools): improve error serialization and let each storage plugin serialize errors themselves 2023-12-12 15:32:58 +01:00
8f7f9a71d0 chore(deps): upgrade import-from-esm 2023-12-08 13:14:56 +01:00
c1d55978d7 feat(up): serialize errors before passing them to storage plugins 2023-12-08 13:01:45 +01:00
d916043061 fix(plugin-tools): load plugins correctly when specified as strings 2023-12-07 14:34:47 +01:00
20ed2e8a50 fix(plugin-tools): prioritize prefixed plugin names over non-prefixed names when importing plugins
This is to not accidentally importing for instance the "pino" package if reporter is set to just "pino" and instead import the "@emigrate/reporter-pino" package if that's the case.
2023-12-07 14:33:01 +01:00
672fae1729 feat(plugins): include "@emigrate/" in the plugin search prefix list 2023-11-24 16:01:45 +01:00
acb0b4f195 fix(new): keep upper cased letters in migration file names by default 2023-11-24 15:55:32 +01:00
60ae3b8c82 fix(plugin-tools): load lazy plugins with default exports correctly 2023-11-22 15:35:30 +01:00
5e8572b67f feat(plugin-tools): pass the current command to the reporter 2023-11-22 14:35:35 +01:00
8e87ade5c0 feat(cli): storage and reporter are now their own options
Instead of mixing storages and reporters with other plugins in the plugin option they now have their own separate options.
This is for increased future flexibility and to be more similar to other CLI tools.

BREAKING CHANGE: the storage to use must now be specified using the "storage" configuration option or the "--storage" CLI option instead of having it among other plugins.
2023-11-22 14:35:35 +01:00
8f35812fed feat(cli): add support for "reporter" plugins and include a default reporter 2023-11-17 12:50:33 +01:00
1799b6e399 fix(plugin-tools): add missing types and utils for the "loader" plugins 2023-11-16 10:53:09 +01:00
23a323c675 feat(plugin-tools): add convenience functions getOrLoadPlugin and getOrLoadPlugins 2023-11-15 16:02:57 +01:00
9f5abf727d refactor: simplify plugin interfaces by getting rid of the "type" property
This is to prepare for having packages that contains multiple different plugins in the same file.
2023-11-15 14:11:06 +01:00
4e2a27ffeb fix(plugin-tools): trim leading underscores from filenames 2023-11-10 14:47:44 +01:00
9c239e0ae5 feat(plugins): automatically prefix plugins when loading if necessary
I.e. when specifying only "--plugin generate-js" Emigrate will load the @emigrate/plugin-generate-js plugin.
2023-11-10 10:45:15 +01:00
16340940b7 fix(plugin-tools): remove double and trailing underscores from filenames and lower case the result 2023-11-10 09:33:08 +01:00
cdafd05c20 feat(plugin-tools): first version of the package with some nice plugin utilities 2023-11-09 09:26:48 +01:00