Add minimal add-in playgrounds and orchestrator
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
// Tiny static server for the minimal playground add-in (HTTPS for Office add-in compatibility)
|
||||
require('dotenv').config();
|
||||
const express = require('express');
|
||||
const https = require('https');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const app = express();
|
||||
const port = process.env.ADDIN_PORT || 3003;
|
||||
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
app.get('/help.html', (req,res)=> res.send('<h2>Minimal Playground Add-in</h2><p>Sideload manifest to Excel, then open the Add-ins pane and click "Managers UI".</p>'));
|
||||
|
||||
// Use office-addin-dev-certs (installed via npx office-addin-dev-certs install)
|
||||
const userHome = process.env.USERPROFILE || process.env.HOME;
|
||||
const certDir = path.join(userHome, '.office-addin-dev-certs');
|
||||
const certPath = path.join(certDir, 'localhost.crt');
|
||||
const keyPath = path.join(certDir, 'localhost.key');
|
||||
|
||||
let server;
|
||||
if (fs.existsSync(certPath) && fs.existsSync(keyPath)) {
|
||||
const httpsOptions = {
|
||||
cert: fs.readFileSync(certPath),
|
||||
key: fs.readFileSync(keyPath)
|
||||
};
|
||||
server = https.createServer(httpsOptions, app);
|
||||
server.listen(port, '0.0.0.0', () => {
|
||||
console.log(`minimal-playground add-in server (HTTPS) listening on https://localhost:${port}`);
|
||||
});
|
||||
} else {
|
||||
console.log('No office-addin-dev-certs found. Run: npx office-addin-dev-certs install');
|
||||
server = app.listen(port, '0.0.0.0', () => {
|
||||
console.log(`minimal-playground add-in server (HTTP) listening on http://localhost:${port}`);
|
||||
});
|
||||
}
|
||||
|
||||
server.on('error', (err) => {
|
||||
console.error('Server error:', err);
|
||||
});
|
||||
|
||||
// Only handle explicit shutdown signals
|
||||
process.on('SIGINT', () => { console.log('Received SIGINT, shutting down...'); server.close(); process.exit(0); });
|
||||
process.on('SIGTERM', () => { console.log('Received SIGTERM, shutting down...'); server.close(); process.exit(0); });
|
||||
|
||||
// Prevent the process from exiting on its own
|
||||
process.stdin.resume();
|
||||
Reference in New Issue
Block a user