upgrade to webpack 5

This commit is contained in:
Val Erastov 2022-08-20 00:25:36 -07:00
parent 5aa5ca4ead
commit 0cd501b8cc
6 changed files with 4322 additions and 11750 deletions

View file

@ -1,5 +1,3 @@
import * as THREE from 'three';
window.THREE = THREE;
require('three/examples/js/controls/OrbitControls');
require('three/examples/js/controls/TransformControls');

View file

@ -1,16 +1,26 @@
import {ApplicationContext} from "cad/context";
import {OperationDescriptor} from "cad/craft/operationBundle";
import {LocalFile, LocalFileAdapter} from "ui/components/controls/FileControl";
import CadError from "../../../../../web/app/utils/errors";
import {parseStringPromise} from 'xml2js';
import {LocalFileAdapter} from "ui/components/controls/FileControl";
import CadError from "utils/errors";
import {parseString} from 'browser-xml2js';
import {importStepFile} from "cad/craft/e0/interact";
import {clone} from "gems/objects";
import JSZip from "jszip";
import JSZip from "jszip/dist/jszip.min";
interface ImportModelParams {
file: LocalFileAdapter;
}
const parseStringAsync = (xml) => new Promise((resolve, reject) => {
parseString(xml, function (err, result) {
if (err) {
reject(err)
} else {
resolve(result);
}
});
});
export const ImportModelOperation: OperationDescriptor<ImportModelParams> = {
id: 'IMPORT_MODEL',
label: 'Import',
@ -43,7 +53,7 @@ export const ImportModelOperation: OperationDescriptor<ImportModelParams> = {
const zipContents = (await JSZip.loadAsync(params.file.base64Content(), { base64: true })).files;
const xmlFreeCADData = await zipContents["Document.xml"].async("string");
const DecodedXmlFreeCADData = (clone(await parseStringPromise(xmlFreeCADData))).Document.ObjectData[0].Object;
const DecodedXmlFreeCADData = (clone(await parseStringAsync(xmlFreeCADData))).Document.ObjectData[0].Object;
for (const itemToLookAt in DecodedXmlFreeCADData) {
const flattenedObject = flattenJSON(DecodedXmlFreeCADData[itemToLookAt]);

16005
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -41,12 +41,12 @@
"@babel/preset-react": "^7.18.6",
"@babel/preset-stage-2": "^7.8.3",
"@babel/preset-typescript": "^7.18.6",
"@cypress/webpack-preprocessor": "^4.1.3",
"@cypress/webpack-preprocessor": "^5.12.2",
"@types/react": "^16.9.34",
"@types/react-dom": "^16.9.7",
"@typescript-eslint/eslint-plugin": "^5.33.0",
"@typescript-eslint/parser": "^5.33.0",
"babel-loader": "^8.1.0",
"babel-loader": "^8.2.5",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"babel-polyfill": "^6.26.0",
"concurrently": "^7.3.0",
@ -62,21 +62,22 @@
"grunt-contrib-copy": "1.0.0",
"grunt-contrib-watch": "^1.1.0",
"handlebars": "^4.7.7",
"less-loader": "^5.0.0",
"less-loader": "^11.0.0",
"less-vars-loader": "^1.1.0",
"raw-loader": "^4.0.0",
"style-loader": "^1.1.3",
"typescript": "^4.7.4",
"url-loader": "^4.1.1",
"webpack": "^4.42.1",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3"
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^4.10.0",
"buffer": "^6.0.3"
},
"dependencies": {
"@tarikjabiri/dxf": "^2.3.0",
"@types/three": "^0.143.0",
"classnames": "2.2.5",
"clipper-lib": "6.2.1",
"@tarikjabiri/dxf": "^2.3.0",
"earcut": "2.1.1",
"font-awesome": "4.7.0",
"immer": "^9.0.12",
@ -85,10 +86,10 @@
"less": "^3.11.1",
"libtess": "1.2.2",
"lodash": "^4.17.15",
"marked": "^1.0.0",
"marked": "^4.0.18",
"mousetrap": "1.6.1",
"numeric": "1.2.6",
"prop-types": "15.6.0",
"prop-types": "^15.8.1",
"react": "^16.13.1",
"react-color": "^2.19.3",
"react-dom": "^16.13.1",
@ -96,6 +97,6 @@
"react-toastify": "^5.5.0",
"sprintf": "0.1.5",
"three": "^0.143.0",
"xml2js": "^0.4.23"
"browser-xml2js": "^0.4.19"
}
}

View file

@ -4,7 +4,8 @@ import {NumberField} from '../../wizard/components/form/Fields';
import EntityList from '../../wizard/components/form/EntityList';
import {StackSection} from "ui/components/controls/FormSection";
import Button from "ui/components/controls/Button";
import {IoAddCircleOutline, IoIosRemoveCircleOutline} from "react-icons/all";
import {IoIosRemoveCircleOutline} from "react-icons/io";
import {IoAddCircleOutline} from "react-icons/io5";
import ls from './CreateDatumWizard.less'
import ComboBoxControl, {ComboBoxOption} from "ui/components/controls/ComboBoxControl";
import NumberControl from "ui/components/controls/NumberControl";

View file

@ -27,25 +27,30 @@ module.exports = {
externals: {
'verb-nurbs': 'verb'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
resolve: {
extensions: ['.js', '.jsx', ".ts", ".tsx"],
modules: [MODULES, "node_modules", WEB_APP]
modules: [MODULES, "node_modules", WEB_APP],
},
devServer: {
hot: false,
inline: false,
contentBase: [
liveReload: false,
client: {
logging: 'error',
overlay: {
errors: true,
warnings: false
}
},
static: [
path.join(__dirname, 'web'),
],
before(app) {
setupMiddlewares(middlewares, devServer) {
libAssets.forEach(asset => {
app.get(`/lib-assets/${asset}`, function (req, res) {
devServer.app.get(`/lib-assets/${asset}`, function (req, res) {
res.sendFile(path.join(NODE_MODULES, asset))
})
});
return middlewares;
}
},
module: {