Here's the list of plugins that we could write to make the main fakeit lib smaller an easier to maintain.
[ ] fakeit-plugin-models-yaml Support parsing YAML model files like fakeit currently does
[ ] fakeit-plugin-faker This would extract out faker from the base fakeit library
[ ] fakeit-plugin-chance This would extract out chance from the base fakeit library
Note: the faker and chance plugins will have to support seeds
[ ] fakeit-plugin-format-json This would allow the ability to output files in json. This would be a separate package for consistency but I think should still be installed by default since it doesn't depend on anything.
[ ] fakeit-plugin-format-cson This would allow the ability to output files in cson.
[ ] fakeit-plugin-format-csv This would allow the ability to output files in csv.
[ ] fakeit-plugin-format-yaml This would allow the ability to output files in yaml
[ ] fakeit-plugin-console This will output the data to the console.
[ ] fakeit-plugin-couchbase This will output the data to a Couchbase server.
[ ] fakeit-plugin-sync-gateway This will output the data to a Couchbase Sync Gateway server
[ ] fakeit-plugin-directory The directory path to output the files (aka path/to/the/destination)
[ ] fakeit-plugin-zip This would add support for creating zip files of the documents
[ ] fakeit-plugin-babel This would add support for babel
Moving all these things out into separate packages will reduce the dependency bloat that currently exists. At a minimum we can remove 17 packages from the base libraries dependencies and they can be installed separately when they're needed for each plugin.
This issue started in #163
Here's the list of plugins that we could write to make the main fakeit lib smaller an easier to maintain.
fakeit-plugin-models-yaml
Support parsing YAML model files like fakeit currently doesfakeit-plugin-faker
This would extract out faker from the base fakeit libraryfakeit-plugin-chance
This would extract out chance from the base fakeit library Note: thefaker
andchance
plugins will have to support seedsfakeit-plugin-format-json
This would allow the ability to output files injson
. This would be a separate package for consistency but I think should still be installed by default since it doesn't depend on anything.fakeit-plugin-format-cson
This would allow the ability to output files incson
.fakeit-plugin-format-csv
This would allow the ability to output files incsv
.fakeit-plugin-format-yaml
This would allow the ability to output files inyaml
fakeit-plugin-console
This will output the data to the console.fakeit-plugin-couchbase
This will output the data to a Couchbase server.fakeit-plugin-sync-gateway
This will output the data to a Couchbase Sync Gateway serverfakeit-plugin-directory
The directory path to output the files (akapath/to/the/destination
)fakeit-plugin-zip
This would add support for creating zip files of the documentsfakeit-plugin-babel
This would add support for babelMoving all these things out into separate packages will reduce the dependency bloat that currently exists. At a minimum we can remove 17 packages from the base libraries dependencies and they can be installed separately when they're needed for each plugin.
adm-zip
babel-core
babel-helpers
babel-runtime
chance
cli-table
couchbase-promises
cson
csv-parse
csv-stringify
faker
highlight-es
request
set-cookie-parser
yamljs
events-async
find-root