Commit 0013ee8 for jssip.net
commit 0013ee86aaad927e4d37c64967cb4224b5713bb7
Author: José Luis Millán <jmillan@aliax.net>
Date: Wed Feb 4 11:18:19 2026 +0100
Prepare typedoc (#959)
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
new file mode 100644
index 0000000..5864368
--- /dev/null
+++ b/.github/workflows/docs.yaml
@@ -0,0 +1,72 @@
+# Workflow for deploying docs static content to GitHub Pages.
+name: docs
+
+on:
+ push:
+ branches: [master]
+ # Allows you to run this workflow manually from the Actions tab.
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run
+# in-progress and latest queued. However, do NOT cancel in-progress runs as we
+# want to allow these production deployments to complete.
+concurrency:
+ group: 'pages'
+ cancel-in-progress: false
+
+jobs:
+ # Single deploy job since we're just deploying.
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 2
+
+ - name: Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 24
+
+ - name: Check if version has been updated
+ id: versionCheck
+ uses: EndBug/version-check@v2
+
+ - name: Log when version has changed
+ if: steps.versionCheck.outputs.changed == 'true'
+ run: 'echo "Version changed, new version: ${{ steps.versionCheck.outputs.version }} (${{ steps.versionCheck.outputs.type }})"'
+
+ - name: Log when version has not changed
+ if: steps.versionCheck.outputs.changed == 'false'
+ run: 'echo "Version did not change"'
+
+ - name: npm ci
+ if: steps.versionCheck.outputs.changed == 'true'
+ run: npm ci --foreground-scripts
+
+ - name: npm run docs
+ if: steps.versionCheck.outputs.changed == 'true'
+ run: npm run docs
+
+ - name: Upload docs
+ if: steps.versionCheck.outputs.changed == 'true'
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: docs/
+
+ - name: Deploy docs to GitHub Pages
+ if: steps.versionCheck.outputs.changed == 'true'
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 20c6828..a8fd741 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@
- Use prettier.
- Prepare environment for TS.
- Rewrite tests to TS (#958).
+- Prepare typedoc (#959).
### 3.12.0
diff --git a/LICENSE b/LICENSE.md
similarity index 100%
rename from LICENSE
rename to LICENSE.md
diff --git a/docs-assets/custom-styles.css b/docs-assets/custom-styles.css
new file mode 100644
index 0000000..0fe534a
--- /dev/null
+++ b/docs-assets/custom-styles.css
@@ -0,0 +1,21 @@
+/* Remove ugly square in bottom-right corner when scroll shows up. */
+*::-webkit-scrollbar {
+ width: 0px;
+}
+
+/* Add margin after code. */
+.tsd-comment {
+ margin-bottom: 2em;
+}
+
+/* Avoid word wrapping when code doesn't fit into avaiable width. */
+.tsd-comment > pre {
+ white-space: pre;
+ overflow: scroll;
+}
+
+/* Remove ugly border radius in code. */
+.tsd-comment > pre,
+.tsd-comment > code {
+ border-radius: 0px;
+}
diff --git a/typedoc.config.mjs b/typedoc.config.mjs
new file mode 100644
index 0000000..56c02a0
--- /dev/null
+++ b/typedoc.config.mjs
@@ -0,0 +1,33 @@
+/**
+ * Configuration for Typedoc.
+ */
+
+/** @type {Partial<import('typedoc').TypeDocOptions>} */
+const config = {
+ entryPoints: ['src/JsSIP.js'],
+ out: 'docs',
+ skipErrorChecking: false,
+ exclude: ['src/**/*.d.ts', 'src/test/**/test-*.ts'],
+ excludePrivate: true,
+ excludeProtected: true,
+ excludeNotDocumented: true,
+ excludeInternal: true,
+ excludeExternals: true,
+ includeVersion: true,
+ gitRemote: 'origin',
+ hideGenerator: false,
+ treatWarningsAsErrors: true,
+ cacheBust: true,
+ categorizeByGroup: false,
+ categoryOrder: ['Config', 'UA', 'RTCSession', '*'],
+ searchInComments: true,
+ readme: 'README.md',
+ projectDocuments: ['README.md', 'LICENSE.md'],
+ navigationLinks: {
+ GitHub: 'https://github.com/versatica/jssip',
+ NPM: 'https://www.npmjs.com/package/jssip',
+ },
+ customCss: './docs-assets/custom-styles.css',
+};
+
+export default config;