diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +18 diff --git a/package.json b/package.json index f9fec60..7a83672 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "description": "The serverless Postlight Parser API", "main": "src/handler.js", "scripts": { + "start": "node server.js", "deploy:env": "cross-env-shell sls deploy --stage $NODE_ENV", "deploy": "cross-env NODE_ENV=dev yarn deploy:env", "deploy:prod": "cross-env NODE_ENV=prod yarn deploy:env", @@ -23,7 +24,8 @@ }, "dependencies": { "@postlight/parser": "^2.2.2", - "@types/aws-lambda": "^8.10.15" + "@types/aws-lambda": "^8.10.15", + "express": "^4.18.2" }, "devDependencies": { "@babel/core": "7.3.3", diff --git a/server.js b/server.js new file mode 100644 index 0000000..8bf11b7 --- /dev/null +++ b/server.js @@ -0,0 +1,18 @@ +const express = require('express'); +const Mercury = require('@postlight/parser'); +const app = express(); + +app.get('/parser', async (req, res) => { + const url = req.query.url; + try { + const result = await Mercury.parse(url); + res.json(result); + } catch (e) { + res.status(500).json({ error: 'Failed to parse URL', details: e.message }); + } +}); + +const port = process.env.PORT || 3000; +app.listen(port, () => { + console.log(`Mercury Parser listening on port ${port}`); +});