From c250700ad839ef246d102e91b5b8731b9cc9fa07 Mon Sep 17 00:00:00 2001 From: Diya Solanki Date: Tue, 28 Jan 2025 00:10:06 +0530 Subject: [PATCH] added patches for current exceptions --- package.json | 2 +- utils/patch.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 utils/patch.js diff --git a/package.json b/package.json index ffbcf761ed..270c442a58 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test": "vitest", "lint": "eslint .", "lint:fix": "eslint --fix .", - "generate-types": "npm run docs && node utils/generate-types" + "generate-types": "npm run docs && node utils/generate-types && node utils/patch" }, "lint-staged": { "Gruntfile.js": "eslint", diff --git a/utils/patch.js b/utils/patch.js new file mode 100644 index 0000000000..2231e86361 --- /dev/null +++ b/utils/patch.js @@ -0,0 +1,47 @@ +const fs = require('fs'); + +const replace = (path, src, dest) => { + try { + const data = fs + .readFileSync(path, { encoding: 'utf-8' }) + .replace(src, dest); + fs.writeFileSync(path, data); + } catch (err) { + console.error(err); + } +}; + +replace( + "./src/core/structure.d.ts", + "function p5(sketch: object, node: string | HTMLElement): void;", + "function p5: typeof p5" +); + +replace( + "./src/webgl/p5.Geometry.d.ts", + "constructor(detailX?: number, detailY?: number, callback?: function);", + `constructor( + detailX?: number, + detailY?: number, + callback?: (this: { + detailY: number, + detailX: number, + vertices: p5.Vector[], + uvs: number[] + }) => void);` +); + +// https://github.com/p5-types/p5.ts/issues/31 +replace( + "./src/math/random.d.ts", + "function random(choices: Array): any;", + "function random(choices: T[]): T;" +); + +replace( + "./src/utilities/array_functions.d.ts", + "function append(array: Array, value: Any): Array;", + "function append(array: T[], value: T): T[];" +); + +