Skip to content

Commit 6a631b7

Browse files
authored
Fix type errors in TypeScript deno projects (porsager#313)
Transpile type definitions and add some missing imports for Readable and Writable streams. Fixes porsager#312.
1 parent 750b1d7 commit 6a631b7

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

deno/types/index.d.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { Buffer } from 'https://deno.land/std@0.132.0/node/buffer.ts'
2+
import process from 'https://deno.land/std@0.132.0/node/process.ts'
3+
import { Readable, Writable } from 'https://deno.land/std@0.132.0/node/stream.ts'
14
/**
25
* Establish a connection to a PostgreSQL server.
36
* @param options Connection options - default to the same as psql
@@ -430,12 +433,12 @@ declare namespace postgres {
430433
writable(options?: {
431434
highWaterMark?: number,
432435
start?: number
433-
}): Promise<import('node:stream').Writable>;
436+
}): Promise<Writable>;
434437
readable(options?: {
435438
highWaterMark?: number,
436439
start?: number,
437440
end?: number
438-
}): Promise<import('node:stream').Readable>;
441+
}): Promise<Readable>;
439442

440443
close(): Promise<void>;
441444
tell(): Promise<void>;
@@ -515,8 +518,8 @@ declare namespace postgres {
515518
type RowList<T extends readonly any[]> = T & Iterable<NonNullable<T[number]>> & ResultQueryMeta<T['length'], keyof T[number]>;
516519

517520
interface PendingQueryModifiers<TRow extends readonly any[]> {
518-
readable(): import('node:stream').Readable;
519-
writable(): import('node:stream').Writable;
521+
readable(): Readable;
522+
writable(): Writable;
520523

521524
execute(): this;
522525
cancel(): void;

transpile.deno.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ ensureEmpty(src)
1313
ensureEmpty(types)
1414
ensureEmpty(tests)
1515

16-
fs.writeFileSync(path.join(types, 'index.d.ts'), fs.readFileSync(path.join('types', 'index.d.ts')))
16+
fs.writeFileSync(
17+
path.join(types, 'index.d.ts'),
18+
transpile(fs.readFileSync(path.join('types', 'index.d.ts'), 'utf8'), 'index.d.ts', 'types')
19+
)
20+
1721
fs.writeFileSync(
1822
path.join(root, 'README.md'),
1923
fs.readFileSync('README.md', 'utf8')
@@ -54,6 +58,10 @@ function transpile(x, name, folder) {
5458
x += '\n;window.addEventListener("unload", () => Deno.exit(process.exitCode))'
5559
}
5660

61+
const stream = x.includes('import(\'node:stream\')')
62+
? 'import { Readable, Writable } from \'' + std + 'node/stream.ts\'\n'
63+
: ''
64+
5765
const buffer = x.includes('Buffer')
5866
? 'import { Buffer } from \'' + std + 'node/buffer.ts\'\n'
5967
: ''
@@ -70,7 +78,7 @@ function transpile(x, name, folder) {
7078
? 'import { HmacSha256 } from \'' + std + 'hash/sha256.ts\'\n'
7179
: ''
7280

73-
return hmac + buffer + process + timers + x
81+
return hmac + buffer + process + stream + timers + x
7482
.replace(
7583
/setTimeout\((.*)\)\.unref\(\)/g,
7684
'(window.timer = setTimeout($1), Deno.unrefTimer(window.timer), window.timer)'
@@ -84,6 +92,7 @@ function transpile(x, name, folder) {
8492
'(query.writable.push({ chunk }), callback())'
8593
)
8694
.replace(/.setKeepAlive\([^)]+\)/g, '')
95+
.replace(/import\('node:stream'\)\./g, '')
8796
.replace(/import net from 'net'/, 'import { net } from \'../polyfills.js\'')
8897
.replace(/import tls from 'tls'/, 'import { tls } from \'../polyfills.js\'')
8998
.replace(/ from '([a-z_]+)'/g, ' from \'' + std + 'node/$1.ts\'')

0 commit comments

Comments
 (0)