From 13cf1e5c28ec739d2d35617bd57d7cf8203c3f7e Mon Sep 17 00:00:00 2001 From: DPende Date: Fri, 29 Nov 2024 23:38:25 +0100 Subject: [PATCH] chore: set up eslint and prettier for code linting and formatting --- scrapegraph-js/.prettierignore | 1 + scrapegraph-js/.prettierrc.json | 11 ++++++++++ scrapegraph-js/eslint.config.js | 11 ++++++++++ scrapegraph-js/package-lock.json | 35 ++++++++++++++++++++++++++++---- scrapegraph-js/package.json | 12 ++++++++++- 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 scrapegraph-js/.prettierignore create mode 100644 scrapegraph-js/.prettierrc.json create mode 100644 scrapegraph-js/eslint.config.js diff --git a/scrapegraph-js/.prettierignore b/scrapegraph-js/.prettierignore new file mode 100644 index 0000000..30bc162 --- /dev/null +++ b/scrapegraph-js/.prettierignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/scrapegraph-js/.prettierrc.json b/scrapegraph-js/.prettierrc.json new file mode 100644 index 0000000..57e2f8b --- /dev/null +++ b/scrapegraph-js/.prettierrc.json @@ -0,0 +1,11 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "tabWidth": 2, + "useTabs": false, + "printWidth": 110, + "bracketSpacing": true, + "arrowParens": "always", + "quoteProps": "preserve" +} diff --git a/scrapegraph-js/eslint.config.js b/scrapegraph-js/eslint.config.js new file mode 100644 index 0000000..01a4fe2 --- /dev/null +++ b/scrapegraph-js/eslint.config.js @@ -0,0 +1,11 @@ +import globals from 'globals'; +import pluginJs from '@eslint/js'; +import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, + pluginJs.configs.recommended, + eslintPluginPrettierRecommended, + { ignorePatterns: ['node_modules/'] }, +]; diff --git a/scrapegraph-js/package-lock.json b/scrapegraph-js/package-lock.json index cb84fb4..cd44aa4 100644 --- a/scrapegraph-js/package-lock.json +++ b/scrapegraph-js/package-lock.json @@ -1,18 +1,20 @@ { - "name": "scrapegraph-sdk", + "name": "scrapegraph-js", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "scrapegraph-sdk", + "name": "scrapegraph-js", "version": "0.0.1", "license": "MIT", "dependencies": { - "axios": "^1.6.0" + "axios": "^1.6.0", + "zod": "^3.23.8" }, "devDependencies": { - "dotenv": "^16.4.5" + "dotenv": "^16.4.5", + "prettier": "3.4.1" } }, "node_modules/asynckit": { @@ -121,11 +123,36 @@ "node": ">= 0.6" } }, + "node_modules/prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/scrapegraph-js/package.json b/scrapegraph-js/package.json index e2d1ffb..e894b2f 100644 --- a/scrapegraph-js/package.json +++ b/scrapegraph-js/package.json @@ -8,6 +8,10 @@ "url": "https://github.com/ScrapeGraphAI/scrapegraph-sdk", "directory": "scrapegraph-js" }, + "scripts": { + "format": "prettier --write --cache --cache-strategy metadata . !dist", + "lint": "eslint ." + }, "license": "MIT", "homepage": "https://github.com/ScrapeGraphAI/scrapegraph-sdk/tree/main/scrapegraph-js", "keywords": [ @@ -27,6 +31,12 @@ "zod": "^3.23.8" }, "devDependencies": { - "dotenv": "^16.4.5" + "@eslint/js": "^9.16.0", + "dotenv": "^16.4.5", + "eslint": "^9.16.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "globals": "^15.12.0", + "prettier": "3.4.1" } }