diff --git a/apps/website/package.json b/apps/website/package.json index 5dc07fb11b9..ae85999f542 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -26,7 +26,7 @@ "swizzle": "docusaurus swizzle", "test": "pnpm run \"/^test:.*/\"", "test:empty": ":", - "typecheck": "tsc", + "__typecheck": "tsc --noEmit", "write-heading-ids": "docusaurus write-heading-ids", "write-translations": "docusaurus write-translations" }, diff --git a/apps/website/tsconfig.json b/apps/website/tsconfig.json index c2f37923c39..809670fbbd4 100644 --- a/apps/website/tsconfig.json +++ b/apps/website/tsconfig.json @@ -5,6 +5,7 @@ "compilerOptions": { "baseUrl": ".", "resolveJsonModule": true, - "strict": true + "strict": true, + "ignoreDeprecations": "6.0" } } diff --git a/package.json b/package.json index 8a98308f706..41b6c241302 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "spellcheck": "turbo run spellcheck", "spellcheck:root": "cspell --no-progress '**' --exclude='apps/*/**' --exclude='packages/*/**'", "test": "turbo run test", - "validate": "turbo run build lint test spellcheck size-limit" + "typecheck": "turbo run typecheck", + "validate": "turbo run build lint test spellcheck typecheck size-limit" }, "commitlint": { "extends": [ diff --git a/packages/application/example/usage.ts b/packages/application/example/usage.ts index 16f6a8e9521..4d12ed21c1c 100644 --- a/packages/application/example/usage.ts +++ b/packages/application/example/usage.ts @@ -1,9 +1,11 @@ -import { Application } from '@w5s/application'; +import { useConfiguration } from '@w5s/application'; -const app = Application('my-app', { +const meta = { name: 'my-app' }; + +const configuration = useConfiguration(meta, { myVar: 1, }); -app.configure({ +configuration.update({ myVar: 2, }); -app.get('myVar'); // 2 +configuration.get('myVar'); // 2 diff --git a/packages/application/package.json b/packages/application/package.json index 8a5f5340be0..6d2773db516 100644 --- a/packages/application/package.json +++ b/packages/application/package.json @@ -45,6 +45,7 @@ "spellcheck": "cspell --no-progress '**'", "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/async/package.json b/packages/async/package.json index 2155f11ef35..d565a2945f6 100644 --- a/packages/async/package.json +++ b/packages/async/package.json @@ -47,6 +47,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/bigdecimal/package.json b/packages/bigdecimal/package.json index f7da92bfb3b..07fbe04836f 100644 --- a/packages/bigdecimal/package.json +++ b/packages/bigdecimal/package.json @@ -46,6 +46,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/byte-size/package.json b/packages/byte-size/package.json index 3fbf45d3df1..210704995e7 100644 --- a/packages/byte-size/package.json +++ b/packages/byte-size/package.json @@ -51,6 +51,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/collection/package.json b/packages/collection/package.json index eb3997caa82..22771f21392 100644 --- a/packages/collection/package.json +++ b/packages/collection/package.json @@ -48,6 +48,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/console/package.json b/packages/console/package.json index 26504a0b07e..8d30d8c6a39 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -47,6 +47,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/console/src/Console/isWeb.ts b/packages/console/src/Console/isWeb.ts index c8a14cc52c8..a9f016cdb2f 100644 --- a/packages/console/src/Console/isWeb.ts +++ b/packages/console/src/Console/isWeb.ts @@ -1,7 +1,7 @@ export function isWeb(): boolean { const consoleWithStreams = console as Partial<{ - _stdout: NodeJS.WriteStream; - _stderr: NodeJS.WriteStream; + _stdout: WritableStream; + _stderr: WritableStream; }>; const { _stdout: stdout, _stderr: stderr } = consoleWithStreams; return stderr == null || stdout == null; diff --git a/packages/core-type/package.json b/packages/core-type/package.json index 4922191545c..2c1694f71cf 100644 --- a/packages/core-type/package.json +++ b/packages/core-type/package.json @@ -53,6 +53,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "tsc -b tsconfig.test.json", "tsc": "tsc", + "__typecheck": "tsc --noEmit -b tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index 273dc6b1d71..c01e4b0f0ff 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/database/package.json b/packages/database/package.json index 7a06d8850b7..f3ebb18cbee 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -53,6 +53,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/database/src/driver/mock.spec.ts b/packages/database/src/driver/mock.spec.ts index 9e733d6aa74..84e6e46858d 100644 --- a/packages/database/src/driver/mock.spec.ts +++ b/packages/database/src/driver/mock.spec.ts @@ -1,10 +1,10 @@ import { describe, it, expect, vi } from 'vitest'; -import { Ref } from '@w5s/core'; import { sql } from '../sql.js'; import { DatabaseDriver } from '../driver.js'; import { Mock } from './mock.js'; describe('Mock', () => { + const anyCanceler = { cancel() {} }; const anyStatement = sql`SELECT author FROM books WHERE name=${'Toto'}`; it('should be registered as driver', () => { expect(DatabaseDriver.get('mock')).toBe(Mock); @@ -21,8 +21,7 @@ describe('Mock', () => { databaseType: 'mock' as const, mockExecuteQuery, }; - const cancelerRef = Ref(vi.fn()); - await expect(Mock.execute(mockClient, anyStatement, cancelerRef)).resolves.toEqual('returnValue'); + await expect(Mock.execute(mockClient, anyStatement, anyCanceler)).resolves.toEqual('returnValue'); expect(mockExecuteQuery).toHaveBeenCalledWith(anyStatement); }); }); diff --git a/packages/database/src/driver/mysql.spec.ts b/packages/database/src/driver/mysql.spec.ts index 027429b7e94..379013c894d 100644 --- a/packages/database/src/driver/mysql.spec.ts +++ b/packages/database/src/driver/mysql.spec.ts @@ -1,11 +1,11 @@ import type * as mysql from 'mysql'; import { describe, it, expect, vi, type Mocked } from 'vitest'; -import { Ref } from '@w5s/core'; import { sql } from '../sql.js'; import { DatabaseDriver } from '../driver.js'; import { MySQL } from './mysql.js'; describe('MySQL', () => { + const anyCanceler = { cancel() {} }; const anyStatement = sql`SELECT author FROM books WHERE name=${'Toto'}`; const mockConnection = (connectionProperties?: any): Mocked => { const connection: Mocked = { @@ -46,8 +46,7 @@ describe('MySQL', () => { databaseType: 'mysql', host: 'foo.com', } as const; - const cancelerRef = Ref(() => {}); - await MySQL.execute(client, anyStatement, cancelerRef); + await MySQL.execute(client, anyStatement, anyCanceler); expect(MySQL.createConnection).toHaveBeenLastCalledWith(client); }); @@ -59,9 +58,7 @@ describe('MySQL', () => { mockConnection({ query, }); - const cancelerRef = Ref(() => {}); - - await MySQL.execute(anyClient, anyStatement, cancelerRef); + await MySQL.execute(anyClient, anyStatement, anyCanceler); expect(query).toHaveBeenLastCalledWith('SELECT author FROM books WHERE name=?', ['Toto'], expect.any(Function)); }); @@ -71,9 +68,7 @@ describe('MySQL', () => { mockConnection({ end, }); - const cancelerRef = Ref(() => {}); - - await MySQL.execute(anyClient, anyStatement, cancelerRef); + await MySQL.execute(anyClient, anyStatement, anyCanceler); expect(end).toHaveBeenCalledTimes(1); }); @@ -87,9 +82,7 @@ describe('MySQL', () => { end, query, }); - const cancelerRef = Ref(() => {}); - - await expect(MySQL.execute(anyClient, anyStatement, cancelerRef)).rejects.toThrow(); + await expect(MySQL.execute(anyClient, anyStatement, anyCanceler)).rejects.toThrow(); expect(end).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/database/src/driver/sqlite3.spec.ts b/packages/database/src/driver/sqlite3.spec.ts index ea20cd1112f..44aa868f919 100644 --- a/packages/database/src/driver/sqlite3.spec.ts +++ b/packages/database/src/driver/sqlite3.spec.ts @@ -1,5 +1,4 @@ import { describe, it, expect, vi, type Mocked } from 'vitest'; -import { Ref } from '@w5s/core'; import type { Database } from 'sqlite3'; import { sql } from '../sql.js'; import { DatabaseDriver } from '../driver.js'; @@ -20,6 +19,7 @@ const mockDatabase = (): Mocked => { }; describe('SQLite3', () => { + const anyCanceler = { cancel() {} }; const anyStatement = sql`SELECT ${'42'}`; const anyClient = { databaseType: 'sqlite3' as const, @@ -38,18 +38,16 @@ describe('SQLite3', () => { describe('.execute', () => { it('should send query to Database', async () => { const { all } = mockDatabase(); - const cancelerRef = Ref(() => {}); - await SQLite3.execute(anyClient, anyStatement, cancelerRef); + await SQLite3.execute(anyClient, anyStatement, anyCanceler); expect(all).toHaveBeenLastCalledWith('SELECT ?', ['42'], expect.any(Function)); }); it('should close connection', async () => { const { close } = mockDatabase(); - const cancelerRef = Ref(() => {}); - await SQLite3.execute(anyClient, anyStatement, cancelerRef); + await SQLite3.execute(anyClient, anyStatement, anyCanceler); expect(close).toHaveBeenCalled(); }); @@ -59,10 +57,9 @@ describe('SQLite3', () => { // @ts-ignore mock partial signature (_sqlObject, _values, callback) => callback(new Error('MockSQLite3Error'), null), ); - const cancelerRef = Ref(() => {}); await expect( - SQLite3.execute(anyClient, sql`SELECT error FROM unknown_wrong_table;`, cancelerRef), + SQLite3.execute(anyClient, sql`SELECT error FROM unknown_wrong_table;`, anyCanceler), ).rejects.toThrow(); expect(close).toHaveBeenCalled(); }); diff --git a/packages/env/package.json b/packages/env/package.json index 8e7a1da0c86..7ef9d411bd2 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/error/package.json b/packages/error/package.json index 4ef1b3da54b..02c779382af 100644 --- a/packages/error/package.json +++ b/packages/error/package.json @@ -45,6 +45,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/global-storage/package.json b/packages/global-storage/package.json index d139272bbb2..a7e964aac7e 100644 --- a/packages/global-storage/package.json +++ b/packages/global-storage/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "devDependencies": { diff --git a/packages/http/package.json b/packages/http/package.json index 3ac0d32569c..7565f510dc5 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -50,6 +50,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run build && npm run test" }, "dependencies": { diff --git a/packages/iterable/package.json b/packages/iterable/package.json index 096f96acdf4..1eca48fb7e2 100644 --- a/packages/iterable/package.json +++ b/packages/iterable/package.json @@ -48,6 +48,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/log/package.json b/packages/log/package.json index cbf37ed2c1e..5b0730ac2f4 100644 --- a/packages/log/package.json +++ b/packages/log/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/money/package.json b/packages/money/package.json index d524c43b48e..17f4e72a53c 100644 --- a/packages/money/package.json +++ b/packages/money/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/num/package.json b/packages/num/package.json index b3452e2aa9c..cad3c6fa611 100644 --- a/packages/num/package.json +++ b/packages/num/package.json @@ -50,6 +50,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/object-id/package.json b/packages/object-id/package.json index b9610a80bd9..028f2c8917a 100644 --- a/packages/object-id/package.json +++ b/packages/object-id/package.json @@ -47,6 +47,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/playground/package.json b/packages/playground/package.json index e5af5fb8272..647fd923748 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -31,6 +31,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run build && npm run test" }, "dependencies": { diff --git a/packages/random/package.json b/packages/random/package.json index c48b21d321d..bd80743084a 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -47,6 +47,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/system/package.json b/packages/system/package.json index fd223ae6474..6567f23fe18 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -47,6 +47,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/task-timeout/example/usage.ts b/packages/task-timeout/example/usage.ts index 0023b5c4346..3a640e04615 100644 --- a/packages/task-timeout/example/usage.ts +++ b/packages/task-timeout/example/usage.ts @@ -8,7 +8,7 @@ function sayHelloWorld(delay: TimeDuration) { console.log('Hello World!'); resolve(undefined); }, delay); - canceler.current = () => clearTimeout(timerId); + canceler.onCancel = () => clearTimeout(timerId); }); } diff --git a/packages/task-timeout/package.json b/packages/task-timeout/package.json index 31607f6b8d1..713e5dc855c 100644 --- a/packages/task-timeout/package.json +++ b/packages/task-timeout/package.json @@ -50,6 +50,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/task/package.json b/packages/task/package.json index e7cae85eef4..24b64696bb9 100644 --- a/packages/task/package.json +++ b/packages/task/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/task/src/Task/tryCall.spec.ts b/packages/task/src/Task/tryCall.spec.ts index 94d20c4a367..fac43e29a14 100644 --- a/packages/task/src/Task/tryCall.spec.ts +++ b/packages/task/src/Task/tryCall.spec.ts @@ -8,9 +8,11 @@ describe(tryCall, () => { class TestError extends Error { override name = 'TestError'; + public innerError: unknown; - constructor(public innerError: unknown = undefined) { + constructor(innerError: unknown = undefined) { super('TestMessage'); + this.innerError = innerError; } } it('should resolve(block()) when nothing is thrown', async () => { diff --git a/packages/time/package.json b/packages/time/package.json index 8057663eb11..4c551311689 100644 --- a/packages/time/package.json +++ b/packages/time/package.json @@ -49,6 +49,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/packages/uuid/package.json b/packages/uuid/package.json index 6e34ceed5d2..17d35b4c76c 100644 --- a/packages/uuid/package.json +++ b/packages/uuid/package.json @@ -48,6 +48,7 @@ "test": "pnpm run \"/^test:.*/\"", "test:src": "vitest run", "tsc": "tsc", + "typecheck": "tsc --noEmit -p tsconfig.build.json", "validate": "npm run lint && npm run build && npm run test" }, "dependencies": { diff --git a/turbo.json b/turbo.json index b1fb9f191f1..d44a0358f6d 100644 --- a/turbo.json +++ b/turbo.json @@ -54,6 +54,12 @@ }, "size-limit": { "dependsOn": ["build"] + }, + "typecheck": { + "dependsOn": ["^build"] + }, + "//#typecheck:root": { + "inputs": ["$TURBO_DEFAULT$", ".env*", "!apps/**", "!packages/**"] } }, "globalDependencies": [