mirror of
https://github.com/FranP-code/shortly.git
synced 2025-10-13 00:43:28 +00:00
fastify initial commit
This commit is contained in:
15
.eslintrc.json
Normal file
15
.eslintrc.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true,
|
||||
"es2021": true
|
||||
},
|
||||
"extends": "standard",
|
||||
"overrides": [
|
||||
],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest"
|
||||
},
|
||||
"rules": {
|
||||
}
|
||||
}
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
yarn.lock
|
||||
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM ubuntu:latest
|
||||
|
||||
RUN apt upgrade && apt update
|
||||
RUN apt install -y curl
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - &&\
|
||||
apt-get install -y nodejs
|
||||
|
||||
RUN npm install --global yarn
|
||||
|
||||
COPY [".", "/usr/src"]
|
||||
WORKDIR "/usr/src"
|
||||
|
||||
RUN yarn
|
||||
|
||||
CMD ["yarn", "dev"]
|
||||
10
docker-compose.yml
Normal file
10
docker-compose.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
volumes:
|
||||
- .:/usr/src
|
||||
- /usr/src/node_modules
|
||||
ports:
|
||||
- "3000:3000"
|
||||
10
forbidden-ids.json
Normal file
10
forbidden-ids.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{"forbidden-ids": [
|
||||
"settings",
|
||||
"register",
|
||||
"login",
|
||||
"admin",
|
||||
"franp",
|
||||
"github",
|
||||
"linkedin",
|
||||
"add"
|
||||
]}
|
||||
33
package.json
Normal file
33
package.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "url-shorter",
|
||||
"description": "",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node src/index.js",
|
||||
"dev": "nodemon src/index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/monatheoctocat/my_package.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "FranP-Code",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/monatheoctocat/my_package/issues"
|
||||
},
|
||||
"homepage": "https://github.com/monatheoctocat/my_package",
|
||||
"dependencies": {
|
||||
"@fastify/jwt": "^6.5.0",
|
||||
"fastify": "^4.10.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.0.1",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-plugin-import": "^2.25.2",
|
||||
"eslint-plugin-n": "^15.0.0",
|
||||
"eslint-plugin-promise": "^6.0.0",
|
||||
"nodemon": "^2.0.20"
|
||||
}
|
||||
}
|
||||
19
src/index.js
Normal file
19
src/index.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const fastify = require('fastify')({ logger: true })
|
||||
|
||||
const addUrl = require('./routes/add-url')
|
||||
const index = require('./routes/index')
|
||||
const urlShortener = require('./routes/url-shortener')
|
||||
|
||||
fastify.register(index)
|
||||
fastify.register(urlShortener)
|
||||
fastify.register(addUrl)
|
||||
|
||||
const start = async () => {
|
||||
try {
|
||||
await fastify.listen({ port: process.env.PORT || 3000, host: '0.0.0.0' })
|
||||
} catch (err) {
|
||||
fastify.log.error(err)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
start()
|
||||
16
src/routes/add-url.js
Normal file
16
src/routes/add-url.js
Normal file
@@ -0,0 +1,16 @@
|
||||
module.exports = async function (fastify, options) {
|
||||
fastify.register(require('@fastify/jwt'), {
|
||||
secret: 'supersecret123'
|
||||
})
|
||||
|
||||
fastify.post('/add', (req, reply) => {
|
||||
// some code
|
||||
const token = fastify.jwt.sign({ abc: 123 })
|
||||
console.log(token)
|
||||
reply.send({ token })
|
||||
})
|
||||
|
||||
fastify.listen({ port: 3000 }, (err) => {
|
||||
if (err) throw err
|
||||
})
|
||||
}
|
||||
5
src/routes/index.js
Normal file
5
src/routes/index.js
Normal file
@@ -0,0 +1,5 @@
|
||||
module.exports = async function (fastify, options) {
|
||||
fastify.get('/', async (request, reply) => {
|
||||
return { test: 'testValue' }
|
||||
})
|
||||
}
|
||||
6
src/routes/url-shortener.js
Normal file
6
src/routes/url-shortener.js
Normal file
@@ -0,0 +1,6 @@
|
||||
module.exports = async function (fastify, options) {
|
||||
fastify.get('/:id', async (request, reply) => {
|
||||
const { id } = request.params
|
||||
return { test: id }
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user