Skip to content

Commit 953ff38

Browse files
author
DylanBulmer
committed
v2.0.0-beta.3
1 parent 24395ac commit 953ff38

File tree

18 files changed

+312
-190
lines changed

18 files changed

+312
-190
lines changed

.swcrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"syntax": "typescript",
66
"dynamicImport": true
77
},
8-
"target": "es2021",
8+
"target": "es2015",
99
"keepClassNames": false,
1010
"baseUrl": "./src",
1111
"paths": {

bin/post-build.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
cp package.json README.md dist/
2+
rm -rf ./dist/types/__tests__
3+
rm -rf ./dist/esm/__tests__
4+
5+
cat >dist/cjs/package.json <<!EOF
6+
{
7+
"type": "commonjs"
8+
}
9+
!EOF
10+
11+
cat >dist/esm/package.json <<!EOF
12+
{
13+
"type": "module"
14+
}
15+
!EOF

package.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
{
22
"name": "@dylanbulmer/api",
3-
"version": "2.0.0-beta.2",
3+
"version": "2.0.0-beta.3",
44
"main": "index.js",
55
"author": "Dylan Bulmer <dylan@dylanbulmer.com>",
66
"license": "MIT",
77
"bin": {
8-
"api": "dist/index.js"
8+
"api": "dist/cjs/index.js"
99
},
10-
"type": "commonjs",
10+
"exports": {
11+
".": {
12+
"require": "./cjs/index.js",
13+
"import": "./esm/index.js",
14+
"types": "./types/index.d.ts"
15+
}
16+
},
17+
"type": "module",
1118
"scripts": {
1219
"test": "jest --config jest.config.json --passWithNoTests --coverage",
13-
"build": "yarn clean && swc src -d dist && tsc --emitDeclarationOnly && cp package.json dist/ && chmod +x dist/index.js",
20+
"build:esm": "tsc --project tsconfig.esm.json && tsc-alias -p tsconfig.esm.json",
21+
"build:cjs": "tsc --project tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json",
22+
"build": "yarn build:cjs && yarn build:esm && ./bin/post-build.sh",
23+
"build-old": "yarn clean && swc src -d dist && tsc --emitDeclarationOnly && cp package.json dist/ && chmod +x dist/index.js",
1424
"clean": "rm -rf ./dist/*",
1525
"format": "prettier --write \"src/**/*.(ts|js)\"",
1626
"lint": "eslint -c .eslintrc.json --ignore-path .eslintignore --ext .ts src",
@@ -21,13 +31,16 @@
2131
"node": ">=16"
2232
},
2333
"dependencies": {
34+
"@swc/core": "^1.3.50",
2435
"chalk": "^4.1.2",
2536
"commander": "^11.0.0",
2637
"express": "^4.18.2"
2738
},
39+
"peerDependencies": {
40+
"@swc/core": "^1.3.50"
41+
},
2842
"devDependencies": {
2943
"@swc/cli": "^0.1.62",
30-
"@swc/core": "^1.3.50",
3144
"@swc/jest": "^0.2.26",
3245
"@types/express": "^4.17.17",
3346
"@types/jest": "^29.5.0",
@@ -40,6 +53,7 @@
4053
"jest": "^29.5.0",
4154
"openapi-types": "^11.0.0",
4255
"prettier": "^2.7.1",
56+
"tsc-alias": "^1.8.7",
4357
"typescript": "^4.6.4"
4458
}
4559
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Responses, Route } from "../../../";
2+
3+
const route = new Route()
4+
.summary("Index route")
5+
.description("Testing route")
6+
.tags("TEST")
7+
.response("200", Responses.Response200)
8+
.operation((req, res) => {
9+
res.status(200).json({ detail: { message: "OK" } });
10+
});
11+
12+
export default route;

src/__tests__/DirectoryIndexRoute/routes/index.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Responses, Route } from "../../../../";
2+
3+
const route = new Route()
4+
.summary("Static route")
5+
.description("Testing route")
6+
.tags("TEST")
7+
.response("200", Responses.Response200)
8+
.operation((req, res) => {
9+
res.status(200).json({ detail: { message: "OK" } });
10+
});
11+
12+
export default route;

src/__tests__/DirectoryIndexRoute/routes/test/index.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Responses, Route, Parameter } from "../../../../";
2+
3+
const route = new Route<"test2">()
4+
.params(new Parameter().in("path").name("test2"))
5+
.summary("Static route")
6+
.description("Testing dynamic routes")
7+
.tags("TEST")
8+
.response("200", Responses.Response200)
9+
.operation((req, res) => {
10+
res
11+
.status(200)
12+
.json({ detail: { message: "OK", param: req.params.test2 } });
13+
});
14+
15+
export default route;

src/__tests__/DynamicRoutes/routes/[test2]/index.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/__tests__/DynamicRoutes/routes/test.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Responses, Route } from "../../../../";
2+
3+
const route = new Route()
4+
.summary("Static route")
5+
.description("Testing dynamic routes")
6+
.tags("TEST")
7+
.response("200", Responses.Response200)
8+
.operation((req, res) => {
9+
res.status(200).json({ detail: { message: "OK" } });
10+
});
11+
12+
export default route;

src/__tests__/api-doc.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { OpenAPIV3_1 } from "openapi-types";
2-
import { R200, R201, R204, R400, R401, R403, R404, R418, R500, R503 } from "../classes/responses";
2+
import * as Responses from "../classes/responses";
33

44
const settings: OpenAPIV3_1.Document = {
55
openapi: "3.1.0",
@@ -32,16 +32,16 @@ const settings: OpenAPIV3_1.Document = {
3232

3333
components: {
3434
responses: {
35-
"200": R200,
36-
"201": R201,
37-
"204": R204,
38-
"400": R400,
39-
"401": R401,
40-
"403": R403,
41-
"404": R404,
42-
"418": R418,
43-
"500": R500,
44-
"503": R503,
35+
"200": Responses.Response200.doc(),
36+
"201": Responses.Response201.doc(),
37+
"204": Responses.Response204.doc(),
38+
"400": Responses.Response400.doc(),
39+
"401": Responses.Response401.doc(),
40+
"403": Responses.Response403.doc(),
41+
"404": Responses.Response404.doc(),
42+
"418": Responses.Response418.doc(),
43+
"500": Responses.Response500.doc(),
44+
"503": Responses.Response503.doc(),
4545
},
4646
},
4747
};

src/commands/build.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import getFiles from "@/utils/getFiles";
77
const build = async function build() {
88
const config = await getConfig();
99
const buildDir = path.join(process.cwd(), ".api");
10-
const routesDir = path.join(process.cwd(), config.file.routes);
10+
const routesDir = path.join(
11+
process.cwd(),
12+
config.file.useSrcDir ? `src/${config.file.routes}` : config.file.routes,
13+
);
1114

1215
// clean the repository
1316
if (fs.existsSync(buildDir)) {

0 commit comments

Comments
 (0)