import { readFile, writeFile } from 'fs'; import * as path from 'path'; import { downLoadFile } from './utils'; //修正d.ts中类型定义出现错误的问题,临时修复,因为d.ts并不能完全快速的合并我们的类型修复PR. // copyFolderRecursiveSync("./@types/", "./node_modules/"); function downloadTypes(downFiles: { moduleName: string; urlPath: string; files: string[]; }) { let filePath = path.resolve("./node_modules/" + downFiles.moduleName) + "\\"; for (let file of downFiles.files) { try { downLoadFile(downFiles.urlPath + file, filePath + file); console.log("成功", file); } catch (error) { console.log(file, error); } } } readFile("node_modules\\dxf-parser\\dist\\ParseHelpers.js", "utf-8", (err, str) => { if (!str) { console.error("出错了,读不到文件:node_modules\\dxf-parser\\dist\\ParseHelpers.js"); return; } if (str.includes("case 210:")) return; str = str.replace("case 330:", ` case 210: entity.extrusionDirectionX = curr.value; break; case 220: entity.extrusionDirectionY = curr.value; break; case 230: entity.extrusionDirectionZ = curr.value; break; case 330: `); writeFile("node_modules\\dxf-parser\\dist\\ParseHelpers.js", str, err => { if (err) console.error("dxf parse写入失败"); else console.log("dxf parse hack 成功"); }); }); readFile("node_modules\\@jscad\\modeling\\src\\maths\\constants.js", "utf-8", (err, str) => { str = str.replaceAll("5", "3"); writeFile("node_modules\\@jscad\\modeling\\src\\maths\\constants.js", str, err => { if (err) console.error("csg写入失败"); else console.log("csg hack 成功"); }); }); readFile("node_modules\\rollup-plugin-typescript\\dist\\rollup-plugin-typescript.cjs.js", "utf-8", (err, str) => { if (str.includes("readFile: () => { }")) return; str = str.replaceAll("var resolveHost = {", "var resolveHost = {\r\nreadFile: () => { },\r\n"); writeFile("node_modules\\rollup-plugin-typescript\\dist\\rollup-plugin-typescript.cjs.js", str, err => { if (err) console.error("hack rollup-plugin-typescript error"); else console.log("hack rollup-plugin-typescript ok"); }); }); readFile("node_modules\\rollup-plugin-typescript\\dist\\rollup-plugin-typescript.es.js", "utf-8", (err, str) => { if (str.includes("readFile: () => { }")) return; str = str.replaceAll("var resolveHost = {", "var resolveHost = {\r\nreadFile: () => { },\r\n"); writeFile("node_modules\\rollup-plugin-typescript\\dist\\rollup-plugin-typescript.es.js", str, err => { if (err) console.error("hack rollup-plugin-typescript error"); else console.log("hack rollup-plugin-typescript ok"); }); }); writeFile("node_modules\\@jscad\\modeling\\src\\operations\\modifiers\\retessellate.d.ts", "import { Geom3 } from '../../geometries/types';\r\n\r\nexport default function retessellate(geometry: Geom3): Geom3;\r\n", err => { if (err) console.error("retessellate.d.ts error"); else console.log("retessellate.d.ts ok"); } ); writeFile("node_modules/@jscad/modeling/src/operations/booleans/trees/splitPolygonByPlane.d.ts", ` import { Poly3 } from '../../../geometries/types'; import { Plane } from '../../../maths/types'; enum ResType { coplanar_front = 0, coplanar_back = 1, front = 2, back = 3, spanning = 4, } interface SplitRes { type: ResType, front: Poly3, back: Poly3; } // Returns object: // .type: // 0: coplanar-front // 1: coplanar-back // 2: front // 3: back // 4: spanning // In case the polygon is spanning, returns: // .front: a Polygon3 of the front part // .back: a Polygon3 of the back part declare function splitPolygonByPlane(plane: Plane, polygon: Poly3): SplitRes; export default splitPolygonByPlane;`, err => { }); writeFile("node_modules/@jscad/modeling/src/operations/booleans/scission.d.ts", ` iimport { Geom2, Geom3 } from '../../geometries/types' import RecursiveArray from '../../utils/recursiveArray' export default scission declare function scission(...geometries: RecursiveArray): Geom2 declare function scission(...geometries: RecursiveArray): Geom3`, err => { });