Skip to content

Commit

Permalink
feat: add beet.contrib.minify_json plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
vberlier committed Jan 23, 2021
1 parent 27c7d02 commit 78cd972
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions beet/contrib/minify_json.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""Plugin that minifies json files."""


import json
from typing import Iterator, Union

from beet import Context, DataPack, JsonFileBase, ResourcePack


def beet_default(ctx: Context):
for pack in ctx.packs:
for json_file in find_json_files(pack):
json_file.text = json.dumps(json_file.data, separators=(",", ":"))


def find_json_files(pack: Union[ResourcePack, DataPack]) -> Iterator[JsonFileBase]:
for extra_file in pack.extra.values():
if isinstance(extra_file, JsonFileBase):
yield extra_file
for namespace in pack.values():
for file_type, container in namespace.items():
if issubclass(file_type, JsonFileBase):
yield from container.values() # type: ignore

0 comments on commit 78cd972

Please sign in to comment.