Skip to content

Commit 44a240d

Browse files
authored
Initial commit
0 parents  commit 44a240d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+7550
-0
lines changed

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
2+
charset = utf-8
3+
indent_size = 2
4+
indent_style = space
5+
insert_final_newline = true
6+
trim_trailing_whitespace = true
7+
8+
[*.{html}]
9+
charset = utf-8
10+
indent_size = 4
11+
indent_style = space
12+
insert_final_newline = true
13+
trim_trailing_whitespace = true

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: uninen

.github/renovate.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": ["config:recommended", "group:all", "npm:unpublishSafe", "helpers:pinGitHubActionDigestsToSemver"],
4+
"enabledManagers": ["npm", "github-actions"],
5+
"schedule": ["after 6am every weekday"],
6+
"packageRules": [
7+
{
8+
"matchManagers": ["npm"],
9+
"minimumReleaseAge": "3 days",
10+
"automerge": true
11+
},
12+
{
13+
"automerge": true,
14+
"matchPackageNames": ["/github-actions/"]
15+
}
16+
],
17+
"timezone": "Europe/Helsinki",
18+
"dependencyDashboard": true
19+
}

.github/workflows/tests.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Tests
2+
permissions:
3+
contents: read
4+
pull-requests: write
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
paths:
11+
- "src/**"
12+
- "tests/**"
13+
- "pnpm-lock.yaml"
14+
- ".github/workflows/tests.yml"
15+
pull_request:
16+
paths:
17+
- "src/**"
18+
- "tests/**"
19+
- "pnpm-lock.yaml"
20+
- ".github/workflows/tests.yml"
21+
workflow_dispatch:
22+
23+
concurrency:
24+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
25+
cancel-in-progress: true
26+
27+
jobs:
28+
tests:
29+
runs-on: ubuntu-latest
30+
strategy:
31+
matrix:
32+
browser: [webkit, firefox, chromium]
33+
34+
steps:
35+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
36+
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
37+
with:
38+
version: 10
39+
run_install: false
40+
41+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
42+
with:
43+
node-version: 22
44+
cache: "pnpm"
45+
46+
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
47+
id: playwright-cache
48+
with:
49+
path: |
50+
~/.cache/ms-playwright
51+
key: ${{ runner.os }}-${{ matrix.browser }}-playwright-${{ hashFiles('**/pnpm-lock.yaml') }}
52+
53+
- name: Install deps
54+
run: pnpm install --frozen-lockfile
55+
56+
- name: Type Check
57+
run: pnpm ts
58+
59+
- name: Run unit tests
60+
run: pnpm vitest run --coverage
61+
62+
- run: pnpm exec playwright install --with-deps ${{ matrix.browser }}
63+
if: steps.playwright-cache.outputs.cache-hit != 'true'
64+
65+
- run: pnpm exec playwright install-deps ${{ matrix.browser }}
66+
if: steps.playwright-cache.outputs.cache-hit == 'true'
67+
68+
- name: Build
69+
run: pnpm vite build
70+
71+
- name: Run e2e tests
72+
run: pnpm playwright test --project="${{ matrix.browser }}"
73+
74+
- name: Coverage
75+
uses: davelosert/vitest-coverage-report-action@8ab049ff5a2c6e78f78af446329379b318544a1a # v2.8.3
76+
if: ${{ matrix.browser == 'webkit' && success() }}

.gitignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
.DS_Store
2+
node_modules
3+
dist
4+
dist-ssr
5+
6+
/tests/e2e/videos/
7+
/tests/e2e/screenshots/
8+
/instrumented
9+
/coverage
10+
.nyc_output
11+
12+
# local env files
13+
.env
14+
.env.local
15+
.env.*.local
16+
17+
# Log files
18+
npm-debug.log*
19+
yarn-debug.log*
20+
yarn-error.log*
21+
pnpm-debug.log*
22+
23+
# Editor directories and files
24+
.idea
25+
*.suo
26+
*.ntvs*
27+
*.njsproj
28+
*.sln
29+
*.sw?
30+
31+
*.local
32+
LOCAL_NOTES.md
33+
/playwright/.cache
34+
package-lock.json
35+
*.tsbuildinfo
36+
.vscode/starter.code-workspace
37+
test-results/

.prettierrc.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"$schema": "https://json.schemastore.org/prettierrc",
3+
"semi": false,
4+
"tabWidth": 2,
5+
"singleQuote": true,
6+
"printWidth": 120,
7+
"arrowParens": "avoid",
8+
"trailingComma": "es5"
9+
}

.vscode/extensions.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"recommendations": [
3+
"Vue.volar",
4+
"vitest.explorer",
5+
"ms-playwright.playwright",
6+
"dbaeumer.vscode-eslint",
7+
"esbenp.prettier-vscode",
8+
"bradlc.vscode-tailwindcss"
9+
]
10+
}

.vscode/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"explorer.fileNesting.enabled": false,
3+
"explorer.fileNesting.patterns": {
4+
"tsconfig.json": "tsconfig.*.json, env.d.ts, auto-imports.d.ts, components.d.ts, interface-extensions.d.ts",
5+
"vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
6+
"package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .prettier*, prettier*, .editorconfig",
7+
"tailwind.config.cjs": "postcss.config.cjs"
8+
},
9+
"editor.codeActionsOnSave": {
10+
"source.fixAll": "explicit"
11+
},
12+
"editor.formatOnSave": true,
13+
"editor.defaultFormatter": "esbenp.prettier-vscode"
14+
}

0 commit comments

Comments
 (0)