@livespark/action-sdk
v0.1.0
Published
SDK client-side pour actions LiveSpark (iframe postMessage)
Maintainers
Readme
@livespark/action-sdk
SDK léger pour plugins/action LiveSpark exécutés dans une iframe.
But
- Aucun appel HTTP requis.
- Le runtime parent envoie déjà tous les événements live + configs via
postMessage. - Cette lib simplifie l'écoute des messages, le contexte et les helpers.
Installation (plus tard, npm)
npm i @livespark/action-sdkUtilisation
import {
createActionSdk,
shouldRunOnlyNewFollowers,
} from "@livespark/action-sdk";
const sdk = createActionSdk({
// true par défaut: loggue uniquement quand triggerConfig change
logTriggerConfigChanges: true,
onInit(context) {
console.log("INIT", context.initConfig);
},
onEvent(event, context) {
// Filtrage dans le plugin (pas dans le runtime)
if (
!shouldRunOnlyNewFollowers(
event,
context.triggerConfig,
event.eventType,
)
) {
return;
}
// logique action
console.log(
"EVENT",
event.eventType,
event.data,
);
},
});
// facultatif
// sdk.emit({ status: "done" });
// sdk.destroy();Si tu veux couper les logs:
createActionSdk({
logTriggerConfigChanges: false,
onEvent(event, context) {
// ...
},
});Messages entrants attendus
PLUGIN_INIT
{
type: "PLUGIN_INIT",
config: Record<string, unknown>,
instanceId: string,
timestamp: number
}TRIGGER_EVENT
{
type: "TRIGGER_EVENT",
timestamp: number,
event: {
eventType: string,
data: unknown,
timestamp: string
},
trigger?: unknown,
triggerConfig: Record<string, unknown>,
automation?: unknown,
action?: unknown
}Développement local du package
cd plugins/action-sdk
npm install
npm run buildExemple minimal local
Un exemple prêt à tester est disponible dans plugins/action-sdk/examples/minimal-action.
1) Build du SDK
cd plugins/action-sdk
npm run buildLe build copie automatiquement le bundle SDK dans examples/minimal-action/dist.
2) Servir l'exemple
Depuis le dossier plugins/action-sdk/examples/minimal-action, lance un serveur statique (au choix):
npx serve . -l 5174ou
npx http-server . -p 51743) Dans le backoffice plugin dev
Renseigne l'URL de dev avec:
http://localhost:5174Le runtime chargera automatiquement index.html.
Publication npm plus tard
npm version patch
npm publish --access public