perf: split whatsapp targets facade

This commit is contained in:
Shakker
2026-04-02 09:01:44 +01:00
committed by Shakker
parent 4528f8779e
commit 6d6060d3ec
5 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
import { describe, expect, it } from "vitest";
import {
isWhatsAppGroupJid,
isWhatsAppUserTarget,
normalizeWhatsAppTarget,
} from "./whatsapp-targets.js";
describe("plugin-sdk whatsapp-targets", () => {
it("normalizes user targets through the public facade", () => {
expect(normalizeWhatsAppTarget("1555123@s.whatsapp.net")).toBe("+1555123");
expect(normalizeWhatsAppTarget("whatsapp:+1555123")).toBe("+1555123");
});
it("preserves valid group JIDs through the public facade", () => {
expect(isWhatsAppGroupJid("120363401234567890@g.us")).toBe(true);
expect(normalizeWhatsAppTarget("120363401234567890@g.us")).toBe("120363401234567890@g.us");
});
it("detects WhatsApp user JIDs through the public facade", () => {
expect(isWhatsAppUserTarget("41796666864:0@s.whatsapp.net")).toBe(true);
expect(isWhatsAppUserTarget("123456789@lid")).toBe(true);
expect(isWhatsAppUserTarget("123456789-987654321@g.us")).toBe(false);
});
});

View File

@@ -0,0 +1,20 @@
// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually.
import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js";
type FacadeEntry = PluginSdkFacadeTypeMap["whatsapp-targets"];
type FacadeModule = FacadeEntry["module"];
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js";
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "whatsapp",
artifactBasename: "targets.js",
});
}
export const isWhatsAppGroupJid: FacadeModule["isWhatsAppGroupJid"] = ((...args) =>
loadFacadeModule()["isWhatsAppGroupJid"](...args)) as FacadeModule["isWhatsAppGroupJid"];
export const isWhatsAppUserTarget: FacadeModule["isWhatsAppUserTarget"] = ((...args) =>
loadFacadeModule()["isWhatsAppUserTarget"](...args)) as FacadeModule["isWhatsAppUserTarget"];
export const normalizeWhatsAppTarget: FacadeModule["normalizeWhatsAppTarget"] = ((...args) =>
loadFacadeModule()["normalizeWhatsAppTarget"](
...args,
)) as FacadeModule["normalizeWhatsAppTarget"];