From ec463cb927756e76391fd35d9c3861fc79f7de21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahri=20Can=20Se=C3=A7er?= Date: Sat, 25 Apr 2026 02:41:53 +0300 Subject: [PATCH] fix: make canvas import optional for ARM64 compatibility --- src/modules/social-poster/image-renderer.service.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/social-poster/image-renderer.service.ts b/src/modules/social-poster/image-renderer.service.ts index c8d6f18..6df0efb 100644 --- a/src/modules/social-poster/image-renderer.service.ts +++ b/src/modules/social-poster/image-renderer.service.ts @@ -2,7 +2,16 @@ import { Injectable, Logger, OnModuleInit } from "@nestjs/common"; import * as fs from "fs"; import * as path from "path"; import axios from "axios"; -import { createCanvas, loadImage } from "canvas"; +// Canvas is optional – native module may fail on ARM64 (RPi) +let createCanvas: any; +let loadImage: any; +try { + const canvas = require("canvas"); + createCanvas = canvas.createCanvas; + loadImage = canvas.loadImage; +} catch { + // Canvas unavailable – ImageRendererService methods will throw at runtime if called +} import { PredictionCardDto } from "./dto/prediction-card.dto"; @Injectable()