mirror of https://gitee.com/cf-fz/WebCAD.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.5 KiB
149 lines
4.5 KiB
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>): Geom2
|
|
declare function scission(...geometries: RecursiveArray<Geom3>): Geom3`, err => { });
|