diff --git a/packages/core/package.json b/packages/core/package.json index 240c6667d5..5488dec4dd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,7 +11,7 @@ "fix-node-pty": "bun run script/fix-node-pty.ts", "benchmark:location": "bun run script/benchmark-location.ts", "test": "bun test --only-failures", - "typecheck": "tsgo --noEmit" + "typecheck": "tsgo -b" }, "bin": { "opencode": "./bin/opencode" diff --git a/packages/core/src/instructions/index.ts b/packages/core/src/instructions/index.ts index d7af2a78a3..422f072720 100644 --- a/packages/core/src/instructions/index.ts +++ b/packages/core/src/instructions/index.ts @@ -82,10 +82,10 @@ export class DuplicateKeyError extends Schema.TaggedErrorClass = [] /** Closes a typed definition into one `Source`, so differently typed sources compose. */ -export function make(source: Source.Definition): Instructions { +export function make(source: Source.Definition): ReadonlyArray { const decode = Schema.decodeUnknownOption(source.codec) const encode = Schema.encodeSync(source.codec) const initial = (value: A) => requireText(source.key, "initial", source.render.initial(value)) @@ -121,7 +121,7 @@ export function make(source: Source.Definition): Instructions { ] } -export function combine(values: ReadonlyArray): Instructions { +export function combine(values: ReadonlyArray>): ReadonlyArray { const sources = values.flat() const keys = new Set() for (const source of sources) { @@ -131,7 +131,7 @@ export function combine(values: ReadonlyArray): Instructions { return sources } -export function read(value: Instructions): Effect.Effect { +export function read(value: ReadonlyArray): Effect.Effect { return Effect.forEach( value, (source) => source.read.pipe(Effect.map((observed) => ({ key: source.key, value: observed }))), @@ -158,7 +158,7 @@ export function diff(observed: ReadResult, previous?: Values): Effect.Effect>) { +export function renderInitial(value: ReadonlyArray, values: Readonly>) { return render( value.flatMap((source) => { if (!Object.hasOwn(values, source.key)) return [] @@ -169,7 +169,7 @@ export function renderInitial(value: Instructions, values: Readonly, previous: Readonly>, delta: Readonly>>, ) { diff --git a/packages/core/tsconfig.instructions.json b/packages/core/tsconfig.instructions.json new file mode 100644 index 0000000000..cdc2469d6b --- /dev/null +++ b/packages/core/tsconfig.instructions.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@tsconfig/bun/tsconfig.json", + "compilerOptions": { + "composite": true, + "declaration": true, + "emitDeclarationOnly": true, + "incremental": true, + "noEmit": false, + "noUncheckedIndexedAccess": false, + "outDir": "node_modules/.ts-dist/instructions", + "rootDir": "src/instructions", + "tsBuildInfoFile": "node_modules/.ts-dist/instructions.tsbuildinfo" + }, + "files": ["src/instructions/index.ts"] +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 5f08e36ebf..966b4e9d3a 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -4,5 +4,8 @@ "compilerOptions": { "incremental": true, "noUncheckedIndexedAccess": false - } + }, + "include": ["src", "test", "script", "drizzle.config.ts"], + "exclude": ["src/instructions/index.ts"], + "references": [{ "path": "./tsconfig.instructions.json" }] }