Commit Graph

12 Commits

Author SHA1 Message Date
Sergio Díaz 14704c09d1
Added a version mismatch warning. (#37)
* I need to stop rewriting builtin methods with reduce.

* Removed redundant fields from the config class.

* Added a warning when module version and beau.yml version differ.
2018-06-14 23:12:16 -06:00
Sergio Díaz 23064040df
Stopped iterating over keys and started assigning instead. (#27)
I don't actually remember why I did it this way. I probably wanted to be
a lot more strict with the keys originally which seems silly in
retrospective.
2018-05-22 12:55:58 -06:00
Sergio Díaz 90761acaa4
Added a schema validator. (#13)
* Added a schema validator.

This allows you to check if the given beau config is valid. Will be used
to improve the CLI and remove schema validation-type errors from the
actual code.

* Added a validate command to the CLI.

This command is a way to test the config file. Eventually it'll probably
be removed and the schema validation will run on every other command. I
have to determine how useful this is and how performance might be
affected.
2018-05-01 22:20:14 -06:00
David Diaz 185333cb20 Copy objects instead of properties on modifiers. 2018-04-30 14:21:20 -06:00
David Diaz 358da930e8 Refactored the Request's constructor.
I didn't like how verbose it was, this is somewhat better.
2018-04-26 18:35:33 -06:00
David Diaz d3b78bc27d Added basic cookies support.
You can now let Beau know you expect cookies to be passed around by
setting COOKIEJAR to true. I'd eventually like to add support for file
storage or something similar.
2018-04-26 17:50:09 -06:00
David Diaz 9d10db3243 Added support for forms.
You can now pass a form key to the request and it'll set the header and
payload automatically.
2018-04-26 14:52:06 -06:00
David Diaz f13cbda84a Allow the escaping of variables.
This results in two important changes:

- Made changes so that we actually use the replacement regex groups.
This was supposed to happen from the start but I guess I didn't notice.
By fixing this the code for finding dependencies and the cache#parse is
now a bit more reliable.

- This also changes how we store variables in the cache (which I've been
meaning to do for a while.) removing the dollar sign that usually
preceeded all cached requests in Beau. It's all more sensible now.

There's more refactoring left to do.
2018-04-13 10:12:03 -06:00
David Diaz 1fb45da5de Refactored Beau's Plugin System
It now uses a plugin registry. Plugins are loaded when the configuration
file is first parsed. When a request is made it is passed over to the
available modifiers before and after it's execution and applies
whichever changes are made. It now passes a copy instead of a reference
to provide a nicer interface.

Dynamic values have been added as a plugin type. These plugins are
javascript functions that can be called from within the beau file and
whose results are used as a replacement.

These are added along with variables to the runtime execution flow. The
current order for their execution is:

Request composition -> Dynamic Values -> Pre-Request Modifiers ->
Post-Request Modifiers.
2018-04-08 13:33:43 -06:00
David Diaz fe401c1391 Added support for multiple hosts.
This introduces a top level key: `hosts`. It's an array where you can
configure multiple hosts with their own requests, they share defaults
and environment with the global scope.

This allows you to  have multiple paths being the same with different
endpoints and settings.
2018-01-19 18:10:00 -06:00
David Diaz 90752c47b1 This adds environment variables.
Allows you to set variables that you can then use throughout your
configuration file.
2018-01-10 16:39:38 -06:00
David Diaz 44205d488c Moved all source files into a src folder. It was getting crowded. 2018-01-10 15:13:47 -06:00