fix: activate wasm extension
This commit is contained in:
@@ -171,6 +171,7 @@ def create_app() -> FastAPI:
|
|||||||
|
|
||||||
# Allow registering new extensions routes without direct access to the `app` object
|
# Allow registering new extensions routes without direct access to the `app` object
|
||||||
core_app_extra.register_new_ext_routes = register_new_ext_routes(app)
|
core_app_extra.register_new_ext_routes = register_new_ext_routes(app)
|
||||||
|
core_app_extra.register_new_wasm_ext_routes = register_new_wasm_ext_routes(app)
|
||||||
core_app_extra.register_new_ratelimiter = register_new_ratelimiter(app)
|
core_app_extra.register_new_ratelimiter = register_new_ratelimiter(app)
|
||||||
|
|
||||||
# register static files
|
# register static files
|
||||||
@@ -418,6 +419,13 @@ def register_new_ext_routes(app: FastAPI) -> Callable:
|
|||||||
return register_new_ext_routes_fn
|
return register_new_ext_routes_fn
|
||||||
|
|
||||||
|
|
||||||
|
def register_new_wasm_ext_routes(app: FastAPI) -> Callable:
|
||||||
|
def register_new_wasm_ext_routes_fn(ext_id: str):
|
||||||
|
register_wasm_extension(app, ext_id)
|
||||||
|
|
||||||
|
return register_new_wasm_ext_routes_fn
|
||||||
|
|
||||||
|
|
||||||
def register_new_ratelimiter(app: FastAPI) -> Callable:
|
def register_new_ratelimiter(app: FastAPI) -> Callable:
|
||||||
def register_new_ratelimiter_fn():
|
def register_new_ratelimiter_fn():
|
||||||
limiter = Limiter(
|
limiter = Limiter(
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ def _do_nothing(*_):
|
|||||||
|
|
||||||
class CoreAppExtra:
|
class CoreAppExtra:
|
||||||
register_new_ext_routes: Callable = _do_nothing
|
register_new_ext_routes: Callable = _do_nothing
|
||||||
|
register_new_wasm_ext_routes: Callable = _do_nothing
|
||||||
register_new_ratelimiter: Callable
|
register_new_ratelimiter: Callable
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -75,11 +75,12 @@ async def install_extension(
|
|||||||
await update_installed_extension(ext_info)
|
await update_installed_extension(ext_info)
|
||||||
|
|
||||||
extension = Extension.from_installable_ext(ext_info)
|
extension = Extension.from_installable_ext(ext_info)
|
||||||
if extension.is_upgrade_extension:
|
if extension.is_upgrade_extension and not extension.is_wasm:
|
||||||
# call stop while the old routes are still active
|
# call stop while the old routes are still active
|
||||||
await stop_extension_background_work(ext_info.id)
|
await stop_extension_background_work(ext_info.id)
|
||||||
|
|
||||||
await start_extension_background_work(ext_info.id)
|
if not extension.is_wasm:
|
||||||
|
await start_extension_background_work(ext_info.id)
|
||||||
|
|
||||||
return extension
|
return extension
|
||||||
|
|
||||||
@@ -188,6 +189,11 @@ async def uninstall_extension(ext_id: str):
|
|||||||
|
|
||||||
|
|
||||||
async def activate_extension(ext: Extension):
|
async def activate_extension(ext: Extension):
|
||||||
|
if ext.is_wasm:
|
||||||
|
core_app_extra.register_new_wasm_ext_routes(ext.code)
|
||||||
|
await update_installed_extension_state(ext_id=ext.code, active=True)
|
||||||
|
return
|
||||||
|
|
||||||
core_app_extra.register_new_ext_routes(ext)
|
core_app_extra.register_new_ext_routes(ext)
|
||||||
await update_installed_extension_state(ext_id=ext.code, active=True)
|
await update_installed_extension_state(ext_id=ext.code, active=True)
|
||||||
await start_extension_background_work(ext.code)
|
await start_extension_background_work(ext.code)
|
||||||
|
|||||||
Reference in New Issue
Block a user