Procházet zdrojové kódy

Udpate error message handlers to RegExp

Lutz Roeder před 6 roky
rodič
revize
46325d009a
26 změnil soubory, kde provedl 85 přidání a 124 odebrání
  1. 4 6
      src/armnn.js
  2. 2 3
      src/bigdl.js
  3. 2 3
      src/caffe.js
  4. 4 6
      src/caffe2.js
  5. 4 6
      src/chainer.js
  6. 2 3
      src/coreml.js
  7. 2 3
      src/darknet.js
  8. 4 6
      src/dl4j.js
  9. 5 7
      src/flux.js
  10. 1 1
      src/gzip.js
  11. 6 6
      src/index.js
  12. 4 6
      src/keras.js
  13. 2 3
      src/mediapipe.js
  14. 3 5
      src/mlnet.js
  15. 2 3
      src/mnn.js
  16. 4 6
      src/mxnet.js
  17. 4 6
      src/ncnn.js
  18. 2 3
      src/onnx.js
  19. 4 6
      src/openvino.js
  20. 4 6
      src/pytorch.js
  21. 4 6
      src/sklearn.js
  22. 2 3
      src/tengine.js
  23. 4 6
      src/tf.js
  24. 4 6
      src/tflite.js
  25. 2 3
      src/torch.js
  26. 4 6
      src/view.js

+ 4 - 6
src/armnn.js

@@ -28,9 +28,8 @@ armnn.ModelFactory = class {
             }
             catch (error) {
                 host.exception(error, false);
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new armnn.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new armnn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
 
             return armnn.Metadata.open(host).then((metadata) => {
@@ -38,9 +37,8 @@ armnn.ModelFactory = class {
                     return new armnn.Model(model, metadata);
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new new armnn.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new new armnn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/bigdl.js

@@ -32,9 +32,8 @@ bigdl.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new bigdl.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new bigdl.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/caffe.js

@@ -72,9 +72,8 @@ caffe.ModelFactory = class {
                                     return this._openNetParameterText(metadata, context.identifier, text, host);
                                 }).catch((error) => {
                                     if (error) {
-                                        let message = error && error.message ? error.message : error.toString();
-                                        message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                                        throw new caffe.Error("Failed to load '" + file + "' (" + message + ").");
+                                        const message = error && error.message ? error.message : error.toString();
+                                        throw new caffe.Error("Failed to load '" + file + "' (" + message.replace(/\.$/, '') + ").");
                                     }
                                 });
                             }

+ 4 - 6
src/caffe2.js

@@ -99,9 +99,8 @@ caffe2.ModelFactory = class {
                         }
                         catch (error) {
                             host.exception(error, false);
-                            let message = error && error.message ? error.message : error.toString();
-                            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                            throw new caffe2.Error(message + " in '" + identifier + "'.");
+                            const message = error && error.message ? error.message : error.toString();
+                            throw new caffe2.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                         }
                     };
                     if (base.toLowerCase().endsWith('init_net') || base.toLowerCase().startsWith('init_net')) {
@@ -147,9 +146,8 @@ caffe2.ModelFactory = class {
                         }
                         catch (error) {
                             host.exception(error, false);
-                            let message = error && error.message ? error.message : error.toString();
-                            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                            throw new caffe2.Error(message + " in '" + identifier + "'.");
+                            const message = error && error.message ? error.message : error.toString();
+                            throw new caffe2.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                         }
                     };
                     if (base.toLowerCase().endsWith('init_net')) {

+ 4 - 6
src/chainer.js

@@ -209,9 +209,8 @@ chainer.ModelFactory = class {
                     return new chainer.Model(modules, 'Chainer NumPy');
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new chainer.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new chainer.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });
@@ -266,9 +265,8 @@ chainer.ModelFactory = class {
                 return new chainer.Model(modules, 'Chainer HDF5');
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new chainer.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new chainer.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }

+ 2 - 3
src/coreml.js

@@ -30,9 +30,8 @@ coreml.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new coreml.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new coreml.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/darknet.js

@@ -33,9 +33,8 @@ darknet.ModelFactory = class {
             return new darknet.Model(metadata, cfg, weights ? new darknet.Weights(weights) : null);
         }
         catch (error) {
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            throw new darknet.Error(message + " in '" + identifier + "'.");
+            const message = error && error.message ? error.message : error.toString();
+            throw new darknet.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
         }
     }
 };

+ 4 - 6
src/dl4j.js

@@ -30,17 +30,15 @@ dl4j.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new dl4j.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new dl4j.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         }
         catch (error) {
             host.exception(error, false);
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            return Promise.reject(new dl4j.Error(message + " in '" + identifier + "'."));
+            const message = error && error.message ? error.message : error.toString();
+            return Promise.reject(new dl4j.Error(message.replace(/\.$/, '') + " in '" + identifier + "'."));
         }
     }
 

+ 5 - 7
src/flux.js

