init commit
This commit is contained in:
85
remotion/node_modules/@remotion/studio-server/dist/preview-server/serve-static.js
generated
vendored
Normal file
85
remotion/node_modules/@remotion/studio-server/dist/preview-server/serve-static.js
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* serve-static
|
||||
* Copyright(c) 2010 Sencha Inc.
|
||||
* Copyright(c) 2011 TJ Holowaychuk
|
||||
* Copyright(c) 2014-2016 Douglas Christopher Wilson
|
||||
* MIT Licensed
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.serveStatic = void 0;
|
||||
const renderer_1 = require("@remotion/renderer");
|
||||
const node_fs_1 = require("node:fs");
|
||||
const middleware_1 = require("./dev-middleware/middleware");
|
||||
const range_parser_1 = require("./dev-middleware/range-parser");
|
||||
const serveStatic = async function ({ root, path, req, res, allowOutsidePublicFolder, }) {
|
||||
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||
// method not allowed
|
||||
res.statusCode = 405;
|
||||
res.setHeader('Allow', 'GET, HEAD');
|
||||
res.setHeader('Content-Length', '0');
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
if (!renderer_1.RenderInternals.isPathInside(path, root) && !allowOutsidePublicFolder) {
|
||||
res.writeHead(500);
|
||||
res.write('Not allowed to read');
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
const exists = (0, node_fs_1.existsSync)(path);
|
||||
if (!exists) {
|
||||
res.writeHead(404);
|
||||
res.write(`${path} does not exist`);
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
const lstat = await node_fs_1.promises.lstat(path);
|
||||
if (lstat.isSymbolicLink()) {
|
||||
const target = await node_fs_1.promises.readlink(path);
|
||||
return (0, exports.serveStatic)({
|
||||
path: target,
|
||||
root,
|
||||
req,
|
||||
res,
|
||||
allowOutsidePublicFolder: true,
|
||||
});
|
||||
}
|
||||
const isDirectory = lstat.isDirectory();
|
||||
if (isDirectory) {
|
||||
res.writeHead(500);
|
||||
res.write('Is a directory');
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
const hasRange = req.headers.range && lstat.size;
|
||||
if (!hasRange) {
|
||||
const readStream = (0, node_fs_1.createReadStream)(path);
|
||||
res.setHeader('content-type', renderer_1.RenderInternals.mimeLookup(path) || 'application/octet-stream');
|
||||
res.setHeader('content-length', lstat.size);
|
||||
res.writeHead(200);
|
||||
readStream.pipe(res);
|
||||
return;
|
||||
}
|
||||
const range = (0, range_parser_1.parseRange)(lstat.size, req.headers.range);
|
||||
if (typeof range === 'object' && range.type === 'bytes') {
|
||||
const { start, end } = range[0];
|
||||
res.setHeader('content-type', renderer_1.RenderInternals.mimeLookup(path) || 'application/octet-stream');
|
||||
res.setHeader('content-range', (0, middleware_1.getValueContentRangeHeader)('bytes', lstat.size, {
|
||||
end,
|
||||
start,
|
||||
}));
|
||||
res.setHeader('content-length', end - start + 1);
|
||||
res.writeHead(206);
|
||||
const readStream = (0, node_fs_1.createReadStream)(path, {
|
||||
start,
|
||||
end,
|
||||
});
|
||||
readStream.pipe(res);
|
||||
return;
|
||||
}
|
||||
res.statusCode = 416;
|
||||
res.setHeader('Content-Range', `bytes */${lstat.size}`);
|
||||
res.end();
|
||||
};
|
||||
exports.serveStatic = serveStatic;
|
||||
Reference in New Issue
Block a user