Files
freeCodeCamp/tools/challenge-editor/api/server.ts
Naomi Carrigan 56820d90f8 feat: add challenge editor tool (#45214)
* feat: add challenge editor tool

chore: prepare API/Client setup

feat: migrate to react!

feat: styling

fix: useEffect loop

feat: add challenge helpers

feat: use actual code editor

feat: styling

Bring it a bit more in line with /learn

* refactor: use workspaces

Which unfortunately required a rollback to React 16, because having
multiple React versions causes all sorts of issues.

* chore: apply Oliver's review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: remove test files for now

* fix: prettier issue

* chore: apply oliver's review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: move scripts to root

* fix: lint errors oops

* chore: remove reportWebVitals thing

* chore: DRY out paths

* fix: create-empty-steps takes one arg

* chore: start doesn't make sense now

* chore: DRY out button requests

* chore: one more review suggestion

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: cleanup CRA files

* fix: correct note for creating new project

* feat: enable js and jsx highlighting

* feat: include all superblocks

* feat: improve button ux

* feat: add "breadcrumbs"

* feat: add link back to block from step tools

* chore: remove unused deps

* chore: apply oliver's review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: parity between file names and commands

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-04-26 12:33:43 -05:00

45 lines
1.1 KiB
TypeScript

import cors from 'cors';
import express from 'express';
import { blockRoute } from './routes/blockRoute';
import { indexRoute } from './routes/indexRoute';
import { saveRoute } from './routes/saveRoute';
import { stepRoute } from './routes/stepRoute';
import { superblockRoute } from './routes/superblockRoute';
import { toolsRoute } from './routes/toolsRoute';
const app = express();
app.use(
cors({
origin: 'http://localhost:3300'
})
);
app.use(express.static('public'));
app.use(express.json());
app.use(express.urlencoded());
app.post('/:superblock/:block/_tools/:command', (req, res, next) => {
toolsRoute(req, res).catch(next);
});
app.post('/:superblock/:block/:step', (req, res, next) => {
saveRoute(req, res).catch(next);
});
app.get('/:superblock/:block/:step', (req, res, next) => {
stepRoute(req, res).catch(next);
});
app.get('/:superblock/:block', (req, res, next) => {
blockRoute(req, res).catch(next);
});
app.get('/:superblock', (req, res, next) => {
superblockRoute(req, res).catch(next);
});
app.get('/', indexRoute);
app.listen(3200, () => console.log('App is live on 3200!'));