@@ -30,18 +30,16 @@ flux.ModelFactory = class {
                 }
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new flux.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new flux.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
             return flux.Metadata.open(host).then((metadata) => {
                 try {
                     return new flux.Model(metadata, model);
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new flux.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new flux.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });
@@ -106,7 +104,7 @@ flux.Metadata = class {
         this._map = {};
         this._attributeCache = {};
         if (data) {
-            let items = JSON.parse(data);
+            const items = JSON.parse(data);
             if (items) {
                 for (const item of items) {
                     if (item.name && item.schema) {

+ 1 - 1
src/gzip.js

@@ -46,7 +46,7 @@ gzip.Entry = class {
         if ((flags & 1) != 0) {
             reader.uint16(); // CRC16
         }
-        let compressedData = reader.bytes();
+        const compressedData = reader.bytes();
         if (typeof process === 'object' && typeof process.versions == 'object' && typeof process.versions.node !== 'undefined') {
             this._data = require('zlib').inflateRawSync(compressedData);
         }

+ 6 - 6
src/index.js

@@ -142,8 +142,8 @@ host.BrowserHost = class {
         }
 
         this._view.show('welcome');
-        let openFileButton = this.document.getElementById('open-file-button');
-        let openFileDialog = this.document.getElementById('open-file-dialog');
+        const openFileButton = this.document.getElementById('open-file-button');
+        const openFileDialog = this.document.getElementById('open-file-dialog');
         if (openFileButton && openFileDialog) {
             openFileButton.addEventListener('click', () => {
                 openFileDialog.value = '';
@@ -159,8 +159,8 @@ host.BrowserHost = class {
                 }
             });
         }
-        let downloadButton = this.document.getElementById('download-button');
-        let downloadLink = this.document.getElementById('logo-github');
+        const downloadButton = this.document.getElementById('download-button');
+        const downloadLink = this.document.getElementById('logo-github');
         if (downloadButton && downloadLink) {
             downloadButton.style.opacity = 1;
             downloadButton.addEventListener('click', () => {
@@ -213,7 +213,7 @@ host.BrowserHost = class {
             script.setAttribute('type', 'text/javascript');
             script.setAttribute('src', url);
             script.onload = () => {
-                let exports = window.module.exports;
+                const exports = window.module.exports;
                 delete window.module;
                 window.__modules__[id] = exports;
                 resolve(exports);
@@ -494,7 +494,7 @@ if (typeof TextEncoder === "undefined") {
         "use strict";
         const length = str.length
         let resPos = -1;
-        let resArr = typeof Uint8Array === "undefined" ? new Array(length * 2) : new Uint8Array(length * 3);
+        const resArr = typeof Uint8Array === "undefined" ? new Array(length * 2) : new Uint8Array(length * 3);
         for (let point = 0, nextcode = 0, i = 0; i !== length; ) {
             point = str.charCodeAt(i);
             i += 1;

+ 4 - 6
src/keras.js

@@ -97,9 +97,8 @@ keras.ModelFactory = class {
                 }
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new keras.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new keras.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
 
             if (!rootGroup && !model_config) {
@@ -115,9 +114,8 @@ keras.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new keras.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new keras.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/mediapipe.js

@@ -28,9 +28,8 @@ mediapipe.ModelFactory = class {
         }
         catch (error) {
             host.exception(error, false);
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            return Promise.reject(new mediapipe.Error(message + " in '" + identifier + "'."));
+            const message = error && error.message ? error.message : error.toString();
+            return Promise.reject(new mediapipe.Error(message.replace(/\.$/, '') + " in '" + identifier + "'."));
         }
     }
 };

+ 3 - 5
src/mlnet.js

@@ -31,9 +31,8 @@ mlnet.ModelFactory = class {
                 return new mlnet.Model(metadata, reader);
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new mlnet.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new mlnet.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }
@@ -130,8 +129,7 @@ mlnet.Graph = class {
             }
         }
 
-        let node = new mlnet.Node(metadata, group, transformer);
-        this._nodes.push(node);
+        this._nodes.push(new mlnet.Node(metadata, group, transformer));
     }
 
     get groups() {

+ 2 - 3
src/mnn.js

@@ -27,9 +27,8 @@ mnn.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new mnn.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new mnn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 4 - 6
src/mxnet.js

@@ -201,9 +201,8 @@ mxnet.ModelFactory = class {
                     return this._openModel(identifier, format, manifest, symbol, signature, params, host);
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new mxnet.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new mxnet.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             }
             default:
@@ -231,9 +230,8 @@ mxnet.ModelFactory = class {
             }
             catch (error) {
                 host.exception(error, false);
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new mxnet.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new mxnet.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }

+ 4 - 6
src/ncnn.js

@@ -52,9 +52,8 @@ ncnn.ModelFactory = class {
                     return new ncnn.Model(metadata, param, bin);
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new ncnn.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new ncnn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             };
             let bin = null;
@@ -90,9 +89,8 @@ ncnn.ModelFactory = class {
                 return context.request(text, 'utf-8').then((text) => {
                     return param(text, context.buffer);
                 }).catch((error) => {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new ncnn.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new ncnn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 });
             }
         });

+ 2 - 3
src/onnx.js

@@ -94,9 +94,8 @@ onnx.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new onnx.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new onnx.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 4 - 6
src/openvino.js

@@ -54,9 +54,8 @@ openvino.ModelFactory = class {
                     return this._openModel(identifier, host, xml, context.buffer);
                 }).catch((error) => {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new openvino.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new openvino.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 });
         }
     }
@@ -80,9 +79,8 @@ openvino.ModelFactory = class {
             }
             catch (error) {
                 host.exception(error, false);
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new openvino.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new openvino.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }

+ 4 - 6
src/pytorch.js

@@ -29,17 +29,15 @@ pytorch.ModelFactory = class {
                 return pytorch.Metadata.open(host).then((metadata) => {
                     try {
                         const container = pytorch.Container.open(context, metadata, pickle, python, (error, fatal) => {
-                            let message = error && error.message ? error.message : error.toString();
-                            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                            host.exception(new pytorch.Error(message + " in '" + identifier + "'."), fatal);
+                            const message = error && error.message ? error.message : error.toString();
+                            host.exception(new pytorch.Error(message.replace(/\.$/, '') + " in '" + identifier + "'."), fatal);
                         });
                         return new pytorch.Model(metadata, container);
                     }
                     catch (error) {
                         host.exception(error, false);
-                        let message = error && error.message ? error.message : error.toString();
-                        message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                        throw new pytorch.Error(message + " in '" + identifier + "'.");
+                        const message = error && error.message ? error.message : error.toString();
+                        throw new pytorch.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                     }
                 });
             });

+ 4 - 6
src/sklearn.js

@@ -440,9 +440,8 @@ sklearn.ModelFactory = class {
                 }
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new sklearn.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new sklearn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
     
             return sklearn.Metadata.open(host).then((metadata) => {
@@ -451,9 +450,8 @@ sklearn.ModelFactory = class {
                 }
                 catch (error) {
                     host.exception(error, false);
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new sklearn.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new sklearn.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/tengine.js

@@ -38,9 +38,8 @@ tengine.ModelFactory = class {
                 return new tengine.Model(metadata, buffer);
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new tengine.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new tengine.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }

+ 4 - 6
src/tf.js

@@ -250,9 +250,8 @@ tf.ModelFactory = class {
         }
         catch (error) {
             host.exception(error, false);
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            throw new tf.Error(message + " in '" + identifier + "'.");
+            const message = error && error.message ? error.message : error.toString();
+            throw new tf.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
         }
     }
 
@@ -263,9 +262,8 @@ tf.ModelFactory = class {
                 return new tf.Model(metadata, null, 'TensorFlow Tensor Bundle v' + bundle.format.toString(), null, bundle);
             }).catch((error) => {
                 host.exception(error, false);
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new tf.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new tf.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             });
         });
     }

+ 4 - 6
src/tflite.js

@@ -39,9 +39,8 @@ tflite.ModelFactory = class {
             }
             catch (error) {
                 host.exception(error, false);
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new tflite.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new tflite.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
 
             return tflite.Metadata.open(host).then((metadata) => {
@@ -49,9 +48,8 @@ tflite.ModelFactory = class {
                     return new tflite.Model(metadata, model);
                 }
                 catch (error) {
-                    let message = error && error.message ? error.message : error.toString();
-                    message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                    throw new tflite.Error(message + " in '" + identifier + "'.");
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new tflite.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
                 }
             });
         });

+ 2 - 3
src/torch.js

@@ -36,9 +36,8 @@ torch.ModelFactory = class {
                 return new torch.Model(metadata, root);
             }
             catch (error) {
-                let message = error && error.message ? error.message : error.toString();
-                message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-                throw new torch.Error(message + " in '" + identifier + "'.");
+                const message = error && error.message ? error.message : error.toString();
+                throw new torch.Error(message.replace(/\.$/, '') + " in '" + identifier + "'.");
             }
         });
     }

+ 4 - 6
src/view.js

@@ -1251,9 +1251,8 @@ view.ModelFactoryService = class {
             }
         }
         catch (error) {
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            return Promise.reject(new ArchiveError(message + " in '" + identifier + "'."));
+            const message = error && error.message ? error.message : error.toString();
+            return Promise.reject(new ArchiveError(message.replace(/\.$/, '') + " in '" + identifier + "'."));
         }
 
         try {
@@ -1274,9 +1273,8 @@ view.ModelFactoryService = class {
             }
         }
         catch (error) {
-            let message = error && error.message ? error.message : error.toString();
-            message = message.endsWith('.') ? message.substring(0, message.length - 1) : message;
-            return Promise.reject(new ArchiveError(message + " in '" + identifier + "'."));
+            const message = error && error.message ? error.message : error.toString();
+            return Promise.reject(new ArchiveError(message.replace(/\.$/, '') + " in '" + identifier + "'."));
         }
 
         if (!archive) {