Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Eslint + ci #5

Open
wants to merge 3 commits into
base: 1-1.1-release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: TutorFx
30 changes: 30 additions & 0 deletions .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: autofix.ci # needed to securely identify the workflow

on:
pull_request:
push:
branches: [main]
permissions:
contents: read

jobs:
autofix:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: pnpm

# TODO: add all code-fixing here.
- name: Install
run: pnpm install

- name: Lint
run: pnpm run lint --fix

- uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc
with:
commit-message: 🚨 Fix compiler / linter warnings.
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI

on:
push:
branches:
- main

pull_request:
branches:
- main

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: pnpm

- name: Install
run: pnpm install

- name: Lint
run: pnpm run lint

typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: pnpm

- name: Install
run: pnpm install

- name: Typecheck
run: pnpm run typecheck
10 changes: 10 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"recommendations": [
"antfu.iconify",
"antfu.unocss",
"antfu.goto-alias",
"csstools.postcss",
"dbaeumer.vscode-eslint",
"vue.volar"
]
}
45 changes: 45 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"files.associations": {
"*.css": "postcss"
},

// Enable the ESlint flat config support
"eslint.experimental.useFlatConfig": true,

// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,

// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},

// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off" },
{ "rule": "*-indent", "severity": "off" },
{ "rule": "*-spacing", "severity": "off" },
{ "rule": "*-spaces", "severity": "off" },
{ "rule": "*-order", "severity": "off" },
{ "rule": "*-dangle", "severity": "off" },
{ "rule": "*-newline", "severity": "off" },
{ "rule": "*quotes", "severity": "off" },
{ "rule": "*semi", "severity": "off" }
],

// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml"
]
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ To learn more about Nuxt.js, take a look at the following resources:
- [Nuxt.js Documentation](https://nuxt.com/docs) - learn about Nuxt.js features and API.
- [FastAPI Documentation](https://fastapi.tiangolo.com/) - learn about FastAPI features and API.

You can check out [the Nuxt.js GitHub repository](https://github.com/nuxt/nuxt.js/) - your feedback and contributions are welcome!
You can check out [the Nuxt.js GitHub repository](https://github.com/nuxt/nuxt.js/) - your feedback and contributions are welcome!
2 changes: 1 addition & 1 deletion app.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
<div>
<NuxtWelcome />
</div>
</template>
</template>
12 changes: 12 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// @ts-check
import antfu from '@antfu/eslint-config'
import nuxt from './.nuxt/eslint.config.mjs'

export default nuxt(
antfu(
{
unocss: true,
formatters: true,
},
),
)
50 changes: 44 additions & 6 deletions nuxt.config.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,54 @@
import process from 'node:process'

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
modules: [
'@unocss/nuxt',
'@nuxt/eslint',
],

features: {
// For UnoCSS
inlineStyles: false,
},

eslint: {
config: {
standalone: false,
},
},

experimental: {
// when using generate, payload js assets included in sw precache manifest
// but missing on offline, disabling extraction it until fixed
payloadExtraction: false,
renderJsonPayloads: true,
typedPages: true,
},

css: [
'@unocss/reset/tailwind.css',
],

devtools: { enabled: true },
srcDir: "src/",

nitro: {
esbuild: {
options: {
target: 'esnext',
},
},
},

routeRules: {
'/api/**': {
proxy: process.env.NODE_ENV === "development" ? "http://127.0.0.1:8000/api/**" : "/api/**",
proxy: process.env.NODE_ENV === 'development' ? 'http://127.0.0.1:8000/api/**' : '/api/**',
},
'/docs': {
proxy: "http://127.0.0.1:8000/docs",
proxy: 'http://127.0.0.1:8000/docs',
},
'/openapi.json': {
proxy: "http://127.0.0.1:8000/openapi.json",
}
}
proxy: 'http://127.0.0.1:8000/openapi.json',
},
},
})
21 changes: 15 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
{
"name": "nuxtjs-fastapi",
"private": true,
"type": "module",
"private": true,
"packageManager": "pnpm@8.15.6",
"scripts": {
"build": "nuxt build",
"fastapi-dev": "pip3 install -r requirements.txt && python -m uvicorn api.index:app --reload",
"nuxt-dev": "nuxt dev",
"dev": "concurrently \"npm run nuxt-dev\" \"npm run fastapi-dev\"",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
"postinstall": "nuxt prepare",
"lint": "eslint .",
"typecheck": "vue-tsc --noEmit"
},
"devDependencies": {
"@antfu/eslint-config": "^2.15.0",
"@nuxt/devtools": "^1.2.0",
"@nuxt/eslint": "^0.3.8",
"@unocss/eslint-config": "^0.59.4",
"@unocss/nuxt": "^0.59.4",
"concurrently": "^8.2.2",
"eslint": "^9.1.0",
"eslint-plugin-format": "^0.1.1",
"nuxt": "^3.11.2",
"typescript": "^5.4.5",
"vue": "^3.4.23",
"vue-router": "^4.3.2"
},
"dependencies": {
"concurrently": "^8.2.2"
"vue-router": "^4.3.2",
"vue-tsc": "^2.0.13"
}
}
Loading
Loading