diff --git a/client/src/state/api.ts b/client/src/state/api.ts index a37ca5e..a41f9f4 100644 --- a/client/src/state/api.ts +++ b/client/src/state/api.ts @@ -59,19 +59,19 @@ interface Doc { // Define a service using a base URL and expected endpoints export const apiSlice = createApi({ reducerPath: 'gameApi', - baseQuery: fetchBaseQuery({ baseUrl: window.location.origin + "/api" }), + baseQuery: fetchBaseQuery({ baseUrl: window.location.origin + "/data" }), endpoints: (builder) => ({ getGameInfo: builder.query({ - query: ({game}) => `${game}/game`, + query: ({game}) => `${game}/game.json`, }), loadLevel: builder.query({ - query: ({game, world, level}) => `${game}/level/${world}/${level}`, + query: ({game, world, level}) => `${game}/level__${world}__${level}.json`, }), loadInventoryOverview: builder.query({ - query: ({game}) => `${game}/inventory`, + query: ({game}) => `${game}/inventory.json`, }), loadDoc: builder.query({ - query: ({game, type, name}) => `${game}/doc/${type}/${name}`, + query: ({game, type, name}) => `${game}/doc__${type}__${name}.json`, }), }), }) diff --git a/server/index.mjs b/server/index.mjs index 0f2ce06..83441d4 100644 --- a/server/index.mjs +++ b/server/index.mjs @@ -34,34 +34,15 @@ var router = express.Router(); router.get('/import/status/:owner/:repo', importStatus) router.get('/import/trigger/:owner/:repo', importTrigger) -function loadJson(req, filename) { - const owner = req.params.owner; - const repo = req.params.repo - return JSON.parse(fs.readFileSync(path.join(getGameDir(owner,repo),".lake","gamedata",filename))) -} - -router.get("/api/g/:owner/:repo/game", (req, res) => { - res.send(loadJson(req, `game.json`)); -}); - -router.get("/api/g/:owner/:repo/inventory", (req, res) => { - res.send(loadJson(req, `inventory.json`)); -}); - -router.get("/api/g/:owner/:repo/level/:world/:level", (req, res) => { - const world = req.params.world; - const level = req.params.level; - res.send(loadJson(req, `level__${world}__${level}.json`)); -}); - -router.get("/api/g/:owner/:repo/doc/:type/:name", (req, res) => { - const type = req.params.type; - const name = req.params.name; - res.send(loadJson(req, `doc__${type}__${name}.json`)); -}); - const server = app .use(express.static(path.join(__dirname, '../client/dist/'))) + .use('/data/g/:owner/:repo/*', (req, res, next) => { + const owner = req.params.owner; + const repo = req.params.repo + const filename = req.params[0]; + req.url = filename; + express.static(path.join(getGameDir(owner,repo),".lake","gamedata"))(req, res, next); + }) .use('/', router) .listen(PORT, () => console.log(`Listening on ${PORT}`)); diff --git a/vite.config.ts b/vite.config.ts index 6ec0c2d..a647c0e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -41,7 +41,7 @@ export default defineConfig({ '/import': { target: 'http://localhost:8080', }, - '/api': { + '/data': { target: 'http://localhost:8080', }, }