diff --git a/.changeset/quiet-feet-look.md b/.changeset/quiet-feet-look.md
new file mode 100644
index 000000000..10e33ab7d
--- /dev/null
+++ b/.changeset/quiet-feet-look.md
@@ -0,0 +1,5 @@
+---
+'vite-plugin-kit-routes': patch
+---
+
+remove a warning log that is internal
diff --git a/.changeset/rare-papayas-cover.md b/.changeset/rare-papayas-cover.md
new file mode 100644
index 000000000..e10b975f0
--- /dev/null
+++ b/.changeset/rare-papayas-cover.md
@@ -0,0 +1,5 @@
+---
+'@kitql/eslint-config': patch
+---
+
+add option to format by file/dir/glob with arg `-g`
diff --git a/packages/create-kitql/templates/sveltekit-remult/.eslintignore b/packages/create-kitql/templates/sveltekit-remult/.eslintignore
deleted file mode 100644
index caba32592..000000000
--- a/packages/create-kitql/templates/sveltekit-remult/.eslintignore
+++ /dev/null
@@ -1,16 +0,0 @@
-.DS_Store
-node_modules
-/build
-/.svelte-kit
-/package
-.env
-.env.*
-!.env.example
-
-# Ignore files for PNPM, NPM and YARN
-pnpm-lock.yaml
-package-lock.json
-yarn.lock
-
-# Ignore files that are project specific
-/db
\ No newline at end of file
diff --git a/packages/create-kitql/templates/sveltekit-remult/.eslintrc.cjs b/packages/create-kitql/templates/sveltekit-remult/.eslintrc.cjs
index a45c7ba3d..891a06a30 100644
--- a/packages/create-kitql/templates/sveltekit-remult/.eslintrc.cjs
+++ b/packages/create-kitql/templates/sveltekit-remult/.eslintrc.cjs
@@ -1,34 +1,5 @@
/** @type { import("eslint").Linter.FlatConfig } */
module.exports = {
- root: true,
- extends: [
- 'eslint:recommended',
- 'plugin:@typescript-eslint/recommended',
- 'plugin:svelte/recommended',
- 'prettier'
- ],
- rules: {
- // Some specific rules ?
- },
- parser: '@typescript-eslint/parser',
- plugins: ['@typescript-eslint'],
- parserOptions: {
- sourceType: 'module',
- ecmaVersion: 2020,
- extraFileExtensions: ['.svelte']
- },
- env: {
- browser: true,
- es2017: true,
- node: true
- },
- overrides: [
- {
- files: ['*.svelte'],
- parser: 'svelte-eslint-parser',
- parserOptions: {
- parser: '@typescript-eslint/parser'
- }
- }
- ]
-};
+ extends: ['@kitql'],
+ rules: {},
+}
diff --git a/packages/create-kitql/templates/sveltekit-remult/.meta.json b/packages/create-kitql/templates/sveltekit-remult/.meta.json
index 12a1f6afa..67f9ef5ad 100644
--- a/packages/create-kitql/templates/sveltekit-remult/.meta.json
+++ b/packages/create-kitql/templates/sveltekit-remult/.meta.json
@@ -1,5 +1,5 @@
{
- "label": "SvelteKit Remult",
- "hint": "Minimul setup for SvelteKit & Remult",
- "order": 2
+ "label": "SvelteKit Remult",
+ "hint": "Minimul setup for SvelteKit & Remult",
+ "order": 2
}
diff --git a/packages/create-kitql/templates/sveltekit-remult/.prettierignore b/packages/create-kitql/templates/sveltekit-remult/.prettierignore
index caba32592..8edb96451 100644
--- a/packages/create-kitql/templates/sveltekit-remult/.prettierignore
+++ b/packages/create-kitql/templates/sveltekit-remult/.prettierignore
@@ -13,4 +13,4 @@ package-lock.json
yarn.lock
# Ignore files that are project specific
-/db
\ No newline at end of file
+/db
diff --git a/packages/create-kitql/templates/sveltekit-remult/.prettierrc b/packages/create-kitql/templates/sveltekit-remult/.prettierrc
deleted file mode 100644
index 95730232b..000000000
--- a/packages/create-kitql/templates/sveltekit-remult/.prettierrc
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "useTabs": true,
- "singleQuote": true,
- "trailingComma": "none",
- "printWidth": 100,
- "plugins": ["prettier-plugin-svelte"],
- "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
-}
diff --git a/packages/create-kitql/templates/sveltekit-remult/.prettierrc.cjs b/packages/create-kitql/templates/sveltekit-remult/.prettierrc.cjs
new file mode 100644
index 000000000..a7a0da50f
--- /dev/null
+++ b/packages/create-kitql/templates/sveltekit-remult/.prettierrc.cjs
@@ -0,0 +1,6 @@
+const config = require('@kitql/eslint-config/.prettierrc.cjs')
+
+module.exports = {
+ ...config,
+ // Some custom things?
+}
diff --git a/packages/create-kitql/templates/sveltekit-remult/README.md b/packages/create-kitql/templates/sveltekit-remult/README.md
index 3a619ea2d..e0e6c628a 100644
--- a/packages/create-kitql/templates/sveltekit-remult/README.md
+++ b/packages/create-kitql/templates/sveltekit-remult/README.md
@@ -29,5 +29,4 @@ TODO...
## Info
-xxx.spec.ts for unit test
-xxx.e2e.ts for e2e test
+xxx.spec.ts for unit test xxx.e2e.ts for e2e test
diff --git a/packages/create-kitql/templates/sveltekit-remult/package.json b/packages/create-kitql/templates/sveltekit-remult/package.json
index c01e90711..23d85edd5 100644
--- a/packages/create-kitql/templates/sveltekit-remult/package.json
+++ b/packages/create-kitql/templates/sveltekit-remult/package.json
@@ -1,41 +1,35 @@
{
- "name": "create-kitql-sveltekit-remult",
- "version": "0.0.1",
- "type": "module",
- "private": true,
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
- "check:w": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
- "format": "prettier --write .",
- "lint": "prettier --check . && eslint .",
- "test": "vitest",
- "test:e2e": "playwright test",
- "test:ci": "npm run test:e2e && npm run test"
- },
- "devDependencies": {
- "@playwright/test": "^1.28.1",
- "@sveltejs/adapter-auto": "^3.0.0",
- "@sveltejs/kit": "^2.0.0",
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
- "@typescript-eslint/eslint-plugin": "^6.0.0",
- "@typescript-eslint/parser": "^6.0.0",
- "eslint": "^8.28.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-plugin-svelte": "^2.30.0",
- "pg": "^8.11.3",
- "prettier": "^3.0.0",
- "prettier-plugin-svelte": "^3.0.0",
- "remult": "^0.24.1",
- "svelte": "^4.2.7",
- "svelte-check": "^3.6.0",
- "tslib": "^2.4.1",
- "typescript": "^5.0.0",
- "vite": "^5.0.0",
- "vite-plugin-kit-routes": "0.5.0",
- "vite-plugin-striper": "0.3.1",
- "vitest": "^1.0.0"
- }
+ "name": "create-kitql-sveltekit-remult",
+ "version": "0.0.1",
+ "type": "module",
+ "private": true,
+ "scripts": {
+ "build": "vite build",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:w": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
+ "dev": "vite dev",
+ "format": "kitql-lint --format",
+ "lint": "kitql-lint",
+ "preview": "vite preview",
+ "test": "vitest",
+ "test:ci": "npm run test:e2e && npm run test",
+ "test:e2e": "playwright test"
+ },
+ "devDependencies": {
+ "@kitql/eslint-config": "^0.1.0",
+ "@playwright/test": "^1.28.1",
+ "@sveltejs/adapter-auto": "^3.0.0",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "pg": "^8.11.3",
+ "remult": "^0.24.1",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.0",
+ "vite-plugin-kit-routes": "^0.5.0",
+ "vite-plugin-stripper": "^0.3.2",
+ "vitest": "^1.0.0"
+ }
}
diff --git a/packages/create-kitql/templates/sveltekit-remult/playwright.config.ts b/packages/create-kitql/templates/sveltekit-remult/playwright.config.ts
index 81124a2cc..4821722e6 100644
--- a/packages/create-kitql/templates/sveltekit-remult/playwright.config.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/playwright.config.ts
@@ -1,11 +1,11 @@
-import type { PlaywrightTestConfig } from '@playwright/test';
+import type { PlaywrightTestConfig } from '@playwright/test'
const config: PlaywrightTestConfig = {
- webServer: {
- command: 'npm run build && npm run preview',
- port: 4173
- },
- testMatch: /(.+\.)?(e2e)\.[jt]s/
-};
+ webServer: {
+ command: 'npm run build && npm run preview',
+ port: 4173,
+ },
+ testMatch: /(.+\.)?(e2e)\.[jt]s/,
+}
-export default config;
+export default config
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/app.d.ts b/packages/create-kitql/templates/sveltekit-remult/src/app.d.ts
index f59b884c5..0425013af 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/app.d.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/app.d.ts
@@ -1,12 +1,12 @@
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
declare global {
- namespace App {
- // interface Error {}
- // interface Locals {}
- // interface PageData {}
- // interface Platform {}
- }
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface Platform {}
+ }
}
-export {};
+export {}
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/app.html b/packages/create-kitql/templates/sveltekit-remult/src/app.html
index 77a5ff52c..84ffad166 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/app.html
+++ b/packages/create-kitql/templates/sveltekit-remult/src/app.html
@@ -1,12 +1,12 @@
-
-
-
-
- %sveltekit.head%
-
-
- %sveltekit.body%
-
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/hooks.server.ts b/packages/create-kitql/templates/sveltekit-remult/src/hooks.server.ts
index e1f81bb42..081b8eb4f 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/hooks.server.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/hooks.server.ts
@@ -1,4 +1,5 @@
-import { sequence } from '@sveltejs/kit/hooks';
-import { handleRemult } from './hooks/handleRemult';
+import { sequence } from '@sveltejs/kit/hooks'
-export const handle = sequence(handleRemult);
+import { handleRemult } from './hooks/handleRemult'
+
+export const handle = sequence(handleRemult)
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/hooks/handleRemult.ts b/packages/create-kitql/templates/sveltekit-remult/src/hooks/handleRemult.ts
index 3b6598760..568f0e98e 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/hooks/handleRemult.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/hooks/handleRemult.ts
@@ -1,24 +1,25 @@
-import { remultSveltekit } from 'remult/remult-sveltekit';
+import { remult } from 'remult'
+import { remultSveltekit } from 'remult/remult-sveltekit'
+
// import { createPostgresDataProvider } from 'remult/postgres';
// import { DATABASE_URL } from '$env/static/private';
-import { entities, controllers } from '../shared';
-import { remult } from 'remult';
-import { Task } from '../shared';
+import { entities, controllers } from '../shared'
+import { Task } from '../shared'
export const handleRemult = remultSveltekit({
- // dataProvider: createPostgresDataProvider({ connectionString: DATABASE_URL })
- entities,
- controllers,
- initApi: async () => {
- try {
- if ((await remult.repo(Task).count()) === 0) {
- await remult.repo(Task).insert({ title: 'Well done!' });
- await remult
- .repo(Task)
- .insert({ title: "You've successfully created a new KitQL remult project. 🚀" });
- }
- } catch (error) {
- console.error(error);
- }
- }
-});
+ // dataProvider: createPostgresDataProvider({ connectionString: DATABASE_URL })
+ entities,
+ controllers,
+ initApi: async () => {
+ try {
+ if ((await remult.repo(Task).count()) === 0) {
+ await remult.repo(Task).insert({ title: 'Well done!' })
+ await remult
+ .repo(Task)
+ .insert({ title: "You've successfully created a new KitQL remult project. 🚀" })
+ }
+ } catch (error) {
+ console.error(error)
+ }
+ },
+})
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.spec.ts b/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.spec.ts
index 5215f2fda..f6c8efbf5 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.spec.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.spec.ts
@@ -1,8 +1,9 @@
-import { describe, it, expect } from 'vitest';
-import { route } from './ROUTES';
+import { describe, it, expect } from 'vitest'
+
+import { route } from './ROUTES'
describe('ROUTES', () => {
- it('root path is /', () => {
- expect(route('/')).toBe('/');
- });
-});
+ it('root path is /', () => {
+ expect(route('/')).toBe('/')
+ })
+})
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.ts b/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.ts
index d87a9532f..28e98b48b 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/lib/ROUTES.ts
@@ -9,43 +9,62 @@
* PAGES
*/
const PAGES = {
- '/': `/`
-};
+ '/': `/`,
+}
/**
* SERVERS
*/
-const SERVERS = {};
+const SERVERS = {}
/**
* ACTIONS
*/
-const ACTIONS = {};
+const ACTIONS = {}
/**
* LINKS
*/
const LINKS = {
- twitter_jycouet: `https://twitter.com/jycouet`,
- github_kitql: `https://github.com/jycouet/kitql`,
- github_remult: `https://github.com/jycouet/kitql`
-};
+ twitter_jycouet: `https://twitter.com/jycouet`,
+ github_kitql: `https://github.com/jycouet/kitql`,
+ github_remult: `https://github.com/jycouet/kitql`,
+}
+
+type ParamValue = string | number | undefined
/**
* Append search params to a string
*/
-const appendSp = (sp?: Record, prefix: '?' | '&' = '?') => {
- if (sp === undefined) return '';
- const mapping = Object.entries(sp)
- .filter((c) => c[1] !== undefined)
- .map((c) => [c[0], String(c[1])]);
-
- const formated = new URLSearchParams(mapping).toString();
- if (formated) {
- return `${prefix}${formated}`;
- }
- return '';
-};
+export const appendSp = (
+ sp?: Record,
+ prefix: '?' | '&' = '?',
+) => {
+ if (sp === undefined) return ''
+
+ const params = new URLSearchParams()
+ const append = (n: string, v: ParamValue) => {
+ if (v !== undefined) {
+ params.append(n, String(v))
+ }
+ }
+
+ for (const [name, val] of Object.entries(sp)) {
+ if (Array.isArray(val)) {
+ for (const v of val) {
+ append(name, v)
+ }
+ } else {
+ append(name, val)
+ }
+ }
+
+ const formatted = params.toString()
+ if (formatted) {
+ return `${prefix}${formatted}`
+ }
+ return ''
+}
/**
* get the current search params
@@ -56,21 +75,29 @@ const appendSp = (sp?: Record, prefix: '?'
* ```
*/
export const currentSp = () => {
- const params = new URLSearchParams(window.location.search);
- const record: Record = {};
- for (const [key, value] of params.entries()) {
- record[key] = value;
- }
- return record;
-};
+ const params = new URLSearchParams(window.location.search)
+ const record: Record = {}
+ for (const [key, value] of params.entries()) {
+ record[key] = value
+ }
+ return record
+}
+
+function StringOrUndefined(val: any) {
+ if (val === undefined) {
+ return undefined
+ }
+
+ return String(val)
+}
// route function helpers
-type NonFunctionKeys = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];
-type FunctionKeys = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T];
-type FunctionParams = T extends (...args: infer P) => any ? P : never;
+type NonFunctionKeys = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T]
+type FunctionKeys = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T]
+type FunctionParams = T extends (...args: infer P) => any ? P : never
-const AllObjs = { ...PAGES, ...ACTIONS, ...SERVERS, ...LINKS };
-type AllTypes = typeof AllObjs;
+const AllObjs = { ...PAGES, ...ACTIONS, ...SERVERS, ...LINKS }
+type AllTypes = typeof AllObjs
/**
* To be used like this:
@@ -81,17 +108,17 @@ type AllTypes = typeof AllObjs;
* ```
*/
export function route>(
- key: T,
- ...params: FunctionParams
-): string;
-export function route>(key: T): string;
+ key: T,
+ ...params: FunctionParams
+): string
+export function route>(key: T): string
export function route(key: T, ...params: any[]): string {
- if ((AllObjs[key] as any) instanceof Function) {
- const element = (AllObjs as any)[key] as (...args: any[]) => string;
- return element(...params);
- } else {
- return AllObjs[key] as string;
- }
+ if ((AllObjs[key] as any) instanceof Function) {
+ const element = (AllObjs as any)[key] as (...args: any[]) => string
+ return element(...params)
+ } else {
+ return AllObjs[key] as string
+ }
}
/**
@@ -110,9 +137,9 @@ export function route(key: T, ...params: any[]): strin
* ```
*/
export type KIT_ROUTES = {
- PAGES: { '/': never };
- SERVERS: Record;
- ACTIONS: Record;
- LINKS: { twitter_jycouet: never; github_kitql: never; github_remult: never };
- Params: Record;
-};
+ PAGES: { '/': never }
+ SERVERS: Record
+ ACTIONS: Record
+ LINKS: { twitter_jycouet: never; github_kitql: never; github_remult: never }
+ Params: Record
+}
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/routes/+layout.svelte b/packages/create-kitql/templates/sveltekit-remult/src/routes/+layout.svelte
index 13ae1786a..5a90c2e0a 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/routes/+layout.svelte
+++ b/packages/create-kitql/templates/sveltekit-remult/src/routes/+layout.svelte
@@ -1,10 +1,10 @@
- KitQL Remult
-
+ KitQL Remult
+
KitQL & Remult
@@ -16,13 +16,13 @@
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/routes/+page.svelte b/packages/create-kitql/templates/sveltekit-remult/src/routes/+page.svelte
index b440a629a..cf7f477c2 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/routes/+page.svelte
+++ b/packages/create-kitql/templates/sveltekit-remult/src/routes/+page.svelte
@@ -1,60 +1,60 @@
Home
- {#each list as task}
- -
-
-
- {/each}
+ {#each list as task}
+ -
+
+
+ {/each}
+ await TasksController.setAllCompleted(list.length > 0 ? !list[0].completed : false)}>All
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/routes/e2e.ts b/packages/create-kitql/templates/sveltekit-remult/src/routes/e2e.ts
index f9725a0a1..94fbf16cd 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/routes/e2e.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/routes/e2e.ts
@@ -1,6 +1,6 @@
-import { expect, test } from '@playwright/test';
+import { expect, test } from '@playwright/test'
test('index page has expected h1', async ({ page }) => {
- await page.goto('/');
- await expect(page.getByRole('heading', { name: 'KitQL & Remult' })).toBeVisible();
-});
+ await page.goto('/')
+ await expect(page.getByRole('heading', { name: 'KitQL & Remult' })).toBeVisible()
+})
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/shared/Task.ts b/packages/create-kitql/templates/sveltekit-remult/src/shared/Task.ts
index eebf2de94..2e266e143 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/shared/Task.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/shared/Task.ts
@@ -1,33 +1,33 @@
-import { BackendMethod, Entity, Fields, remult } from 'remult';
+import { BackendMethod, Entity, Fields, remult } from 'remult'
@Entity('tasks', {
- allowApiCrud: true
+ allowApiCrud: true,
})
export class Task {
- @Fields.cuid()
- id!: string;
+ @Fields.cuid()
+ id!: string
- @Fields.string({
- validate: (task) => {
- if (task.title.length < 3) throw 'The title must be at least 3 characters long';
- }
- })
- title: string = '';
+ @Fields.string({
+ validate: task => {
+ if (task.title.length < 3) throw 'The title must be at least 3 characters long'
+ },
+ })
+ title: string = ''
- @Fields.boolean()
- completed: boolean = false;
+ @Fields.boolean()
+ completed: boolean = false
- @Fields.createdAt()
- createdAt?: Date;
+ @Fields.createdAt()
+ createdAt?: Date
}
export class TasksController {
- @BackendMethod({ allowed: true })
- static async setAllCompleted(completed: boolean) {
- const taskRepo = remult.repo(Task);
+ @BackendMethod({ allowed: true })
+ static async setAllCompleted(completed: boolean) {
+ const taskRepo = remult.repo(Task)
- for (const task of await taskRepo.find()) {
- await taskRepo.update(task.id, { completed });
- }
- }
+ for (const task of await taskRepo.find()) {
+ await taskRepo.update(task.id, { completed })
+ }
+ }
}
diff --git a/packages/create-kitql/templates/sveltekit-remult/src/shared/index.ts b/packages/create-kitql/templates/sveltekit-remult/src/shared/index.ts
index e5c01c0e4..573f1786b 100644
--- a/packages/create-kitql/templates/sveltekit-remult/src/shared/index.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/src/shared/index.ts
@@ -1,6 +1,6 @@
-import { Task, TasksController } from './Task';
+import { Task, TasksController } from './Task'
-export { Task, TasksController };
+export { Task, TasksController }
-export const entities = [Task];
-export const controllers = [TasksController];
+export const entities = [Task]
+export const controllers = [TasksController]
diff --git a/packages/create-kitql/templates/sveltekit-remult/svelte.config.js b/packages/create-kitql/templates/sveltekit-remult/svelte.config.js
index 2b35fe1be..6acad8bac 100644
--- a/packages/create-kitql/templates/sveltekit-remult/svelte.config.js
+++ b/packages/create-kitql/templates/sveltekit-remult/svelte.config.js
@@ -1,18 +1,18 @@
-import adapter from '@sveltejs/adapter-auto';
-import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+import adapter from '@sveltejs/adapter-auto'
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
/** @type {import('@sveltejs/kit').Config} */
const config = {
- // Consult https://kit.svelte.dev/docs/integrations#preprocessors
- // for more information about preprocessors
- preprocess: vitePreprocess(),
+ // Consult https://kit.svelte.dev/docs/integrations#preprocessors
+ // for more information about preprocessors
+ preprocess: vitePreprocess(),
- kit: {
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
- // If your environment is not supported or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: adapter()
- }
-};
+ kit: {
+ // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
+ // If your environment is not supported or you settled on a specific environment, switch out the adapter.
+ // See https://kit.svelte.dev/docs/adapters for more information about adapters.
+ adapter: adapter(),
+ },
+}
-export default config;
+export default config
diff --git a/packages/create-kitql/templates/sveltekit-remult/tsconfig.json b/packages/create-kitql/templates/sveltekit-remult/tsconfig.json
index d30425af1..5d92f34b8 100644
--- a/packages/create-kitql/templates/sveltekit-remult/tsconfig.json
+++ b/packages/create-kitql/templates/sveltekit-remult/tsconfig.json
@@ -1,19 +1,19 @@
{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "experimentalDecorators": true,
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true,
- "moduleResolution": "bundler"
- }
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
- //
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
- // from the referenced tsconfig.json - TypeScript does not merge them in
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "experimentalDecorators": true,
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true,
+ "moduleResolution": "bundler"
+ }
+ // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
+ //
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
+ // from the referenced tsconfig.json - TypeScript does not merge them in
}
diff --git a/packages/create-kitql/templates/sveltekit-remult/vite.config.ts b/packages/create-kitql/templates/sveltekit-remult/vite.config.ts
index 5b80e2042..1f5e81a4f 100644
--- a/packages/create-kitql/templates/sveltekit-remult/vite.config.ts
+++ b/packages/create-kitql/templates/sveltekit-remult/vite.config.ts
@@ -1,22 +1,26 @@
-import { sveltekit } from '@sveltejs/kit/vite';
-import { defineConfig } from 'vitest/config';
-import { kitRoutes } from 'vite-plugin-kit-routes';
-import { striper } from 'vite-plugin-striper';
+import { sveltekit } from '@sveltejs/kit/vite'
+import { kitRoutes } from 'vite-plugin-kit-routes'
+import { stripper } from 'vite-plugin-stripper'
+import { defineConfig } from 'vitest/config'
export default defineConfig({
- plugins: [
- sveltekit(),
- striper({ decorators: ['BackendMethod'] }),
- kitRoutes({
- post_update_run: 'npm exec prettier ./src/lib/ROUTES.ts -- -w',
- LINKS: {
- twitter_jycouet: 'https://twitter.com/jycouet',
- github_kitql: 'https://github.com/jycouet/kitql',
- github_remult: 'https://github.com/jycouet/kitql'
- }
- })
- ],
- test: {
- include: ['src/**/*.spec.{js,ts}']
- }
-});
+ plugins: [
+ sveltekit(),
+ stripper({ decorators: ['BackendMethod'] }),
+ kitRoutes({
+ logs: {
+ post_update_run: false,
+ update: false,
+ },
+ post_update_run: 'npm run lint -- -f -g src/lib/ROUTES.ts',
+ LINKS: {
+ twitter_jycouet: 'https://twitter.com/jycouet',
+ github_kitql: 'https://github.com/jycouet/kitql',
+ github_remult: 'https://github.com/jycouet/kitql',
+ },
+ }),
+ ],
+ test: {
+ include: ['src/**/*.spec.{js,ts}'],
+ },
+})
diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md
index caba56cf2..8f3951d2e 100644
--- a/packages/eslint-config/README.md
+++ b/packages/eslint-config/README.md
@@ -5,7 +5,7 @@
## 📖 Read the doc
-[](https://kitql.dev/docs)
+[](https://kitql.dev/docs/tools/08_eslint-config)
## Install
@@ -18,8 +18,10 @@ npm install @kitql/eslint-config --D
`.eslintrc.js`
```js
+/** @type { import("eslint").Linter.FlatConfig } */
module.exports = {
- extends: ['@kitql']
+ extends: ['@kitql'],
+ rules: {}
}
```
@@ -36,6 +38,29 @@ module.exports = {
}
```
+### ignore things with
+
+`.prettierignore`
+
+```bash
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
+
+# Ignore files that are project specific
+/db
+```
+
### usage
```bash
diff --git a/packages/eslint-config/cmd.js b/packages/eslint-config/cmd.js
index 1e4eab4f7..e70675c71 100755
--- a/packages/eslint-config/cmd.js
+++ b/packages/eslint-config/cmd.js
@@ -7,6 +7,7 @@ import fs from 'fs'
const log = new Log('kitql-lint')
program.addOption(new Option('-f, --format', 'format'))
+program.addOption(new Option('-g, --glob ', 'file/dir/glob (. by default)', '.'))
program.parse(process.argv)
const options_cli = program.opts()
@@ -32,6 +33,7 @@ let pathPrettierIgnore = findFileOrUp('.prettierignore')
let pathPrettierCjs = findFileOrUp('.prettierrc.cjs')
const format = options_cli.format ?? false
+const glob = options_cli.glob ?? '.'
// First prettier
const cmdPrettier =
@@ -44,7 +46,7 @@ const cmdPrettier =
// format or not
`${format ? ' --write' : ''}` +
// exec
- ` .`
+ ` ${glob}`
let result_prettier = spawn(cmdPrettier, {
shell: true,
cwd: process.cwd(),
@@ -55,7 +57,12 @@ let result_prettier = spawn(cmdPrettier, {
if (!format) {
const logPrettier = new Log('kitql-lint prettier')
result_prettier.stdout.on('data', data => {
- logPrettier.error(data.toString())
+ logPrettier.error(
+ data
+ .toString()
+ // rmv the last \n if any
+ .replace(/\n$/, ''),
+ )
})
}
@@ -68,7 +75,7 @@ result_prettier.on('close', code => {
// format or not
`${format ? ' --fix' : ''}` +
// exec
- ` .`
+ ` ${glob}`
// log.info(cmdEsLint)
diff --git a/packages/vite-plugin-kit-routes/src/lib/plugin.ts b/packages/vite-plugin-kit-routes/src/lib/plugin.ts
index a63d1d3fd..3f1ab6c55 100644
--- a/packages/vite-plugin-kit-routes/src/lib/plugin.ts
+++ b/packages/vite-plugin-kit-routes/src/lib/plugin.ts
@@ -956,7 +956,12 @@ ${objTypes
// report errors
if (shouldLog('errors', options)) {
child.stderr.on('data', data => {
- log.error(data.toString())
+ const msg = data.toString().replace(/\n$/, '')
+ if (msg.includes('DEP0040') && msg.includes('punycode')) {
+ // silent error
+ } else {
+ log.error(msg)
+ }
})
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 316c7957f..1f961f187 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -107,6 +107,9 @@ importers:
packages/create-kitql/templates/sveltekit-remult:
devDependencies:
+ '@kitql/eslint-config':
+ specifier: ^0.1.0
+ version: link:../../../eslint-config
'@playwright/test':
specifier: ^1.28.1
version: 1.40.1
@@ -119,30 +122,9 @@ importers:
'@sveltejs/vite-plugin-svelte':
specifier: ^3.0.0
version: 3.0.1(svelte@4.2.8)(vite@5.0.10)
- '@typescript-eslint/eslint-plugin':
- specifier: ^6.0.0
- version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.2)
- '@typescript-eslint/parser':
- specifier: ^6.0.0
- version: 6.14.0(eslint@8.55.0)(typescript@5.3.2)
- eslint:
- specifier: ^8.28.0
- version: 8.55.0
- eslint-config-prettier:
- specifier: ^9.0.0
- version: 9.1.0(eslint@8.55.0)
- eslint-plugin-svelte:
- specifier: ^2.30.0
- version: 2.35.0(eslint@8.55.0)(svelte@4.2.8)
pg:
specifier: ^8.11.3
version: 8.11.3
- prettier:
- specifier: ^3.0.0
- version: 3.1.0
- prettier-plugin-svelte:
- specifier: ^3.0.0
- version: 3.1.0(prettier@3.1.0)(svelte@4.2.8)
remult:
specifier: ^0.24.1
version: 0.24.1
@@ -162,11 +144,11 @@ importers:
specifier: ^5.0.0
version: 5.0.10
vite-plugin-kit-routes:
- specifier: 0.5.0
+ specifier: ^0.5.0
version: link:../../../vite-plugin-kit-routes/dist
- vite-plugin-striper:
- specifier: 0.3.1
- version: 0.3.1
+ vite-plugin-stripper:
+ specifier: ^0.3.2
+ version: link:../../../vite-plugin-stripper/dist
vitest:
specifier: ^1.0.0
version: 1.0.4
@@ -916,6 +898,7 @@ packages:
hasBin: true
dependencies:
'@babel/types': 7.23.6
+ dev: false
/@babel/parser@7.23.6:
resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==}
@@ -1861,21 +1844,6 @@ packages:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
- /@kitql/helpers@0.8.8:
- resolution: {integrity: sha512-+oKunjiNcYtfwk6J7Vx+4IZjysg8DpJ/XUu2m0GwhXVA889H3ne8dfCko0YZxjmyLTf+5LvmQjbpxb8acqZF5g==}
- engines: {node: ^16.14 || >=18}
- dev: true
-
- /@kitql/internals@0.9.4:
- resolution: {integrity: sha512-ktreSaUvZyVaZVj8Lg0PnQl9v5403rUKDAyJMFZQV/8eyAJjuTB84hT/AIPqkRr34hGtjO7e+hfEsgw4oQ/UxQ==}
- engines: {node: ^16.14 || >=18}
- dependencies:
- '@babel/parser': 7.23.0
- '@kitql/helpers': 0.8.8
- recast: 0.23.4
- svelte: 4.2.1
- dev: true
-
/@lit-labs/ssr-dom-shim@1.1.1:
resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==}
dev: false
@@ -4206,6 +4174,7 @@ packages:
object-is: 1.1.5
object.assign: 4.1.4
util: 0.12.5
+ dev: false
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
@@ -4225,6 +4194,7 @@ packages:
engines: {node: '>=4'}
dependencies:
tslib: 2.6.2
+ dev: false
/astring@1.8.4:
resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==}
@@ -7990,6 +7960,7 @@ packages:
dependencies:
call-bind: 1.0.2
has-tostringtag: 1.0.0
+ dev: false
/is-array-buffer@3.0.2:
resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
@@ -8155,6 +8126,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
+ dev: false
/is-glob@3.1.0:
resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
@@ -8201,6 +8173,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
+ dev: false
/is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
@@ -10481,6 +10454,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
+ dev: false
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
@@ -11838,6 +11812,7 @@ packages:
esprima: 4.0.1
source-map: 0.6.1
tslib: 2.6.2
+ dev: false
/redent@3.0.0:
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
@@ -13947,6 +13922,7 @@ packages:
is-generator-function: 1.0.10
is-typed-array: 1.1.10
which-typed-array: 1.1.9
+ dev: false
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
@@ -14075,25 +14051,6 @@ packages:
- terser
dev: true
- /vite-plugin-striper@0.3.1:
- resolution: {integrity: sha512-zsb1dPkNERvyEpe98D+twsJk978Y2x01ljhX6Qo8ea+tE0DGZr1goE/W2uV/1nTRQevXWc+rD82CfLvICDqQfw==}
- engines: {node: ^16.14 || >=18}
- dependencies:
- '@babel/parser': 7.23.0
- '@kitql/helpers': 0.8.8
- '@kitql/internals': 0.9.4
- recast: 0.23.4
- vite-plugin-watch-and-run: 1.6.0
- dev: true
-
- /vite-plugin-watch-and-run@1.6.0:
- resolution: {integrity: sha512-iKfSTxIJ3M2DsEqCOqz+Kr72zxgcpXs2NvWTsReJOcZiBRjfImsp+9Kqkdkg9UQeCge5HZwLR3pzRgnUzGJ52w==}
- engines: {node: ^16.14 || >=18}
- dependencies:
- '@kitql/helpers': 0.8.8
- micromatch: 4.0.5
- dev: true
-
/vite@5.0.10:
resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==}
engines: {node: ^18.0.0 || >=20.0.0}
diff --git a/website/src/pages/docs/tools/08_eslint-config.mdx b/website/src/pages/docs/tools/08_eslint-config.mdx
new file mode 100644
index 000000000..f2d4efef1
--- /dev/null
+++ b/website/src/pages/docs/tools/08_eslint-config.mdx
@@ -0,0 +1,69 @@
+import { Callout } from '@theguild/components'
+
+# 👌 How to - `@kitql/eslint-config`
+
+
+ _**KitQL** itself is not a library, it's "nothing" but a collection of standalone libraries._
+
+
+To have eslint & prettier in your project, you need 20 dep, files, ... and it's a pain to maintain
+in each project.
+
+Here the idea is to reduce as much as possible the config on your end. _(Of course, you can still
+tune things)_
+
+## Install
+
+```bash
+npm install @kitql/eslint-config --D
+```
+
+### eslint config
+
+`.eslintrc.js`
+
+```js
+/** @type { import("eslint").Linter.FlatConfig } */
+module.exports = {
+ extends: ['@kitql'],
+ rules: {
+ // You can add rules here
+ }
+}
+```
+
+### prettier config
+
+`.prettierrc.cjs`
+
+```js
+const config = require('@kitql/eslint-config/.prettierrc.cjs')
+
+module.exports = {
+ ...config
+ // Some custom things?
+}
+```
+
+### ignore things with
+
+`.prettierignore`
+
+```bash
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
+
+# Ignore files that are project specific
+/db
+```
diff --git a/website/src/pages/docs/tools/_meta.ts b/website/src/pages/docs/tools/_meta.ts
index 3751a48f8..216e8002b 100644
--- a/website/src/pages/docs/tools/_meta.ts
+++ b/website/src/pages/docs/tools/_meta.ts
@@ -1,5 +1,6 @@
export default {
'04_helpers': 'Helpers',
+ '08_eslint-config': 'Prettier & eslint',
'06_vite-plugin-kit-routes': 'Vite - Kit Routes',
'03_vite-plugin-watch-and-run': 'Vite - Watch and Run',
'07_vite-plugin-stripper': 'Vite - Stripper',