javascript

Document Synchronet JavaScript dialect constraints and host object model behavior.

107|19|Updated Sep 4, 2020
One-click install
npx skills add https://github.com/SynchronetBBS/sbbs --skill javascript-synchronetbbs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: javascript
Source: https://github.com/SynchronetBBS/sbbs/tree/main/.claude/skills/javascript
Command: npx skills add https://github.com/SynchronetBBS/sbbs --skill javascript-synchronetbbs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Writing and debugging Synchronet-specific JavaScript is fraught with challenges: the outdated SpiderMonkey 1.8.5 engine has strict syntax limits, the host API has undocumented sharp edges like lazy MsgBase field resolution, and silent failures from scope traps can make bugs nearly impossible to track down. This skill eliminates guesswork with authoritative, experience-backed guidance for the dialect, API behavior, and production-ready best practices.

Core Features & Use Cases

  • Dialect & API Reference: Covers the SpiderMonkey 1.8.5 ES3/ES5 subset, full host object model (MsgBase, User, FileBase, Socket, etc.), and documented sharp edges like lazy field gotchas and js.on_exit scope traps.
  • Native Function Lookup: Includes the jsobjs.py utility to quickly search Synchronet's built-in API surface, so you never waste time hand-rolling a function the engine already provides.
  • Use Case: If you are troubleshooting a script that returns undefined for to_ext when filtering message headers, or need to confirm if a native date formatting function exists before writing custom code, this skill has the answers you need.

Quick Start

Use the javascript skill to look up the native strftime function in the Synchronet API and write a correct timestamp formatter for your BBS message processing script.

Frequently Asked Questions about javascript

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Synchronet BBS script return undefined for to_ext when filtering message headers?

Synchronet BBS scripts return undefined for to_ext because of lazy MsgBase field resolution, requiring specific header loading patterns to ensure fields populate correctly before filtering.

How do I find existing native functions in the Synchronet API instead of writing custom code?

Find existing Synchronet API functions using the jsobjs.py utility, which searches the built-in host object model to locate native global functions and class methods for BBS scripting.

What SpiderMonkey dialect constraints apply when writing Synchronet JavaScript modules?

Synchronet JavaScript runs on the SpiderMonkey 1.8.5 engine, limiting code to an ES3/ES5 syntax subset with strict limits that prevent modern JavaScript features from executing correctly.

How do I prevent silent script failures in Synchronet door and server contexts?

Prevent silent script failures in Synchronet door and server contexts by registering cleanup callbacks at the top-level using js.on_exit, avoiding scope traps that bypass lifecycle handlers.

Can I use modern ES6 JavaScript syntax in Synchronet BBS scripting?

Synchronet BBS scripting cannot use modern ES6 syntax because the embedded SpiderMonkey 1.8.5 engine only supports an ES3/ES5 subset, causing advanced syntax to fail silently or throw parse errors.

What is the best way to format timestamps in a Synchronet message processing script?

Format timestamps in Synchronet message processing scripts by looking up the native strftime function in the host API, avoiding redundant custom date formatting implementations.