X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5c2dd96a69a935cf45acbdf2ffabbd39b27d38fa..0b40a7badf82c53c8a23b3a03273619f8440855d:/blackd.py?ds=inline diff --git a/blackd.py b/blackd.py index e1006a1..c5aa29c 100644 --- a/blackd.py +++ b/blackd.py @@ -4,6 +4,7 @@ from functools import partial import logging from aiohttp import web +import aiohttp_cors import black import click @@ -17,6 +18,15 @@ SKIP_STRING_NORMALIZATION_HEADER = "X-Skip-String-Normalization" SKIP_NUMERIC_UNDERSCORE_NORMALIZATION_HEADER = "X-Skip-Numeric-Underscore-Normalization" FAST_OR_SAFE_HEADER = "X-Fast-Or-Safe" +BLACK_HEADERS = [ + VERSION_HEADER, + LINE_LENGTH_HEADER, + PYTHON_VARIANT_HEADER, + SKIP_STRING_NORMALIZATION_HEADER, + SKIP_NUMERIC_UNDERSCORE_NORMALIZATION_HEADER, + FAST_OR_SAFE_HEADER, +] + @click.command(context_settings={"help_option_names": ["-h", "--help"]}) @click.option( @@ -35,7 +45,18 @@ def main(bind_host: str, bind_port: int) -> None: def make_app() -> web.Application: app = web.Application() executor = ProcessPoolExecutor() - app.add_routes([web.post("/", partial(handle, executor=executor))]) + + cors = aiohttp_cors.setup(app) + resource = cors.add(app.router.add_resource("/")) + cors.add( + resource.add_route("POST", partial(handle, executor=executor)), + { + "*": aiohttp_cors.ResourceOptions( + allow_headers=(*BLACK_HEADERS, "Content-Type"), expose_headers="*" + ) + }, + ) + return app