diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..c2b8788 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,11 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +# Format code +npm run format +# Lint code +npm run lint +# Run build +npm run build +# Run tests +npm test diff --git a/package-lock.json b/package-lock.json index ca2fb34..5416ed7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@inference-gateway/sdk", - "version": "0.3.0", + "version": "0.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@inference-gateway/sdk", - "version": "0.3.0", + "version": "0.4.1", "license": "MIT", "devDependencies": { "@eslint/js": "^9.18.0", @@ -16,7 +16,9 @@ "@typescript-eslint/parser": "^8.21.0", "eslint": "^9.18.0", "eslint-plugin-prettier": "^5.2.3", + "husky": "^9.1.7", "jest": "^29.7.0", + "prettier": "^3.5.3", "ts-jest": "^29.2.5", "typescript": "^5.7.3" }, @@ -3001,6 +3003,22 @@ "node": ">=10.17.0" } }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4463,12 +4481,11 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index dc218af..f210ab3 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "build": "tsc", "test": "jest", "lint": "eslint src/**/*.ts", - "prepare": "npm run build" + "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"", + "prepare": "husky" }, "devDependencies": { "@eslint/js": "^9.18.0", @@ -59,7 +60,9 @@ "@typescript-eslint/parser": "^8.21.0", "eslint": "^9.18.0", "eslint-plugin-prettier": "^5.2.3", + "husky": "^9.1.7", "jest": "^29.7.0", + "prettier": "^3.5.3", "ts-jest": "^29.2.5", "typescript": "^5.7.3" }, diff --git a/tests/client.test.ts b/tests/client.test.ts index c0b35e4..8c20095 100644 --- a/tests/client.test.ts +++ b/tests/client.test.ts @@ -325,9 +325,9 @@ describe('InferenceGatewayClient', () => { id: 'call_123', type: 'function', function: { - name: 'get_weather', - arguments: '{"location":"San Francisco, CA"}' - } + name: 'get_weather', + arguments: '{"location":"San Francisco, CA"}', + }, }); expect(callbacks.onFinish).toHaveBeenCalledTimes(1); });