Shared Application Logic and Service Assets
salsa is the logic layer of the ChRIS interface ecosystem. It is a TypeScript library that encapsulates high-level business intents and operational logic, serving as the bridge between user-facing interfaces (like the chili CLI) and the underlying infrastructure (cumin and chrisapi).
- Consolidate Business Logic: Centralizes "Intents" (e.g., "Create a Feed from these local files", "Run a Plugin with these parameters"). This ensures that
chili(CLI), future web apps, and other frontends share the exact same behavior. - Frontend Agnostic: Designed to be free of CLI-specific dependencies (like
commanderorprocess.stdout). It returns pure data or typed objects. - Powering Chefs: Provides the primitive file operations (
files_getGroup,files_touch,files_content) that power thechefsshell experience inchiliandchell.
[ Chili (CLI) ] [ Web App ] [ Mobile App ]
| | |
+-------+-------+ |
| |
v v
[ Salsa (Logic / Intents) ] <-- YOU ARE HERE
|
v
[ Cumin (State / Infrastructure) ]
|
v
[ @fnndsc/chrisapi (Client) ]
feeds: Logic for creating and managing feeds.plugins: Logic for searching, resolving, running, and registering plugins. Now includesplugins_listAllfor fetching all plugins across paginated responses.files: Primitives for file system interactions (ls, mkdir, touch, create, upload, view content). Now includesfiles_listAllfor fetching all files/dirs/links in a directory across paginated responses, andfiles_contentfor retrieving file data.
salsa's listing methods (*_listAll) abstract away the complexities of CUBE API pagination, always returning complete resource lists.
npm run buildnpm run test