Added types to modules without types

This commit is contained in:
Jonathan Barrow
2023-04-24 23:37:36 -04:00
parent 5d924b45f1
commit 6e86498981
7 changed files with 128 additions and 10 deletions

7
package-lock.json generated
View File

@@ -34,6 +34,7 @@
"devDependencies": {
"@types/express": "^4.17.17",
"@types/fs-extra": "^11.0.1",
"@types/memoizee": "^0.4.8",
"@types/morgan": "^1.9.4",
"@types/multer": "^1.4.7",
"@types/node-rsa": "^1.1.1",
@@ -1515,6 +1516,12 @@
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"node_modules/@types/memoizee": {
"version": "0.4.8",
"resolved": "https://registry.npmjs.org/@types/memoizee/-/memoizee-0.4.8.tgz",
"integrity": "sha512-qDpXKGgwKywnQt/64fH1O0LiPA++QGIYeykEUiZ51HymKVRLnUSGcRuF60IfpPeeXiuRwiR/W4y7S5VzbrgLCA==",
"dev": true
},
"node_modules/@types/mime": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",

View File

@@ -39,6 +39,7 @@
"devDependencies": {
"@types/express": "^4.17.17",
"@types/fs-extra": "^11.0.1",
"@types/memoizee": "^0.4.8",
"@types/morgan": "^1.9.4",
"@types/multer": "^1.4.7",
"@types/node-rsa": "^1.1.1",

View File

@@ -1,3 +1,16 @@
declare module 'express-subdomain';
// * Credit to https://github.com/bmullan91/express-subdomain/pull/61 for the types!
// TODO - Add proper types
declare module 'express-subdomain'{
import type { Request, Response, Router } from 'express';
/**
* @description The subdomain function.
* @param subdomain The subdomain to listen on.
* @param fn The listener function, takes a response and request.
* @returns A function call to the value passed as FN, or void (the next function).
*/
export default function subdomain(
subdomain: string,
fn: Router | ((req: Request, res: Response) => void | any)
): (req: Request, res: Response, next: () => void) => void | typeof fn;
}

View File

@@ -1,3 +1,34 @@
declare module 'memoizee';
// * Taken from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/memoizee/index.d.ts
// * Installing from @types/memoizee did not work, types werent being seen
// TODO - Add proper types
// Type definitions for memoizee 0.4
// Project: https://github.com/medikoo/memoizee
// Definitions by: Juan Picado <https://github.com/juanpicado>
// Patrick Muff <https://github.com/dislick>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.1
declare namespace memoizee {
interface Options<F extends (...args: any[]) => any> {
length?: number | false | undefined;
maxAge?: number | undefined;
max?: number | undefined;
preFetch?: number | true | undefined;
promise?: boolean | 'then' | 'done' | 'done:finally' | undefined;
dispose?(value: any): void;
async?: boolean | undefined;
primitive?: boolean | undefined;
normalizer?(args: Parameters<F>): string;
resolvers?: Array<(arg: any) => any> | undefined;
profileName?: string;
}
interface Memoized<F> {
delete: F;
clear: F & (() => void);
}
}
declare function memoizee<F extends (...args: any[]) => any>(f: F, options?: memoizee.Options<F>): F & memoizee.Memoized<F>;
export = memoizee;

View File

@@ -1,3 +1,14 @@
declare module 'node-snowflake';
declare module 'node-snowflake' {
export interface SnowflakeInitConfig {
worker_id: number;
data_center_id: number;
sequence: number;
}
// TODO - Add proper types
export function Server(port: number): void;
export const Snowflake: {
init: (config: SnowflakeInitConfig) => void;
nextId: (workerId?: number, dataCenterId?: number, sequence?: number) => string;
};
}

59
src/types/tga.d.ts vendored
View File

@@ -1,3 +1,58 @@
declare module 'tga';
declare module 'tga' {
export interface TGAHeader {
idLength: number;
colorMapType: number;
dataType: number;
colorMapOrigin: number;
colorMapLength: number;
colorMapDepth: number;
xOrigin: number;
yOrigin: number;
width: number;
height: number;
bitsPerPixel: number;
flags: number;
id: string;
}
// TODO - Add proper types
export default class TGA {
constructor(buf: Buffer, opt?: { dontFixAlpha: boolean });
static createTgaBuffer(width: number, height: number, pixels: Uint8Array, dontFlipY: boolean): Buffer;
parseHeader(): void;
parseFooter(): void;
parseExtension(extensionAreaOffset: number): void;
readColor(offset: number, bytesPerPixel: number): Uint8Array;
readColorWithColorMap(offset: number): Uint8Array;
readColorAuto(offset: number, bytesPerPixel: number, isUsingColorMap: boolean): Uint8Array;
parseColorMap(): void;
setPixel(pixels: Uint8Array, idx: number, color: Uint8Array): void;
parsePixels(): void;
parse(): void;
fixForAlpha(): void;
public dontFixAlpha: boolean;
public _buff: Buffer;
public data: Uint8Array;
public currentOffset: number;
public header: TGAHeader;
public width: number;
public height: number;
public isUsingColorMap: boolean;
public isUsingRLE: boolean;
public isGray: boolean;
public hasAlpha: boolean;
public isFlipX: boolean;
public isFlipY: boolean;
public colorMap: Uint8Array;
public pixels: Uint8Array;
}
}

View File

@@ -140,13 +140,13 @@ export function processPainting(painting: string): Buffer | null {
return null;
}
const tga = new TGA(Buffer.from(output));
const tga: TGA = new TGA(Buffer.from(output));
const png: PNG = new PNG({
width: tga.width,
height: tga.height
});
png.data = tga.pixels;
png.data = Buffer.from(tga.pixels);
return PNG.sync.write(png);
}