Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.

Commit d3317bb

Browse files
update pre-commit hook to include build and bundle commands, and ensure package.json version is bumped to 1.0.6
1 parent a3a927e commit d3317bb

6 files changed

Lines changed: 44 additions & 6 deletions

File tree

.husky/pre-commit

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
pnpm run build
2+
pnpm run bundle
13
pnpm typecheck
24
pnpm test
5+
git add .
36

47
##############################################
58
# Check if package.json is staged for commit #

dist/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "moodle-openapi-server",
3-
"version": "1.0.4",
3+
"version": "1.0.6",
44
"description": "Moddle OpenAPI server",
55
"private": true,
66
"type": "module",
@@ -14,12 +14,14 @@
1414
"build:binary": "bun build src/server.ts --compile --outfile=dist/server",
1515
"build:docker": "docker build --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} -t moodle-openapi-server .",
1616
"typecheck": "tsgo --noEmit",
17+
"test": "bun test",
1718
"dev": "bun --watch src/server.ts",
1819
"dev:mcp": "bun --watch src/index.ts",
1920
"dev:all": "concurrently \"pnpm dev\" \"pnpm dev:mcp\"",
2021
"start:all": "concurrently \"bun dist/src/server.js\" \"bun dist/src/index.js\"",
2122
"start": "bun dist/server.bundle.js",
22-
"inspect": "fastmcp inspect src/index.ts"
23+
"inspect": "fastmcp inspect src/index.ts",
24+
"prepare": "husky"
2325
},
2426
"peerDependencies": {
2527
"@toptiertools/moodle-client": "^1.0.8",
@@ -45,6 +47,7 @@
4547
"@typescript/native-preview": "7.0.0-dev.20250606.1",
4648
"api-spec-converter": "^2.12.0",
4749
"esbuild": "^0.25.5",
50+
"husky": "^9.1.7",
4851
"openapi-types": "^12.1.3",
4952
"ts-add-js-extension": "^1.6.6",
5053
"tsx": "^4.19.4",

dist/server.bundle.js

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,7 +2218,7 @@ var require_lib = __commonJS((exports, module) => {
22182218
var require_package = __commonJS((exports, module) => {
22192219
module.exports = {
22202220
name: "moodle-openapi-server",
2221-
version: "1.0.3",
2221+
version: "1.0.6",
22222222
description: "Moddle OpenAPI server",
22232223
private: true,
22242224
type: "module",
@@ -2227,17 +2227,19 @@ var require_package = __commonJS((exports, module) => {
22272227
},
22282228
files: ["dist"],
22292229
scripts: {
2230-
build: "tsgo && ts-add-js-extension --dir=dist",
2230+
build: "tsgo && ts-add-js-extension --dir=dist && cp package.json dist/package.json",
22312231
bundle: "bun build src/server.ts --outfile=dist/server.bundle.js",
22322232
"build:binary": "bun build src/server.ts --compile --outfile=dist/server",
22332233
"build:docker": "docker build --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} -t moodle-openapi-server .",
22342234
typecheck: "tsgo --noEmit",
2235+
test: "bun test",
22352236
dev: "bun --watch src/server.ts",
22362237
"dev:mcp": "bun --watch src/index.ts",
22372238
"dev:all": 'concurrently "pnpm dev" "pnpm dev:mcp"',
22382239
"start:all": 'concurrently "bun dist/src/server.js" "bun dist/src/index.js"',
22392240
start: "bun dist/server.bundle.js",
2240-
inspect: "fastmcp inspect src/index.ts"
2241+
inspect: "fastmcp inspect src/index.ts",
2242+
prepare: "husky"
22412243
},
22422244
peerDependencies: {
22432245
"@toptiertools/moodle-client": "^1.0.8",
@@ -2263,6 +2265,7 @@ var require_package = __commonJS((exports, module) => {
22632265
"@typescript/native-preview": "7.0.0-dev.20250606.1",
22642266
"api-spec-converter": "^2.12.0",
22652267
esbuild: "^0.25.5",
2268+
husky: "^9.1.7",
22662269
"openapi-types": "^12.1.3",
22672270
"ts-add-js-extension": "^1.6.6",
22682271
tsx: "^4.19.4",
@@ -311512,6 +311515,16 @@ var html = (strings, ...values) => {
311512311515
return buffer.length === 1 ? "callbacks" in buffer ? raw(resolveCallbackSync(raw(buffer[0], buffer.callbacks))) : raw(buffer[0]) : stringBufferToString(buffer, buffer.callbacks);
311513311516
};
311514311517

311518+
// src/get-domain-url.ts
311519+
function getDomainUrl(request, options) {
311520+
const host = request.headers.get("X-Forwarded-Host") ?? request.headers.get("Host") ?? options?.defaultHost;
311521+
if (!host) {
311522+
throw new Error("Host is required");
311523+
}
311524+
const protocol = options?.protocol ?? (host.includes("localhost") ? "http" : "https");
311525+
return `${protocol}://${host}`;
311526+
}
311527+
311515311528
// src/server.ts
311516311529
var baseURL = process.env.MOODLE_BASE_URL;
311517311530
if (!baseURL) {
@@ -311539,6 +311552,13 @@ var moodleAuth = async (c, next) => {
311539311552
var app = new Hono2;
311540311553
app.use(cors());
311541311554
app.use(logger());
311555+
app.use(async (c, next) => {
311556+
const domainUrl = getDomainUrl(c.req.raw, {
311557+
defaultHost: "localhost:3000"
311558+
});
311559+
c.set("domainUrl", domainUrl);
311560+
await next();
311561+
});
311542311562
app.use("/api/*", moodleAuth);
311543311563
app.post("/api/usecases/:function", async (c) => {
311544311564
const functionName = c.req.param("function");
@@ -311610,21 +311630,31 @@ app.get("/meta", async (c) => {
311610311630
});
311611311631
app.get("/docs/swagger/:id", (c) => {
311612311632
const id = c.req.param("id");
311633+
const domainUrl = c.get("domainUrl");
311613311634
const swaggerDocs = swagger2.filter(Boolean);
311614311635
const doc = swaggerDocs[Number(id)];
311615311636
if (!doc) {
311616311637
return c.json({ error: true, message: "Invalid id" }, { status: 400 });
311617311638
}
311639+
console.log(domainUrl);
311640+
doc.host = domainUrl;
311618311641
return c.json(doc, { status: 200 });
311619311642
});
311620311643
app.get("/docs/openapi_3_1/:id{.+\\.json}", (c) => {
311621311644
const id = c.req.param("id");
311645+
const domainUrl = c.get("domainUrl");
311622311646
const idWithoutJson = id.replace(".json", "");
311623311647
const openapi31Docs = [openapi31, usecaseOpenapi].filter(Boolean);
311624311648
const doc = openapi31Docs[Number(idWithoutJson)];
311625311649
if (!doc) {
311626311650
return c.json({ error: true, message: "Invalid id" }, { status: 400 });
311627311651
}
311652+
doc.servers = [
311653+
{
311654+
url: `${domainUrl}/api`,
311655+
description: "Moodle webservice API"
311656+
}
311657+
];
311628311658
return c.json(doc, { status: 200 });
311629311659
});
311630311660
app.get("/docs/openapi_3_1/:id", (c) => {

dist/src/server.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ app.get("/docs/swagger/:id", (c) => {
141141
if (!doc) {
142142
return c.json({ error: true, message: "Invalid id" }, { status: 400 });
143143
}
144+
console.log(domainUrl);
144145
// we need to update the basePath in the swagger doc
145146
doc.host = domainUrl;
146147
return c.json(doc, { status: 200 });

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "moodle-openapi-server",
3-
"version": "1.0.5",
3+
"version": "1.0.6",
44
"description": "Moddle OpenAPI server",
55
"private": true,
66
"type": "module",

src/server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ app.get("/docs/swagger/:id", (c) => {
216216
if (!doc) {
217217
return c.json({ error: true, message: "Invalid id" }, { status: 400 });
218218
}
219+
console.log(domainUrl);
219220
// we need to update the basePath in the swagger doc
220221
doc.host = domainUrl;
221222

0 commit comments

Comments
 (0)