Files
StevenandGitHub 4466ba436b chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

47 lines
1.1 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from "next";
import Unsplash, { toJson } from "unsplash-js";
import fetch from "node-fetch";
global.fetch = fetch;
export default function download(req: NextApiRequest, res: NextApiResponse) {
const {
query: { id },
} = req;
const u = new Unsplash({ accessKey: process.env.UNSPLASH_ACCESS_KEY });
return new Promise((resolve) => {
u.photos
.getPhoto(id.toString())
.then(toJson)
.then((json) => {
u.photos.downloadPhoto(json);
const filePath = json.links.download;
const fileName = id + ".jpg";
res.setHeader(
"content-disposition",
"attachment; filename=" + fileName,
);
fetch(filePath)
.then((r) => r.buffer())
.then((buff) => {
res.end(buff);
resolve();
})
.catch((error) => {
res.json(error);
res.status(405).end();
resolve();
});
})
.catch((error) => {
res.json(error);
res.status(405).end();
resolve();
});
});
}