Plain is headed towards 1.0! Subscribe for development updates →

 1import json
 2
 3from plain.runtime import settings
 4from plain.templates import register_template_extension
 5from plain.templates.jinja.extensions import InclusionTagExtension
 6
 7from .core import Importmap
 8
 9
10@register_template_extension
11class ImportmapJSExtension(InclusionTagExtension):
12    tags = {"importmap_js"}
13    template_name = "importmap/js.html"
14
15    def get_context(self, context, *args, **kwargs):
16        importmap = Importmap()
17        importmap.load()
18
19        if settings.DEBUG:
20            return {
21                "importmap": json.dumps(importmap.map_dev, indent=2, sort_keys=True)
22            }
23        else:
24            return {"importmap": json.dumps(importmap.map, sort_keys=True)}