chore: move nested respondImage() function to top level

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>
This commit is contained in:
Martin d'Allens 2023-11-19 23:28:42 +01:00 committed by Andrew Calcutt
parent 2525b29cf4
commit 3437a653b3

View file

@ -352,21 +352,8 @@ const calcZForBBox = (bbox, w, h, query) => {
return z; return z;
}; };
const existingFonts = {}; const respondImage = (
let maxScaleFactor = 2; options,
export const serve_rendered = {
init: (options, repo) => {
maxScaleFactor = Math.min(Math.floor(options.maxScaleFactor || 3), 9);
let scalePattern = '';
for (let i = 2; i <= maxScaleFactor; i++) {
scalePattern += i.toFixed();
}
scalePattern = `@[${scalePattern}]x`;
const app = express().disable('x-powered-by');
const respondImage = (
item, item,
z, z,
lon, lon,
@ -381,7 +368,7 @@ export const serve_rendered = {
next, next,
opt_overlay, opt_overlay,
opt_mode = 'tile', opt_mode = 'tile',
) => { ) => {
if ( if (
Math.abs(lon) > 180 || Math.abs(lon) > 180 ||
Math.abs(lat) > 85.06 || Math.abs(lat) > 85.06 ||
@ -439,10 +426,7 @@ export const serve_rendered = {
pool.release(renderer); pool.release(renderer);
if (err) { if (err) {
console.error(err); console.error(err);
return res return res.status(500).header('Content-Type', 'text/plain').send(err);
.status(500)
.header('Content-Type', 'text/plain')
.send(err);
} }
// Fix semi-transparent outlines on raw, premultiplied input // Fix semi-transparent outlines on raw, premultiplied input
@ -493,12 +477,7 @@ export const serve_rendered = {
composite_array.push({ input: opt_overlay }); composite_array.push({ input: opt_overlay });
} }
if (item.watermark) { if (item.watermark) {
const canvas = renderWatermark( const canvas = renderWatermark(width, height, scale, item.watermark);
width,
height,
scale,
item.watermark,
);
composite_array.push({ input: canvas.toBuffer() }); composite_array.push({ input: canvas.toBuffer() });
} }
@ -540,7 +519,21 @@ export const serve_rendered = {
}); });
}); });
}); });
}; };
const existingFonts = {};
let maxScaleFactor = 2;
export const serve_rendered = {
init: (options, repo) => {
maxScaleFactor = Math.min(Math.floor(options.maxScaleFactor || 3), 9);
let scalePattern = '';
for (let i = 2; i <= maxScaleFactor; i++) {
scalePattern += i.toFixed();
}
scalePattern = `@[${scalePattern}]x`;
const app = express().disable('x-powered-by');
app.get( app.get(
`/:id/:z(\\d+)/:x(\\d+)/:y(\\d+):scale(${scalePattern})?.:format([\\w]+)`, `/:id/:z(\\d+)/:x(\\d+)/:y(\\d+):scale(${scalePattern})?.:format([\\w]+)`,
@ -582,6 +575,7 @@ export const serve_rendered = {
z, z,
); );
return respondImage( return respondImage(
options,
item, item,
z, z,
tileCenter[0], tileCenter[0],
@ -664,6 +658,7 @@ export const serve_rendered = {
); );
return respondImage( return respondImage(
options,
item, item,
z, z,
x, x,
@ -745,6 +740,7 @@ export const serve_rendered = {
req.query, req.query,
); );
return respondImage( return respondImage(
options,
item, item,
z, z,
x, x,
@ -879,6 +875,7 @@ export const serve_rendered = {
); );
return respondImage( return respondImage(
options,
item, item,
z, z,
x, x,