Skip to content

Commit

Permalink
added type declarations (#37)
Browse files Browse the repository at this point in the history
* added declaration file

* added typescript

* added tsconfig

* use workspace ts

* removed unused file

* Revert "removed unused file"

This reverts commit 93e5114.
  • Loading branch information
Ha-limLee authored Sep 20, 2023
1 parent c4f92da commit 56db418
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 4 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}
85 changes: 85 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
type ValueOf<T> = T[keyof T];

export type Dtypes = {
"<u1": {
name: "uint8";
size: 8;
arrayConstructor: typeof Uint8Array;
};
"|u1": {
name: "uint8";
size: 8;
arrayConstructor: typeof Uint8Array;
};
"<u2": {
name: "uint16";
size: 16;
arrayConstructor: typeof Uint16Array;
};
"|i1": {
name: "int8";
size: 8;
arrayConstructor: typeof Int8Array;
};
"<i2": {
name: "int16";
size: 16;
arrayConstructor: typeof Int16Array;
};
"<u4": {
name: "uint32";
size: 32;
arrayConstructor: typeof Int32Array;
};
"<i4": {
name: "int32";
size: 32;
arrayConstructor: typeof Int32Array;
};
"<u8": {
name: "uint64";
size: 64;
arrayConstructor: typeof BigUint64Array;
};
"<i8": {
name: "int64";
size: 64;
arrayConstructor: typeof BigInt64Array;
};
"<f4": {
name: "float32";
size: 32;
arrayConstructor: typeof Float32Array;
};
"<f8": {
name: "float64";
size: 64;
arrayConstructor: typeof Float64Array;
};
};

export type Parsed = ValueOf<{
[K in keyof Dtypes]: {
dtype: Dtypes[K]["name"];
data: InstanceType<Dtypes[K]["arrayConstructor"]>;
shape: number[];
fortranOrder: boolean;
};
}>;

declare class npyjs {

constructor(opts?: never);

dtypes: Dtypes;

parse(arrayBufferContents: ArrayBuffer): Parsed;

load(
filename: RequestInfo | URL | ArrayBuffer,
callback?: (result?: Parsed) => any,
fetchArgs?: RequestInit
): Promise<Parsed>;
}

export default npyjs;
26 changes: 23 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"node": "^12.20.0 || >=14.13.1"
},
"devDependencies": {
"mocha": "^10.2.0"
"mocha": "^10.2.0",
"typescript": "4.1.x"
},
"scripts": {
"test": "mocha"
Expand Down
15 changes: 15 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Change this to match your project
"include": ["index.js"],
"compilerOptions": {
// Tells TypeScript to read JS files, as
// normally they are ignored as source files
"allowJs": true,
// Generate d.ts files
"declaration": true,
// This compiler run should
// only output d.ts files
"emitDeclarationOnly": true,
"target": "ES6"
}
}

0 comments on commit 56db418

Please sign in to comment.