init commit
This commit is contained in:
89
remotion/node_modules/@remotion/studio-server/dist/preview-server/live-events.js
generated
vendored
Normal file
89
remotion/node_modules/@remotion/studio-server/dist/preview-server/live-events.js
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.setLiveEventsListener = exports.waitForLiveEventsListener = exports.makeLiveEventsRouter = void 0;
|
||||
const server_ready_1 = require("../server-ready");
|
||||
const file_existence_watchers_1 = require("./file-existence-watchers");
|
||||
const serializeMessage = (message) => {
|
||||
return `data: ${JSON.stringify(message)}\n\n`;
|
||||
};
|
||||
let printPortMessageTimeout = null;
|
||||
const makeLiveEventsRouter = (logLevel) => {
|
||||
let clients = [];
|
||||
const router = (request, response) => {
|
||||
const headers = {
|
||||
'content-type': 'text/event-stream;charset=utf-8',
|
||||
connection: 'keep-alive',
|
||||
'cache-control': 'no-cache',
|
||||
};
|
||||
response.writeHead(200, headers);
|
||||
response.write('\n');
|
||||
if (request.method === 'OPTIONS') {
|
||||
response.end();
|
||||
return Promise.resolve();
|
||||
}
|
||||
const clientId = String(Math.random());
|
||||
response.write(serializeMessage({ type: 'init', clientId }));
|
||||
const newClient = {
|
||||
id: clientId,
|
||||
response,
|
||||
};
|
||||
clients.push(newClient);
|
||||
if (printPortMessageTimeout) {
|
||||
clearTimeout(printPortMessageTimeout);
|
||||
}
|
||||
request.on('close', () => {
|
||||
(0, file_existence_watchers_1.unsubscribeClientFileExistenceWatchers)(clientId);
|
||||
clients = clients.filter((client) => client.id !== clientId);
|
||||
// If all clients disconnected, print a comment so user can easily restart it.
|
||||
if (clients.length === 0) {
|
||||
if (printPortMessageTimeout) {
|
||||
clearTimeout(printPortMessageTimeout);
|
||||
}
|
||||
printPortMessageTimeout = setTimeout(() => {
|
||||
(0, server_ready_1.printServerReadyComment)('To restart', logLevel);
|
||||
}, 2500);
|
||||
}
|
||||
});
|
||||
return Promise.resolve();
|
||||
};
|
||||
const sendEventToClient = (event) => {
|
||||
clients.forEach((client) => {
|
||||
client.response.write(serializeMessage(event));
|
||||
});
|
||||
};
|
||||
return {
|
||||
sendEventToClient,
|
||||
router,
|
||||
closeConnections: () => {
|
||||
return Promise.all(clients.map((client) => {
|
||||
return new Promise((resolve) => {
|
||||
client.response.end(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
})).then(() => undefined);
|
||||
},
|
||||
};
|
||||
};
|
||||
exports.makeLiveEventsRouter = makeLiveEventsRouter;
|
||||
let liveEventsListener = null;
|
||||
const waiters = [];
|
||||
const waitForLiveEventsListener = () => {
|
||||
if (liveEventsListener) {
|
||||
return Promise.resolve(liveEventsListener);
|
||||
}
|
||||
return new Promise((resolve) => {
|
||||
waiters.push((list) => {
|
||||
resolve(list);
|
||||
});
|
||||
});
|
||||
};
|
||||
exports.waitForLiveEventsListener = waitForLiveEventsListener;
|
||||
const setLiveEventsListener = (listener) => {
|
||||
liveEventsListener = listener;
|
||||
waiters.forEach((w) => w(listener));
|
||||
return () => {
|
||||
liveEventsListener = null;
|
||||
};
|
||||
};
|
||||
exports.setLiveEventsListener = setLiveEventsListener;
|
||||
Reference in New Issue
Block a user