From 1c7436e7ff4db70f80f1e26c113bd54efc9e5608 Mon Sep 17 00:00:00 2001 From: Fabians Date: Mon, 4 Apr 2022 19:00:24 +0300 Subject: [PATCH] extra prefer-const & object-shorthand --- .eslintrc.js | 4 +- packages/fileimport-service/ifc/api.js | 44 +++--- .../fileimport-service/ifc/import_file.js | 12 +- packages/fileimport-service/ifc/index.js | 20 +-- packages/fileimport-service/ifc/parser.js | 36 ++--- packages/fileimport-service/src/daemon.js | 20 +-- packages/fileimport-service/src/filesApi.js | 12 +- packages/frontend/src/embed/EmbedApp.vue | 2 +- packages/frontend/src/embed/EmbedViewer.vue | 28 ++-- packages/frontend/src/embed/embedApp.js | 2 +- packages/frontend/src/embed/embedVuetify.js | 2 +- packages/frontend/src/embed/speckleUtils.js | 8 +- packages/frontend/src/main/app.js | 2 +- .../components/activity/ListItemActivity.vue | 4 +- .../main/components/admin/ActivityCard.vue | 18 +-- .../main/components/admin/AnimatedNumber.vue | 2 +- .../main/components/admin/GeneralInfoCard.vue | 2 +- .../main/components/admin/VersionInfoCard.vue | 2 +- .../main/components/auth/AuthStrategies.vue | 4 +- .../components/comments/CommentListItem.vue | 4 +- .../comments/CommentThreadViewer.vue | 42 ++--- .../common/CommitReceivedReceipts.vue | 2 +- .../components/common/NoDataPlaceholder.vue | 4 +- .../src/main/components/common/SearchBar.vue | 2 +- .../components/common/SourceAppAvatar.vue | 4 +- .../src/main/components/feed/FeedTimeline.vue | 4 +- .../main/components/stream/ListItemCommit.vue | 6 +- .../main/components/stream/StreamActivity.vue | 4 +- .../main/components/stream/WebhookForm.vue | 6 +- .../stream/globals/GlobalsBuilder.vue | 28 ++-- .../stream/globals/GlobalsEntry.vue | 22 +-- .../stream/uploads/FileProcessingItem.vue | 8 +- .../stream/uploads/FileUploadItem.vue | 4 +- .../main/components/user/AppEditDialog.vue | 8 +- .../src/main/components/user/AppNewDialog.vue | 8 +- .../main/components/user/ListItemStream.vue | 2 +- .../main/components/user/ListItemUserApp.vue | 2 +- .../src/main/components/user/TokenDialog.vue | 6 +- .../components/viewer/CommentAddOverlay.vue | 12 +- .../components/viewer/CommentsOverlay.vue | 44 +++--- .../components/viewer/CommitInfoResource.vue | 4 +- .../viewer/FilterCategoryActive.vue | 8 +- .../components/viewer/ObjectInfoResource.vue | 4 +- .../components/viewer/ObjectProperties.vue | 10 +- .../components/viewer/ObjectPropertiesRow.vue | 8 +- .../components/viewer/ObjectSelection.vue | 6 +- .../main/components/viewer/ViewerBubbles.vue | 46 +++--- .../main/components/viewer/ViewerFilters.vue | 14 +- .../components/viewer/dialogs/AllCommits.vue | 2 +- .../viewer/dialogs/AllCommitsBranch.vue | 6 +- .../viewer/dialogs/StreamOverlayViewer.vue | 8 +- .../viewer/viewerFrontendHelpers.js | 8 +- .../src/main/dialogs/BranchEditDialog.vue | 4 +- .../frontend/src/main/dialogs/CommitEdit.vue | 2 +- .../frontend/src/main/dialogs/NewStream.vue | 8 +- .../src/main/dialogs/ServerInvites.vue | 2 +- .../src/main/dialogs/ShareStreamDialog.vue | 6 +- .../src/main/dialogs/StreamInviteDialog.vue | 2 +- .../src/main/dialogs/UserDeleteDialog.vue | 2 +- .../src/main/dialogs/UserEditDialog.vue | 2 +- .../frontend/src/main/layouts/TheMain.vue | 2 +- .../frontend/src/main/navigation/MainNav.vue | 2 +- .../src/main/navigation/StreamNav.vue | 10 +- .../frontend/src/main/pages/TheCommits.vue | 2 +- .../frontend/src/main/pages/admin/Invites.vue | 22 +-- .../frontend/src/main/pages/admin/Streams.vue | 18 +-- .../frontend/src/main/pages/admin/Users.vue | 4 +- .../pages/auth/ResetPasswordFinalization.vue | 6 +- .../main/pages/auth/ResetPasswordRequest.vue | 4 +- .../frontend/src/main/pages/auth/TheLogin.vue | 18 +-- .../src/main/pages/auth/TheRegistration.vue | 20 +-- .../main/pages/stream/CommitObjectViewer.vue | 42 ++--- .../src/main/pages/stream/TheActivity.vue | 4 +- .../src/main/pages/stream/TheBranch.vue | 2 +- .../main/pages/stream/TheCollaborators.vue | 8 +- .../src/main/pages/stream/TheComments.vue | 6 +- .../src/main/pages/stream/TheSettings.vue | 2 +- .../src/main/pages/stream/TheStreamHome.vue | 2 +- .../src/main/pages/stream/TheUploads.vue | 2 +- .../src/main/pages/stream/TheWebhooks.vue | 2 +- packages/frontend/src/main/router/index.js | 4 +- packages/frontend/src/main/store/index.js | 20 +-- .../src/main/toolbars/ObjectToolbar.vue | 4 +- packages/frontend/src/plugins/authHelpers.js | 28 ++-- packages/frontend/src/plugins/helpers.js | 2 +- packages/frontend/src/plugins/vuetify.js | 4 +- .../objectloader/examples/browser/script.js | 4 +- packages/objectloader/examples/node/script.js | 6 +- packages/objectloader/index.js | 84 +++++----- packages/preview-service/app.js | 2 +- packages/preview-service/bg_service/index.js | 12 +- .../preview-service/render_page/src/app.js | 4 +- packages/preview-service/routes/api.js | 10 +- packages/preview-service/routes/objects.js | 14 +- .../routes/services/objects_utils.js | 8 +- .../webpack.config.render_page.js | 4 +- packages/server/app.js | 16 +- packages/server/knexfile.js | 10 +- packages/server/logging/apolloPlugin.js | 4 +- packages/server/logging/index.js | 2 +- .../graph/resolvers/activity.js | 20 +-- .../modules/activitystream/services/index.js | 48 +++--- .../activitystream/tests/activity.spec.js | 28 ++-- packages/server/modules/auth/defaultApps.js | 20 +-- .../modules/auth/graph/resolvers/apps.js | 10 +- packages/server/modules/auth/index.js | 4 +- packages/server/modules/auth/rest/index.js | 20 +-- packages/server/modules/auth/services/apps.js | 76 ++++----- packages/server/modules/auth/strategies.js | 18 +-- .../modules/auth/strategies/azure-ad.js | 14 +- .../server/modules/auth/strategies/github.js | 16 +- .../server/modules/auth/strategies/google.js | 14 +- .../server/modules/auth/strategies/local.js | 12 +- .../server/modules/auth/tests/apps.spec.js | 44 +++--- .../modules/auth/tests/appsGrapql.spec.js | 4 +- .../server/modules/auth/tests/auth.spec.js | 98 ++++++------ .../comments/graph/resolvers/comments.js | 8 +- packages/server/modules/comments/index.js | 2 +- .../server/modules/comments/services/index.js | 52 +++---- .../modules/comments/tests/comments.spec.js | 46 +++--- .../modules/core/graph/resolvers/apitoken.js | 2 +- .../modules/core/graph/resolvers/branches.js | 20 +-- .../modules/core/graph/resolvers/commits.js | 40 ++--- .../modules/core/graph/resolvers/objects.js | 8 +- .../modules/core/graph/resolvers/streams.js | 42 ++--- .../modules/core/graph/resolvers/users.js | 20 +-- packages/server/modules/core/index.js | 6 +- ...20532_add_commit_parents_simplification.js | 2 +- .../20201230111428_add_scopes_public_field.js | 2 +- .../20210225130308_add_roles_public_field.js | 2 +- ...314101154_add_invitefield_to_serverinfo.js | 2 +- .../20210322190000_add_streamid_to_objects.js | 2 +- .../20211119105730_de_duplicate_users.js | 8 +- .../modules/core/repositories/streams.js | 10 +- .../server/modules/core/rest/authUtils.js | 2 +- .../server/modules/core/rest/diffDownload.js | 12 +- .../server/modules/core/rest/diffUpload.js | 6 +- packages/server/modules/core/rest/download.js | 16 +- packages/server/modules/core/rest/upload.js | 20 +-- .../server/modules/core/services/branches.js | 24 +-- .../server/modules/core/services/commits.js | 46 +++--- .../server/modules/core/services/generic.js | 4 +- .../server/modules/core/services/objects.js | 116 +++++++------- .../modules/core/services/ratelimits.js | 16 +- .../server/modules/core/services/streams.js | 46 +++--- .../server/modules/core/services/tokens.js | 44 +++--- .../server/modules/core/services/users.js | 50 +++--- .../modules/core/tests/branches.spec.js | 34 ++-- .../server/modules/core/tests/commits.spec.js | 72 ++++----- .../core/tests/favoriteStreams.spec.js | 8 +- .../server/modules/core/tests/generic.spec.js | 8 +- .../server/modules/core/tests/graph.spec.js | 146 +++++++++--------- .../modules/core/tests/graphSubs.spec.js | 12 +- .../server/modules/core/tests/init.spec.js | 12 +- .../server/modules/core/tests/objects.spec.js | 96 ++++++------ .../server/modules/core/tests/rest.spec.js | 34 ++-- .../server/modules/core/tests/streams.spec.js | 34 ++-- .../server/modules/core/tests/users.spec.js | 84 +++++----- .../modules/core/tests/usersAdmin.spec.js | 30 ++-- packages/server/modules/fileuploads/index.js | 24 +-- .../fileuploads/services/fileuploads.js | 26 ++-- packages/server/modules/index.js | 16 +- packages/server/modules/previews/index.js | 34 ++-- packages/server/modules/previews/ogImage.js | 12 +- .../modules/previews/services/previews.js | 6 +- packages/server/modules/pwdreset/index.js | 2 +- .../server/modules/pwdreset/rest/index.js | 18 +-- .../modules/pwdreset/tests/pwdrest.spec.js | 4 +- .../server/modules/serverinvites/index.js | 4 +- .../modules/serverinvites/services/index.js | 22 +-- .../serverinvites/tests/serverInvites.spec.js | 36 ++--- packages/server/modules/shared/index.js | 18 +-- packages/server/modules/stats/index.js | 2 +- .../server/modules/stats/tests/stats.spec.js | 32 ++-- .../webhooks/graph/resolvers/webhooks.js | 20 +-- .../modules/webhooks/services/webhooks.js | 28 ++-- .../modules/webhooks/tests/webhooks.spec.js | 32 ++-- .../server/scripts/duplicateUserMigration.js | 8 +- packages/server/scripts/seedUsers.js | 2 +- packages/server/test/helpers.js | 16 +- .../viewer/src/modules/FilteringManager.js | 52 +++---- .../viewer/src/modules/InteractionHandler.js | 62 ++++---- .../viewer/src/modules/SceneObjectManager.js | 36 ++--- packages/viewer/src/modules/SceneObjects.js | 88 +++++------ packages/viewer/src/modules/SectionBox.js | 42 ++--- .../viewer/src/modules/SelectionHelper.js | 16 +- packages/viewer/src/modules/Viewer.js | 14 +- .../viewer/src/modules/ViewerObjectLoader.js | 8 +- .../src/modules/context/CameraHanlder.js | 16 +- .../viewer/src/modules/converter/Converter.js | 140 ++++++++--------- .../converter/MeshTriangulationHelper.js | 18 +-- packages/viewer/webpack.config.example.js | 4 +- packages/viewer/webpack.config.js | 4 +- packages/webhook-service/src/main.js | 18 +-- packages/webhook-service/src/webhookCaller.js | 28 ++-- 195 files changed, 1810 insertions(+), 1808 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 36b2a732c..0e85687ae 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,7 +16,9 @@ const config = { ], 'no-var': 'error', 'no-alert': 'error', - eqeqeq: 'error' + eqeqeq: 'error', + 'prefer-const': 'warn', + 'object-shorthand': 'warn' }, ignorePatterns: ['node_modules', 'dist', 'public'] } diff --git a/packages/fileimport-service/ifc/api.js b/packages/fileimport-service/ifc/api.js index ab2cf5a1e..2263cd843 100644 --- a/packages/fileimport-service/ifc/api.js +++ b/packages/fileimport-service/ifc/api.js @@ -31,14 +31,14 @@ module.exports = class ServerAPI { } async createObject(streamId, object) { - let insertionObject = this.prepInsertionObject(streamId, object) + const insertionObject = this.prepInsertionObject(streamId, object) - let closures = [] - let totalChildrenCountByDepth = {} + const closures = [] + const totalChildrenCountByDepth = {} if (object.__closure !== null) { for (const prop in object.__closure) { closures.push({ - streamId: streamId, + streamId, parent: insertionObject.id, child: prop, minDepth: object.__closure[prop] @@ -58,11 +58,11 @@ module.exports = class ServerAPI { totalChildrenCountByDepth ) - let q1 = Objects().insert(insertionObject).toString() + ' on conflict do nothing' + const q1 = Objects().insert(insertionObject).toString() + ' on conflict do nothing' await knex.raw(q1) if (closures.length > 0) { - let q2 = `${Closures().insert(closures).toString()} on conflict do nothing` + const q2 = `${Closures().insert(closures).toString()} on conflict do nothing` await knex.raw(q2) } @@ -77,7 +77,7 @@ module.exports = class ServerAPI { obj.id = obj.id || crypto.createHash('md5').update(JSON.stringify(obj)).digest('hex') // generate a hash if none is present - let stringifiedObj = JSON.stringify(obj) + const stringifiedObj = JSON.stringify(obj) if (stringifiedObj.length > MAX_OBJECT_SIZE) { throw new Error( `Object too large (${stringifiedObj.length} > ${MAX_OBJECT_SIZE})` @@ -86,23 +86,23 @@ module.exports = class ServerAPI { return { data: stringifiedObj, // stored in jsonb column - streamId: streamId, + streamId, id: obj.id, speckleType: obj.speckleType } } async getBranchByNameAndStreamId({ streamId, name }) { - let query = Branches() + const query = Branches() .select('*') - .where({ streamId: streamId }) + .where({ streamId }) .andWhere(knex.raw('LOWER(name) = ?', [name])) .first() return await query } async createBranch({ name, description, streamId, authorId }) { - let branch = {} + const branch = {} branch.id = crs({ length: 10 }) branch.streamId = streamId branch.authorId = authorId @@ -118,28 +118,28 @@ module.exports = class ServerAPI { } async createBareToken() { - let tokenId = crs({ length: 10 }) - let tokenString = crs({ length: 32 }) - let tokenHash = await bcrypt.hash(tokenString, 10) - let lastChars = tokenString.slice(tokenString.length - 6, tokenString.length) + const tokenId = crs({ length: 10 }) + const tokenString = crs({ length: 32 }) + const tokenHash = await bcrypt.hash(tokenString, 10) + const lastChars = tokenString.slice(tokenString.length - 6, tokenString.length) return { tokenId, tokenString, tokenHash, lastChars } } async createToken({ userId, name, scopes, lifespan }) { - let { tokenId, tokenString, tokenHash, lastChars } = await this.createBareToken() + const { tokenId, tokenString, tokenHash, lastChars } = await this.createBareToken() if (scopes.length === 0) throw new Error('No scopes provided') - let token = { + const token = { id: tokenId, tokenDigest: tokenHash, - lastChars: lastChars, + lastChars, owner: userId, - name: name, - lifespan: lifespan + name, + lifespan } - let tokenScopes = scopes.map((scope) => ({ tokenId: tokenId, scopeName: scope })) + const tokenScopes = scopes.map((scope) => ({ tokenId, scopeName: scope })) await ApiTokens().insert(token) await TokenScopes().insert(tokenScopes) @@ -148,7 +148,7 @@ module.exports = class ServerAPI { } async revokeTokenById(tokenId) { - let delCount = await ApiTokens() + const delCount = await ApiTokens() .where({ id: tokenId.slice(0, 10) }) .del() diff --git a/packages/fileimport-service/ifc/import_file.js b/packages/fileimport-service/ifc/import_file.js index 2c923d715..43741d5ec 100644 --- a/packages/fileimport-service/ifc/import_file.js +++ b/packages/fileimport-service/ifc/import_file.js @@ -5,18 +5,18 @@ const TMP_RESULTS_PATH = '/tmp/import_result.json' const { parseAndCreateCommit } = require('./index') async function main() { - let cmdArgs = process.argv.slice(2) + const cmdArgs = process.argv.slice(2) - let [filePath, userId, streamId, branchName, commitMessage] = cmdArgs + const [filePath, userId, streamId, branchName, commitMessage] = cmdArgs console.log('ARGV: ', filePath, userId, streamId, branchName, commitMessage) const data = fs.readFileSync(filePath) - let ifcInput = { + const ifcInput = { data, - streamId: streamId, - userId: userId, + streamId, + userId, message: commitMessage || 'Imported file' } if (branchName) ifcInput.branchName = branchName @@ -27,7 +27,7 @@ async function main() { } try { - let commitId = await parseAndCreateCommit(ifcInput) + const commitId = await parseAndCreateCommit(ifcInput) output = { success: true, commitId diff --git a/packages/fileimport-service/ifc/index.js b/packages/fileimport-service/ifc/index.js index 1639f19fd..cb4a4dfa5 100644 --- a/packages/fileimport-service/ifc/index.js +++ b/packages/fileimport-service/ifc/index.js @@ -14,32 +14,32 @@ async function parseAndCreateCommit({ const { id, tCount } = await myParser.parse(data) - let commit = { - streamId: streamId, - branchName: branchName, + const commit = { + streamId, + branchName, objectId: id, - message: message, + message, sourceApplication: 'IFC', totalChildrenCount: tCount } - let branch = await serverApi.getBranchByNameAndStreamId({ - streamId: streamId, + const branch = await serverApi.getBranchByNameAndStreamId({ + streamId, name: branchName }) if (!branch) { await serverApi.createBranch({ name: branchName, - streamId: streamId, + streamId, description: branchName === 'uploads' ? 'File upload branch' : null, authorId: userId }) } - let userToken = process.env.USER_TOKEN + const userToken = process.env.USER_TOKEN - let serverBaseUrl = process.env.SPECKLE_SERVER_URL || 'http://localhost:3000' + const serverBaseUrl = process.env.SPECKLE_SERVER_URL || 'http://localhost:3000' const response = await fetch(serverBaseUrl + '/graphql', { method: 'POST', headers: { @@ -55,7 +55,7 @@ async function parseAndCreateCommit({ }) }) - let json = await response.json() + const json = await response.json() console.log(json) return json.data.commitCreate diff --git a/packages/fileimport-service/ifc/parser.js b/packages/fileimport-service/ifc/parser.js index 6a4cd76c0..eafad25b2 100644 --- a/packages/fileimport-service/ifc/parser.js +++ b/packages/fileimport-service/ifc/parser.js @@ -34,7 +34,7 @@ module.exports = class IFCParser { await this.traverse(this.project, true, 0) - let id = await this.serverApi.saveObject(this.project) + const id = await this.serverApi.saveObject(this.project) return { id, tCount: Object.keys(this.project.__closure).length } } @@ -47,11 +47,11 @@ module.exports = class IFCParser { this.productGeo[prodId] = [] for (let j = 0; j < mesh.geometries.size(); j++) { - let placedGeom = mesh.geometries.get(j) - let geom = this.api.GetGeometry(this.modelId, placedGeom.geometryExpressID) + const placedGeom = mesh.geometries.get(j) + const geom = this.api.GetGeometry(this.modelId, placedGeom.geometryExpressID) - let matrix = placedGeom.flatTransformation - let raw = { + const matrix = placedGeom.flatTransformation + const raw = { color: geom.color, // NOTE: material: x, y, z = rgb, w = opacity vertices: this.api.GetVertexArray( geom.GetVertexData(), @@ -63,7 +63,7 @@ module.exports = class IFCParser { const { vertices } = this.extractVertexData(raw.vertices) for (let k = 0; k < vertices.length; k += 3) { - let x = vertices[k], + const x = vertices[k], y = vertices[k + 1], z = vertices[k + 2] vertices[k] = matrix[0] * x + matrix[4] * y + matrix[8] * z + matrix[12] @@ -73,14 +73,14 @@ module.exports = class IFCParser { } // Since all faces are triangles, we must add a `0` before each group of 3. - let spcklFaces = [] + const spcklFaces = [] for (let i = 0; i < raw.indices.length; i++) { if (i % 3 === 0) spcklFaces.push(0) spcklFaces.push(raw.indices[i]) } // Create a propper Speckle Mesh - let spcklMesh = { + const spcklMesh = { speckle_type: 'Objects.Geometry.Mesh', units: 'm', volume: 0, @@ -92,8 +92,8 @@ module.exports = class IFCParser { : null } - let id = await this.serverApi.saveObject(spcklMesh) - let ref = { speckle_type: 'reference', referencedId: id } + const id = await this.serverApi.saveObject(spcklMesh) + const ref = { speckle_type: 'reference', referencedId: id } this.productGeo[prodId].push(ref) } } @@ -134,7 +134,7 @@ module.exports = class IFCParser { // console.log( `Traversing element ${element.expressID}; Recurse: ${recursive}; Stack ${depth}` ) // Traverse all key/value pairs first. - for (let key of Object.keys(element)) { + for (const key of Object.keys(element)) { element[key] = await this.traverse( element[key], recursive, @@ -267,8 +267,8 @@ module.exports = class IFCParser { element.spatialChildren || element.children ) { - let id = await this.serverApi.saveObject(element) - let ref = { speckle_type: 'reference', referencedId: id } + const id = await this.serverApi.saveObject(element) + const ref = { speckle_type: 'reference', referencedId: id } this.cache[element.expressID.toString()] = ref this.closureCache[element.expressID.toString()] = element.__closure return ref @@ -290,9 +290,9 @@ module.exports = class IFCParser { ) { if (element[key]) { if (!isSpecial) element[newKey] = [] - let childCount = {} - for (let child of element[key]) { - let res = await this.traverse(child, recursive, depth + 1, specialTypes) + const childCount = {} + for (const child of element[key]) { + const res = await this.traverse(child, recursive, depth + 1, specialTypes) if (res.referencedId) { if (isSpecial) { let name = child[isSpecial.key] @@ -306,7 +306,7 @@ module.exports = class IFCParser { // adds to parent (this element) the child's closure tree. if (this.closureCache[child.expressID.toString()]) { - for (let key of Object.keys( + for (const key of Object.keys( this.closureCache[child.expressID.toString()] )) { element.__closure[key] = @@ -358,7 +358,7 @@ module.exports = class IFCParser { } colorToMaterial(color) { - let intColor = + const intColor = (color.w << 24) + ((color.x * 255) << 16) + ((color.y * 255) << 8) + color.z * 255 return { diff --git a/packages/fileimport-service/src/daemon.js b/packages/fileimport-service/src/daemon.js index 4b5e471a6..304c74016 100644 --- a/packages/fileimport-service/src/daemon.js +++ b/packages/fileimport-service/src/daemon.js @@ -16,7 +16,7 @@ const TMP_RESULTS_PATH = '/tmp/import_result.json' let shouldExit = false async function startTask() { - let { rows } = await knex.raw(` + const { rows } = await knex.raw(` UPDATE file_uploads SET "convertedStatus" = 1, @@ -39,7 +39,7 @@ async function doTask(task) { try { console.log('Doing task ', task) - let { rows } = await knex.raw( + const { rows } = await knex.raw( ` SELECT id as "fileId", "streamId", "branchName", "userId", "fileName", "fileType" @@ -49,20 +49,20 @@ async function doTask(task) { `, [task.id] ) - let info = rows[0] + const info = rows[0] if (!info) { throw new Error('Internal error: DB inconsistent') } - let upstreamFileStream = await getFileStream({ fileId: info.fileId }) - let diskFileStream = fs.createWriteStream(TMP_FILE_PATH) + const upstreamFileStream = await getFileStream({ fileId: info.fileId }) + const diskFileStream = fs.createWriteStream(TMP_FILE_PATH) upstreamFileStream.pipe(diskFileStream) await new Promise((fulfill) => diskFileStream.on('finish', fulfill)) serverApi = new ServerAPI({ streamId: info.streamId }) - let { token } = await serverApi.createToken({ + const { token } = await serverApi.createToken({ userId: info.userId, name: 'temp upload token', scopes: ['streams:write', 'streams:read'], @@ -86,11 +86,11 @@ async function doTask(task) { 10 * 60 * 1000 ) - let output = JSON.parse(fs.readFileSync(TMP_RESULTS_PATH)) + const output = JSON.parse(fs.readFileSync(TMP_RESULTS_PATH)) if (!output.success) throw new Error(output.error) - let commitId = output.commitId + const commitId = output.commitId await knex.raw( ` @@ -142,7 +142,7 @@ function runProcessWithTimeout(cmd, cmdArgs, extraEnv, timeoutMs) { let timedOut = false - let timeout = setTimeout(() => { + const timeout = setTimeout(() => { console.log('Process timeout. Killing process...') timedOut = true @@ -172,7 +172,7 @@ async function tick() { } try { - let task = await startTask() + const task = await startTask() fs.writeFile(HEALTHCHECK_FILE_PATH, '' + Date.now(), () => {}) diff --git a/packages/fileimport-service/src/filesApi.js b/packages/fileimport-service/src/filesApi.js index c69dbbc52..24667cec0 100644 --- a/packages/fileimport-service/src/filesApi.js +++ b/packages/fileimport-service/src/filesApi.js @@ -17,19 +17,19 @@ function getS3Config() { module.exports = { async getFileStream({ fileId }) { const s3 = new S3(getS3Config()) - let Bucket = process.env.S3_BUCKET - let Key = `files/${fileId}` + const Bucket = process.env.S3_BUCKET + const Key = `files/${fileId}` - let fileStream = s3.getObject({ Key, Bucket }).createReadStream() + const fileStream = s3.getObject({ Key, Bucket }).createReadStream() return fileStream }, async readFile({ fileId }) { const s3 = new S3(getS3Config()) - let Bucket = process.env.S3_BUCKET - let Key = `files/${fileId}` + const Bucket = process.env.S3_BUCKET + const Key = `files/${fileId}` - let s3Data = await s3.getObject({ Key, Bucket }).promise() + const s3Data = await s3.getObject({ Key, Bucket }).promise() return s3Data.Body } diff --git a/packages/frontend/src/embed/EmbedApp.vue b/packages/frontend/src/embed/EmbedApp.vue index 4f5432249..843c1b90a 100644 --- a/packages/frontend/src/embed/EmbedApp.vue +++ b/packages/frontend/src/embed/EmbedApp.vue @@ -5,7 +5,7 @@ export default { components: {}, mounted() { - let mixpanelId = this.$mixpanelId() + const mixpanelId = this.$mixpanelId() this.$mixpanel.register({ // Unfortunately we can't replace this to camelCase, because that will break metrics // eslint-disable-next-line camelcase diff --git a/packages/frontend/src/embed/EmbedViewer.vue b/packages/frontend/src/embed/EmbedViewer.vue index bce329e45..b97b2448b 100644 --- a/packages/frontend/src/embed/EmbedViewer.vue +++ b/packages/frontend/src/embed/EmbedViewer.vue @@ -73,7 +73,7 @@ export default { SpeckleViewer }, filters: { - truncate: function (str, n = 20) { + truncate (str, n = 20) { return str.length > n ? str.substr(0, n - 3) + '...' : str } }, @@ -118,16 +118,16 @@ export default { return `${window.location.protocol}//${window.location.host}/streams/${this.input.stream}/objects/${this.objectId}` }, goToServerUrl() { - let stream = this.input.stream - let base = `${window.location.origin}/streams/${stream}/` + const stream = this.input.stream + const base = `${window.location.origin}/streams/${stream}/` - let commit = this.input.commit + const commit = this.input.commit if (commit) return base + `commits/${commit}` - let object = this.objectId + const object = this.objectId if (object) return base + `objects/${object}` - let branch = this.input.branch + const branch = this.input.branch if (branch) return base + `branches/${encodeURI(branch)}` return base @@ -143,7 +143,7 @@ export default { }, async beforeMount() { try { - let serverInfoResponse = await getServerInfo() + const serverInfoResponse = await getServerInfo() this.serverInfo = serverInfoResponse.data.serverInfo } catch (e) { this.error = e.message @@ -152,9 +152,9 @@ export default { if (this.displayType === 'commit') { try { - let res = await getCommit(this.input.stream, this.input.commit) - let data = res.data - let latestCommit = data.stream.commit + const res = await getCommit(this.input.stream, this.input.commit) + const data = res.data + const latestCommit = data.stream.commit if (this.input.object === undefined) this.objectId = latestCommit.referencedObject this.specificCommit = data.stream @@ -164,9 +164,9 @@ export default { } } else { try { - let res = await getLatestBranchCommit(this.input.stream, this.input.branch) - let data = res.data - let latestCommit = + const res = await getLatestBranchCommit(this.input.stream, this.input.branch) + const data = res.data + const latestCommit = data.stream.branch.commits.items[0] || data.stream.branch.commit if (!latestCommit) { this.error = 'No commit for this branch' @@ -200,7 +200,7 @@ export default { }, async getPreviewImage(angle) { angle = angle || 0 - let previewUrl = this.objectUrl.replace('streams', 'preview') + '/' + angle + const previewUrl = this.objectUrl.replace('streams', 'preview') + '/' + angle let token = undefined try { token = localStorage.getItem('AuthToken') diff --git a/packages/frontend/src/embed/embedApp.js b/packages/frontend/src/embed/embedApp.js index 693d8a707..8be17847b 100644 --- a/packages/frontend/src/embed/embedApp.js +++ b/packages/frontend/src/embed/embedApp.js @@ -8,7 +8,7 @@ import VueMatomo from 'vue-matomo' Vue.use(VueMatomo, { host: 'https://speckle.matomo.cloud', siteId: 4, - router: router + router }) import VueMixpanel from 'vue-mixpanel' diff --git a/packages/frontend/src/embed/embedVuetify.js b/packages/frontend/src/embed/embedVuetify.js index 525f633f4..29f2096b3 100644 --- a/packages/frontend/src/embed/embedVuetify.js +++ b/packages/frontend/src/embed/embedVuetify.js @@ -4,7 +4,7 @@ import Vuetify from 'vuetify/lib' Vue.use(Vuetify) -let darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') +const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') export default new Vuetify({ icons: { iconfont: 'mdi' diff --git a/packages/frontend/src/embed/speckleUtils.js b/packages/frontend/src/embed/speckleUtils.js index f1637aaad..224a0c6b3 100644 --- a/packages/frontend/src/embed/speckleUtils.js +++ b/packages/frontend/src/embed/speckleUtils.js @@ -4,19 +4,19 @@ import { streamCommitQuery } from './speckleQueries.js' -export let SERVER_URL = window.location.origin +export const SERVER_URL = window.location.origin // Unauthorised fetch, without token to prevent use of localStorage or exposing elsewhere. export async function speckleFetch(query, variables) { try { - let res = await fetch(`${SERVER_URL}/graphql`, { + const res = await fetch(`${SERVER_URL}/graphql`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ - query: query, - variables: variables + query, + variables }) }) return await res.json() diff --git a/packages/frontend/src/main/app.js b/packages/frontend/src/main/app.js index 646def735..69779ea33 100644 --- a/packages/frontend/src/main/app.js +++ b/packages/frontend/src/main/app.js @@ -40,7 +40,7 @@ import VueMatomo from 'vue-matomo' Vue.use(VueMatomo, { host: 'https://speckle.matomo.cloud', siteId: 4, - router: router, + router, userId: localStorage.getItem('suuid') }) diff --git a/packages/frontend/src/main/components/activity/ListItemActivity.vue b/packages/frontend/src/main/components/activity/ListItemActivity.vue index 538a8ca0e..687f10e6e 100644 --- a/packages/frontend/src/main/components/activity/ListItemActivity.vue +++ b/packages/frontend/src/main/components/activity/ListItemActivity.vue @@ -571,7 +571,7 @@ export default { activity.info.new[key] + '

' if (key === 'description') { - let oldDesc = activity.info.old[key] ? activity.info.old[key] : 'empty' + const oldDesc = activity.info.old[key] ? activity.info.old[key] : 'empty' changes += '

📋 Description changed from ' + this.truncate(oldDesc) + @@ -580,7 +580,7 @@ export default { '

' } if (key === 'message') { - let oldDesc = activity.info.old[key] ? activity.info.old[key] : 'empty' + const oldDesc = activity.info.old[key] ? activity.info.old[key] : 'empty' changes += '

📋 Message changed from ' + this.truncate(oldDesc) + diff --git a/packages/frontend/src/main/components/admin/ActivityCard.vue b/packages/frontend/src/main/components/admin/ActivityCard.vue index 804252524..761cc5cca 100644 --- a/packages/frontend/src/main/components/admin/ActivityCard.vue +++ b/packages/frontend/src/main/components/admin/ActivityCard.vue @@ -55,7 +55,7 @@ export default { dataLabels: { enabled: true, position: 'bottom', - formatter: function (val) { + formatter (val) { return formatNumber(val) }, offsetY: -25, @@ -136,7 +136,7 @@ export default { } `, update(data) { - let stats = data.serverStats + const stats = data.serverStats delete stats.__typename return stats } @@ -145,15 +145,15 @@ export default { computed: { graphSeries() { let result = [] - let months = this.past12Months() + const months = this.past12Months() if (this.serverStats) { result = Object.keys(this.serverStats).map((key) => { - let category = this.serverStats[key] - let processed = [] + const category = this.serverStats[key] + const processed = [] months?.forEach((month) => { let totalCount = 0 category.forEach((value) => { - let date = new Date(value.created_month) + const date = new Date(value.created_month) if (this.isSameMonth(month, date)) { totalCount = value.count } @@ -171,10 +171,10 @@ export default { return word[0].toUpperCase() + word.slice(1).toLowerCase() }, past12Months() { - let now = new Date(Date.now()) - let dates = [] + const now = new Date(Date.now()) + const dates = [] for (let i = 0; i < 12; i++) { - let d = new Date(now.getFullYear(), now.getMonth() - i, 2) + const d = new Date(now.getFullYear(), now.getMonth() - i, 2) dates.push(d) } return dates diff --git a/packages/frontend/src/main/components/admin/AnimatedNumber.vue b/packages/frontend/src/main/components/admin/AnimatedNumber.vue index 8b6f857c8..ef1cc3410 100644 --- a/packages/frontend/src/main/components/admin/AnimatedNumber.vue +++ b/packages/frontend/src/main/components/admin/AnimatedNumber.vue @@ -41,7 +41,7 @@ export default { }, methods: { tween(startValue, endValue) { - let vm = this + const vm = this function animate() { if (TWEEN.update()) { requestAnimationFrame(animate) diff --git a/packages/frontend/src/main/components/admin/GeneralInfoCard.vue b/packages/frontend/src/main/components/admin/GeneralInfoCard.vue index e9b7d744e..3ccf74493 100644 --- a/packages/frontend/src/main/components/admin/GeneralInfoCard.vue +++ b/packages/frontend/src/main/components/admin/GeneralInfoCard.vue @@ -50,7 +50,7 @@ export default { } `, update(data) { - let stats = data.serverStats + const stats = data.serverStats return { users: stats.totalUserCount, streams: stats.totalStreamCount, diff --git a/packages/frontend/src/main/components/admin/VersionInfoCard.vue b/packages/frontend/src/main/components/admin/VersionInfoCard.vue index d72a2de96..9c9a845fa 100644 --- a/packages/frontend/src/main/components/admin/VersionInfoCard.vue +++ b/packages/frontend/src/main/components/admin/VersionInfoCard.vue @@ -79,7 +79,7 @@ export default { 'https://api.github.com/repos/specklesystems/speckle-server/releases/latest' ) .then(async (res) => { - let x = await res.json() + const x = await res.json() return x.tag_name }) .catch((err) => { diff --git a/packages/frontend/src/main/components/auth/AuthStrategies.vue b/packages/frontend/src/main/components/auth/AuthStrategies.vue index edf1a6736..bce4bc688 100644 --- a/packages/frontend/src/main/components/auth/AuthStrategies.vue +++ b/packages/frontend/src/main/components/auth/AuthStrategies.vue @@ -56,8 +56,8 @@ export default { } }, mounted() { - let urlParams = new URLSearchParams(window.location.search) - let inviteId = urlParams.get('inviteId') + const urlParams = new URLSearchParams(window.location.search) + const inviteId = urlParams.get('inviteId') this.inviteId = inviteId }, methods: { diff --git a/packages/frontend/src/main/components/comments/CommentListItem.vue b/packages/frontend/src/main/components/comments/CommentListItem.vue index 386c6c637..4e6554a89 100644 --- a/packages/frontend/src/main/components/comments/CommentListItem.vue +++ b/packages/frontend/src/main/components/comments/CommentListItem.vue @@ -217,8 +217,8 @@ export default { }, link() { if (!this.commentDetails) return - let res = this.commentDetails.resources.filter((r) => r.resourceType !== 'stream') - let first = res.shift() + const res = this.commentDetails.resources.filter((r) => r.resourceType !== 'stream') + const first = res.shift() let route = `/streams/${this.$route.params.streamId}/${first.resourceType}s/${first.resourceId}?cId=${this.commentDetails.id}` if (res.length !== 0) { route += `&overlay=${res.map((r) => r.resourceId).join(',')}` diff --git a/packages/frontend/src/main/components/comments/CommentThreadViewer.vue b/packages/frontend/src/main/components/comments/CommentThreadViewer.vue index 2a8de395d..b2316e96d 100644 --- a/packages/frontend/src/main/components/comments/CommentThreadViewer.vue +++ b/packages/frontend/src/main/components/comments/CommentThreadViewer.vue @@ -263,15 +263,15 @@ export default { this.$emit('deleted', this.comment) } if (data.commentThreadActivity.eventType === 'reply-typing-status') { - let state = data.commentThreadActivity.data + const state = data.commentThreadActivity.data if (state.userId === this.$userId()) return - let existingUser = this.whoIsTyping.find((u) => u.userId === state.userId) + const existingUser = this.whoIsTyping.find((u) => u.userId === state.userId) if (state.isTyping && existingUser) { existingUser.lastSeenAt = Date.now() return } if (!state.isTyping) { - let indx = this.whoIsTyping.findIndex((u) => u.userId === state.userId) + const indx = this.whoIsTyping.findIndex((u) => u.userId === state.userId) if (indx !== -1) this.whoIsTyping.splice(indx, 1) return } @@ -284,7 +284,7 @@ export default { } } }, - data: function () { + data () { return { replyText: null, localReplies: [], @@ -307,27 +307,27 @@ export default { return false }, thread() { - let sorted = [...this.localReplies].sort( + const sorted = [...this.localReplies].sort( (a, b) => new Date(a.createdAt) - new Date(b.createdAt) ) return [this.comment, ...sorted] }, isComplete() { - let res = [this.$route.params.resourceId] + const res = [this.$route.params.resourceId] if (this.$route.query.overlay) res.push(...this.$route.query.overlay.split(',')) - let commRes = this.comment.resources + const commRes = this.comment.resources .filter((r) => r.resourceType !== 'stream') .map((r) => r.resourceId) - for (let r of commRes) { + for (const r of commRes) { if (res.indexOf(r) === -1) return false } return true }, link() { if (!this.comment) return - let res = this.comment.resources.filter((r) => r.resourceType !== 'stream') - let first = res.shift() + const res = this.comment.resources.filter((r) => r.resourceType !== 'stream') + const first = res.shift() let route = `/streams/${this.$route.params.streamId}/${first.resourceType}s/${first.resourceId}?cId=${this.comment.id}` if (res.length !== 0) { route += `&overlay=${res.map((r) => r.resourceId).join(',')}` @@ -373,7 +373,7 @@ export default { await this.sendTypingUpdate(false) }) setInterval(() => { - let now = Date.now() + const now = Date.now() for (let i = this.whoIsTyping.length - 1; i >= 0; i--) { if (Math.abs(now - this.whoIsTyping[i].lastSeenAt) > 10000) this.whoIsTyping.splice(i, 1) @@ -415,8 +415,8 @@ export default { }) }, copyCommentLinkToClip() { - let res = this.comment.resources.filter((r) => r.resourceType !== 'stream') - let first = res.shift() + const res = this.comment.resources.filter((r) => r.resourceType !== 'stream') + const first = res.shift() let route = `${window.origin}/streams/${this.$route.params.streamId}/${first.resourceType}s/${first.resourceId}?cId=${this.comment.id}` if (res.length !== 0) { route += `&overlay=${res.map((r) => r.resourceId).join(',')}` @@ -428,23 +428,23 @@ export default { }) }, addMissingResources() { - let res = [this.$route.params.resourceId] + const res = [this.$route.params.resourceId] if (this.$route.query.overlay) res.push(...this.$route.query.overlay.split(',')) - let commRes = this.comment.resources + const commRes = this.comment.resources .filter((r) => r.resourceType !== 'stream') .map((r) => r.resourceId) - let missing = [] - for (let r of commRes) { + const missing = [] + for (const r of commRes) { if (res.indexOf(r) === -1) missing.push(r) } this.$emit('add-resources', missing) }, showTime(index) { if (index === 0) return true - let curr = new Date(this.thread[index].createdAt) - let prev = new Date(this.thread[index - 1].createdAt) - let delta = Math.abs(prev - curr) + const curr = new Date(this.thread[index].createdAt) + const prev = new Date(this.thread[index - 1].createdAt) + const delta = Math.abs(prev - curr) return delta > 450000 }, async addReply() { @@ -455,7 +455,7 @@ export default { return } - let replyInput = { + const replyInput = { streamId: this.$route.params.streamId, parentComment: this.comment.id, text: this.replyText diff --git a/packages/frontend/src/main/components/common/CommitReceivedReceipts.vue b/packages/frontend/src/main/components/common/CommitReceivedReceipts.vue index 4835d3aba..2866d1257 100644 --- a/packages/frontend/src/main/components/common/CommitReceivedReceipts.vue +++ b/packages/frontend/src/main/components/common/CommitReceivedReceipts.vue @@ -138,7 +138,7 @@ export default { receivedUsersUnique() { if (!(this.activity && this.activity.items && this.activity.items.length > 0)) return [] - let set = new Set() + const set = new Set() this.activity.items.forEach((item) => set.add(item.userId)) return Array.from(set) } diff --git a/packages/frontend/src/main/components/common/NoDataPlaceholder.vue b/packages/frontend/src/main/components/common/NoDataPlaceholder.vue index a913f5233..a52486004 100644 --- a/packages/frontend/src/main/components/common/NoDataPlaceholder.vue +++ b/packages/frontend/src/main/components/common/NoDataPlaceholder.vue @@ -190,9 +190,9 @@ export default { type: 'action' }) - let url = `https://releases.speckle.dev/manager/SpeckleManager Setup.exe` + const url = `https://releases.speckle.dev/manager/SpeckleManager Setup.exe` - let a = document.createElement('a') + const a = document.createElement('a') document.body.appendChild(a) a.style = 'display: none' a.href = url diff --git a/packages/frontend/src/main/components/common/SearchBar.vue b/packages/frontend/src/main/components/common/SearchBar.vue index c43872a14..4ce7caa30 100644 --- a/packages/frontend/src/main/components/common/SearchBar.vue +++ b/packages/frontend/src/main/components/common/SearchBar.vue @@ -122,7 +122,7 @@ export default { }, watch: { selectedSearchResult(val) { - let myStream = this.streams.items.find((s) => s.id === val.id) + const myStream = this.streams.items.find((s) => s.id === val.id) this.$emit('select', myStream) this.streams.items = [] diff --git a/packages/frontend/src/main/components/common/SourceAppAvatar.vue b/packages/frontend/src/main/components/common/SourceAppAvatar.vue index bc2ea6883..1b9406401 100644 --- a/packages/frontend/src/main/components/common/SourceAppAvatar.vue +++ b/packages/frontend/src/main/components/common/SourceAppAvatar.vue @@ -22,7 +22,7 @@ export default { color() { if (!this.applicationName) return 'grey' - let appname = this.applicationName.toLowerCase() + const appname = this.applicationName.toLowerCase() if (appname.includes('dynamo')) return 'purple' if (appname.includes('revit')) return 'blue darken-3' @@ -42,7 +42,7 @@ export default { shortName() { if (!this.applicationName) return '?' - let appname = this.applicationName.toLowerCase() + const appname = this.applicationName.toLowerCase() if (appname.includes('dynamo')) return 'DYN' if (appname.includes('revit')) return 'RVT' diff --git a/packages/frontend/src/main/components/feed/FeedTimeline.vue b/packages/frontend/src/main/components/feed/FeedTimeline.vue index 4bb626be1..ac29db889 100644 --- a/packages/frontend/src/main/components/feed/FeedTimeline.vue +++ b/packages/frontend/src/main/components/feed/FeedTimeline.vue @@ -160,13 +160,13 @@ export default { methods: { groupSimilarActivities(data) { if (!data) return - let groupedTimeline = data.user.timeline.items.reduce(function (prev, curr) { + const groupedTimeline = data.user.timeline.items.reduce(function (prev, curr) { //first item if (!prev.length) { prev.push([curr]) return prev } - let test = prev[prev.length - 1][0] + const test = prev[prev.length - 1][0] let action = 'split' // split | combine | skip if (curr.actionType === test.actionType && curr.streamId === test.streamId) { if (curr.actionType.includes('stream_permissions')) { diff --git a/packages/frontend/src/main/components/stream/ListItemCommit.vue b/packages/frontend/src/main/components/stream/ListItemCommit.vue index 6c3111331..e48a5305b 100644 --- a/packages/frontend/src/main/components/stream/ListItemCommit.vue +++ b/packages/frontend/src/main/components/stream/ListItemCommit.vue @@ -142,8 +142,8 @@ export default { }, commitDate() { if (!this.commit) return null - let date = new Date(this.commit.createdAt) - let options = { year: 'numeric', month: 'long', day: 'numeric' } + const date = new Date(this.commit.createdAt) + const options = { year: 'numeric', month: 'long', day: 'numeric' } return date.toLocaleString(undefined, options) }, @@ -156,7 +156,7 @@ export default { receivedUsersUnique() { if (!(this.activity && this.activity.items && this.activity.items.length > 0)) return [] - let set = new Set() + const set = new Set() this.activity.items.forEach((item) => set.add(item.userId)) return Array.from(set) } diff --git a/packages/frontend/src/main/components/stream/StreamActivity.vue b/packages/frontend/src/main/components/stream/StreamActivity.vue index 7e48fdf63..9fb60a4e9 100644 --- a/packages/frontend/src/main/components/stream/StreamActivity.vue +++ b/packages/frontend/src/main/components/stream/StreamActivity.vue @@ -91,13 +91,13 @@ export default { }, methods: { groupSimilarActivities(data) { - let groupedActivity = data.stream.activity.items.reduce(function (prev, curr) { + const groupedActivity = data.stream.activity.items.reduce(function (prev, curr) { //first item if (!prev.length) { prev.push([curr]) return prev } - let test = prev[prev.length - 1][0] + const test = prev[prev.length - 1][0] let action = 'split' // split | combine | skip if (curr.actionType === test.actionType && curr.streamId === test.streamId) { if (curr.actionType.includes('stream_permissions')) { diff --git a/packages/frontend/src/main/components/stream/WebhookForm.vue b/packages/frontend/src/main/components/stream/WebhookForm.vue index 4794ca4bc..7283cae84 100644 --- a/packages/frontend/src/main/components/stream/WebhookForm.vue +++ b/packages/frontend/src/main/components/stream/WebhookForm.vue @@ -99,7 +99,7 @@ export default { } }, update(data) { - let webhook = data.stream.webhooks.items[0] + const webhook = data.stream.webhooks.items[0] this.secret = null if (webhook) ({ @@ -168,7 +168,7 @@ export default { this.$matomo && this.$matomo.trackPageView('stream/webhook/update') this.$mixpanel.track('Webhook Action', { type: 'action', name: 'update' }) - let params = { + const params = { id: this.webhook.id, streamId: this.streamId, url: this.url, @@ -185,7 +185,7 @@ export default { } `, variables: { - params: params + params } }) this.$emit('refetch-webhooks') diff --git a/packages/frontend/src/main/components/stream/globals/GlobalsBuilder.vue b/packages/frontend/src/main/components/stream/globals/GlobalsBuilder.vue index 172a30b69..48a441c60 100644 --- a/packages/frontend/src/main/components/stream/globals/GlobalsBuilder.vue +++ b/packages/frontend/src/main/components/stream/globals/GlobalsBuilder.vue @@ -182,7 +182,7 @@ export default { globalsCommit() { // eslint-disable-next-line vue/no-side-effects-in-computed-properties this.globalsAreValid = true - let base = this.globalsToBase(this.globalsArray) + const base = this.globalsToBase(this.globalsArray) return base } }, @@ -195,13 +195,13 @@ export default { async saveGlobals() { if (!this.$refs.form.validate()) return - let commitObject = this.globalsToBase(this.globalsArray) + const commitObject = this.globalsToBase(this.globalsArray) try { this.loading = true this.$matomo && this.$matomo.trackPageView('globals/save') this.$mixpanel.track('Globals Action', { type: 'action', name: 'update' }) - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation ObjectCreate($params: ObjectCreateInput!) { objectCreate(objectInput: $params) @@ -241,9 +241,9 @@ export default { }, nestedGlobals(data) { if (!data) return [] - let entries = Object.entries(data) - let arr = [] - for (let [key, val] of entries) { + const entries = Object.entries(data) + const arr = [] + for (const [key, val] of entries) { if (key.startsWith('__')) continue if (['totalChildrenCount', 'speckle_type', 'id'].includes(key)) continue @@ -281,13 +281,13 @@ export default { return arr }, globalsToBase(arr) { - let base = { + const base = { // eslint-disable-next-line camelcase speckle_type: 'Base', id: null } - for (let entry of arr) { + for (const entry of arr) { if (!entry.value && !entry.globals) continue if (entry.valid !== true) { @@ -324,20 +324,20 @@ export default { }) }, addProp(kwargs) { - let globals = this.getNestedGlobals(kwargs.path) + const globals = this.getNestedGlobals(kwargs.path) globals.splice(globals.length, 0, kwargs.field) }, removeProp(kwargs) { - let globals = this.getNestedGlobals(kwargs.path) + const globals = this.getNestedGlobals(kwargs.path) globals.splice(kwargs.index, 1) }, fieldToObject(kwargs) { - let globals = this.getNestedGlobals(kwargs.path) + const globals = this.getNestedGlobals(kwargs.path) globals.splice(kwargs.index, 1, kwargs.obj) }, objectToField(kwargs) { - let globals = this.getNestedGlobals(kwargs.path) + const globals = this.getNestedGlobals(kwargs.path) globals.splice(kwargs.index, 1, ...kwargs.fields) }, @@ -345,10 +345,10 @@ export default { let entry = this.globalsArray if (!path) return entry - let depth = path.length + const depth = path.length if (depth > 0) { - let id = path.shift() + const id = path.shift() entry = entry.find((e) => e.id === id) } diff --git a/packages/frontend/src/main/components/stream/globals/GlobalsEntry.vue b/packages/frontend/src/main/components/stream/globals/GlobalsEntry.vue index 96170f508..0ccf825de 100644 --- a/packages/frontend/src/main/components/stream/globals/GlobalsEntry.vue +++ b/packages/frontend/src/main/components/stream/globals/GlobalsEntry.vue @@ -178,13 +178,13 @@ export default { keys(index, entries) { return [ (v) => { - let result = !!v || 'Properties need to have a name!' + const result = !!v || 'Properties need to have a name!' entries[index].valid = result return result }, (v) => { - let filtered = entries.filter((_, i) => i !== index) - let result = + const filtered = entries.filter((_, i) => i !== index) + const result = filtered.findIndex((e) => e.key === v) === -1 || 'Each property name must be unique' if (entries[index].valid === true) entries[index].valid = result @@ -192,7 +192,7 @@ export default { }, (v) => { const re = /[./]/ - let result = + const result = !re.test(v) || 'The name cannot contain invalid characters: "." or "/"' if (entries[index].valid === true) entries[index].valid = result return result @@ -242,20 +242,20 @@ export default { bimAdjs[Math.floor(Math.random() * bimAdjs.length)] + ' ' + bimNouns[Math.floor(Math.random() * bimNouns.length)] - let field = { + const field = { key: `placeholder ${crs({ length: 6 })}`, type: 'field', value: randomPhrase, valid: true, id: crs({ length: 10 }) } - this.$emit('add-prop', { field: field, path: this.path }) + this.$emit('add-prop', { field, path: this.path }) }, emitRemoveAt(index) { - this.$emit('remove-prop', { path: this.path, index: index }) + this.$emit('remove-prop', { path: this.path, index }) }, emitFieldToObject(entry, index) { - let obj = { + const obj = { key: entry.key, type: 'object', id: entry.id, @@ -270,11 +270,11 @@ export default { } ] } - this.$emit('field-to-object', { obj: obj, path: this.path, index: index }) + this.$emit('field-to-object', { obj, path: this.path, index }) }, emitObjectToField(entry, index) { - let fields = entry.globals - this.$emit('object-to-field', { fields: fields, path: this.path, index: index }) + const fields = entry.globals + this.$emit('object-to-field', { fields, path: this.path, index }) } } } diff --git a/packages/frontend/src/main/components/stream/uploads/FileProcessingItem.vue b/packages/frontend/src/main/components/stream/uploads/FileProcessingItem.vue index 95fab60f7..4af0d569b 100644 --- a/packages/frontend/src/main/components/stream/uploads/FileProcessingItem.vue +++ b/packages/frontend/src/main/components/stream/uploads/FileProcessingItem.vue @@ -119,15 +119,15 @@ export default { }, methods: { async downloadOriginalFile() { - let res = await fetch(`/api/file/${this.fileId}`, { + const res = await fetch(`/api/file/${this.fileId}`, { headers: { Authorization: localStorage.getItem('AuthToken') } }) - let blob = await res.blob() - let file = window.URL.createObjectURL(blob) + const blob = await res.blob() + const file = window.URL.createObjectURL(blob) - let a = document.createElement('a') + const a = document.createElement('a') document.body.appendChild(a) a.style = 'display: none' a.href = file diff --git a/packages/frontend/src/main/components/stream/uploads/FileUploadItem.vue b/packages/frontend/src/main/components/stream/uploads/FileUploadItem.vue index 346fda6a9..775a0a0c2 100644 --- a/packages/frontend/src/main/components/stream/uploads/FileUploadItem.vue +++ b/packages/frontend/src/main/components/stream/uploads/FileUploadItem.vue @@ -58,11 +58,11 @@ export default { }), methods: { upload() { - let data = new FormData() + const data = new FormData() this.error = null data.append('file', this.file) - let request = new XMLHttpRequest() + const request = new XMLHttpRequest() request.open( 'POST', `/api/file/ifc/${this.$route.params.streamId}/${ diff --git a/packages/frontend/src/main/components/user/AppEditDialog.vue b/packages/frontend/src/main/components/user/AppEditDialog.vue index 93a5d62c0..f021c1736 100644 --- a/packages/frontend/src/main/components/user/AppEditDialog.vue +++ b/packages/frontend/src/main/components/user/AppEditDialog.vue @@ -169,7 +169,7 @@ export default { (v) => { try { // eslint-disable-next-line no-unused-vars - let x = new URL(v) + const x = new URL(v) return true } catch { return 'Url must be valid' @@ -187,8 +187,8 @@ export default { }, parsedScopes() { if (!this.scopes) return [] - let arr = [] - for (let s of this.scopes) { + const arr = [] + for (const s of this.scopes) { arr.push({ text: s.name, value: s.name }) arr.push({ header: s.description }) arr.push({ divider: true }) @@ -223,7 +223,7 @@ export default { this.$mixpanel.track('App Action', { type: 'action', name: 'update' }) this.$matomo && this.$matomo.trackPageView('user/app/update') try { - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation ($app: AppUpdateInput!) { appUpdate(app: $app) diff --git a/packages/frontend/src/main/components/user/AppNewDialog.vue b/packages/frontend/src/main/components/user/AppNewDialog.vue index 9119b5bff..5f98c3e2a 100644 --- a/packages/frontend/src/main/components/user/AppNewDialog.vue +++ b/packages/frontend/src/main/components/user/AppNewDialog.vue @@ -137,7 +137,7 @@ export default { (v) => { try { // eslint-disable-next-line no-unused-vars - let x = new URL(v) + const x = new URL(v) return true } catch { return 'Url must be valid' @@ -155,8 +155,8 @@ export default { }, parsedScopes() { if (!this.scopes) return [] - let arr = [] - for (let s of this.scopes) { + const arr = [] + for (const s of this.scopes) { arr.push({ text: s.name, value: s.name }) arr.push({ header: s.description }) arr.push({ divider: true }) @@ -178,7 +178,7 @@ export default { this.$mixpanel.track('App Action', { type: 'action', name: 'create' }) try { - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation ($app: AppCreateInput!) { appCreate(app: $app) diff --git a/packages/frontend/src/main/components/user/ListItemStream.vue b/packages/frontend/src/main/components/user/ListItemStream.vue index 40518efd0..31e47683c 100644 --- a/packages/frontend/src/main/components/user/ListItemStream.vue +++ b/packages/frontend/src/main/components/user/ListItemStream.vue @@ -55,7 +55,7 @@ export default { props: { stream: { type: Object, - default: function () { + default () { return {} } } diff --git a/packages/frontend/src/main/components/user/ListItemUserApp.vue b/packages/frontend/src/main/components/user/ListItemUserApp.vue index fcc25b75a..0f65ee3fe 100644 --- a/packages/frontend/src/main/components/user/ListItemUserApp.vue +++ b/packages/frontend/src/main/components/user/ListItemUserApp.vue @@ -111,7 +111,7 @@ export default { }, watch: { appScopes(val) { - let scopeList = [] + const scopeList = [] val.forEach((obj) => { scopeList.push(obj.name) }) diff --git a/packages/frontend/src/main/components/user/TokenDialog.vue b/packages/frontend/src/main/components/user/TokenDialog.vue index bb9293466..19ce06fdd 100644 --- a/packages/frontend/src/main/components/user/TokenDialog.vue +++ b/packages/frontend/src/main/components/user/TokenDialog.vue @@ -92,8 +92,8 @@ export default { computed: { parsedScopes() { if (!this.scopes) return [] - let arr = [] - for (let s of this.scopes) { + const arr = [] + for (const s of this.scopes) { arr.push({ text: s.name, value: s.name }) arr.push({ header: s.description }) arr.push({ divider: true }) @@ -114,7 +114,7 @@ export default { this.$matomo && this.$matomo.trackPageView('user/token/create') this.$mixpanel.track('Token Action', { type: 'action', name: 'create' }) try { - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation ($token: ApiTokenCreateInput!) { apiTokenCreate(token: $token) diff --git a/packages/frontend/src/main/components/viewer/CommentAddOverlay.vue b/packages/frontend/src/main/components/viewer/CommentAddOverlay.vue index 4e0f87c99..e9a8c9c0c 100644 --- a/packages/frontend/src/main/components/viewer/CommentAddOverlay.vue +++ b/packages/frontend/src/main/components/viewer/CommentAddOverlay.vue @@ -190,8 +190,8 @@ export default { this.$mixpanel.track('Comment Action', { type: 'action', name: 'create' }) - let camTarget = window.__viewer.cameraHandler.activeCam.controls.getTarget() - let commentInput = { + const camTarget = window.__viewer.cameraHandler.activeCam.controls.getTarget() + const commentInput = { streamId: this.$route.params.streamId, resources: [ { @@ -267,7 +267,7 @@ export default { if (!this.$refs.commentButton) return this.visible = true - let projectedLocation = new THREE.Vector3( + const projectedLocation = new THREE.Vector3( info.location.x, info.location.y, info.location.z @@ -278,7 +278,7 @@ export default { info.location.z ) - let cam = window.__viewer.cameraHandler.camera + const cam = window.__viewer.cameraHandler.camera cam.updateProjectionMatrix() projectedLocation.project(cam) let collapsedSize = this.$refs.commentButton.clientWidth @@ -299,9 +299,9 @@ export default { // TODO: Clamping, etc. if (!this.location) return if (!this.$refs.commentButton) return - let cam = window.__viewer.cameraHandler.camera + const cam = window.__viewer.cameraHandler.camera cam.updateProjectionMatrix() - let projectedLocation = this.location.clone() + const projectedLocation = this.location.clone() projectedLocation.project(cam) let collapsedSize = this.$refs.commentButton.clientWidth collapsedSize = 36 diff --git a/packages/frontend/src/main/components/viewer/CommentsOverlay.vue b/packages/frontend/src/main/components/viewer/CommentsOverlay.vue index 96bea4649..b2908c449 100644 --- a/packages/frontend/src/main/components/viewer/CommentsOverlay.vue +++ b/packages/frontend/src/main/components/viewer/CommentsOverlay.vue @@ -180,15 +180,15 @@ export default { `, fetchPolicy: 'no-cache', variables() { - let resourceArr = [ + const resourceArr = [ { resourceType: this.$resourceType(this.$route.params.resourceId), resourceId: this.$route.params.resourceId } ] if (this.$route.query.overlay) { - let resIds = this.$route.query.overlay.split(',') - for (let resId of resIds) + const resIds = this.$route.query.overlay.split(',') + for (const resId of resIds) resourceArr.push({ resourceType: this.$resourceType(resId), resourceId: resId @@ -202,7 +202,7 @@ export default { }, result({ data }) { if (!data) return - for (let c of data.comments.items) { + for (const c of data.comments.items) { c.expanded = false c.hovered = false c.bouncing = false @@ -237,7 +237,7 @@ export default { !subscriptionData.data.commentActivity ) return - let newComment = subscriptionData.data.commentActivity + const newComment = subscriptionData.data.commentActivity newComment.expanded = false newComment.hovered = false @@ -287,7 +287,7 @@ export default { if (this.$store.state.viewerBusy || this.$apollo.loading) return this.expandComment({ id: this.openCommentOnInit }) this.openCommentOnInit = null - let q = { ...this.$route.query } + const q = { ...this.$route.query } delete q.cId this.$router.replace({ path: this.$route.path, @@ -305,7 +305,7 @@ export default { this.$store.commit('setPreventCommentCollapse', { value: false }) return } - for (let c of this.localComments) { + for (const c of this.localComments) { this.collapseComment(c) } }.bind(this), @@ -327,7 +327,7 @@ export default { this.showComments = !this.showComments }, expandComment(comment) { - for (let c of this.localComments) { + for (const c of this.localComments) { if (c.id === comment.id) { c.preventAutoClose = true this.$store.commit('setCommentSelection', { comment: c }) @@ -347,7 +347,7 @@ export default { } }, collapseComment(comment) { - for (let c of this.localComments) { + for (const c of this.localComments) { if (c.id === comment.id && c.expanded) { c.expanded = false if (c.data.filters) this.$store.commit('resetFilter') @@ -357,7 +357,7 @@ export default { } }, setCommentPow(comment) { - let camToSet = comment.data.camPos + const camToSet = comment.data.camPos if (camToSet[6] === 1) { window.__viewer.toggleCameraProjection() } @@ -383,22 +383,22 @@ export default { }, async handleDeletion(comment) { this.collapseComment(comment) - let comm = this.localComments.find((c) => c.id === comment.id) + const comm = this.localComments.find((c) => c.id === comment.id) comm.archived = true this.updateCommentBubbles() }, updateCommentBubbles() { if (!this.comments) return - let cam = window.__viewer.cameraHandler.camera + const cam = window.__viewer.cameraHandler.camera cam.updateProjectionMatrix() - for (let comment of this.localComments) { + for (const comment of this.localComments) { // get html elements - let commentEl = this.$refs[`comment-${comment.id}`][0] - let card = this.$refs[`commentcard-${comment.id}`][0] + const commentEl = this.$refs[`comment-${comment.id}`][0] + const card = this.$refs[`commentcard-${comment.id}`][0] if (!commentEl) continue - let location = new THREE.Vector3( + const location = new THREE.Vector3( comment.data.location.x, comment.data.location.y, comment.data.location.z @@ -406,7 +406,7 @@ export default { location.project(cam) - let commentLocation = new THREE.Vector3( + const commentLocation = new THREE.Vector3( (location.x * 0.5 + 0.5) * this.$refs.parent.clientWidth, (location.y * -0.5 + 0.5) * this.$refs.parent.clientHeight, 0 @@ -451,7 +451,7 @@ export default { commentEl.style.top = `${tY}px` commentEl.style.left = `${tX}px` - let maxHeight = this.$refs.parent.clientHeight - paddingYTop - paddingYBottom + const maxHeight = this.$refs.parent.clientHeight - paddingYTop - paddingYBottom card.style.maxHeight = `${maxHeight}px` @@ -471,8 +471,8 @@ export default { // top clip if (cardTop < paddingYTop) cardTop = paddingYTop - let cardBottom = cardTop + card.clientHeight - let maxBottom = this.$refs.parent.clientHeight - 45 + const cardBottom = cardTop + card.clientHeight + const maxBottom = this.$refs.parent.clientHeight - 45 // bottom clip if (cardBottom > maxBottom) { @@ -486,9 +486,9 @@ export default { } }, bounceComment(id) { - let commentEl = this.$refs[`comment-${id}`][0] + const commentEl = this.$refs[`comment-${id}`][0] commentEl.classList.add('tada-once') - let comment = this.localComments.find((c) => c.id === id) + const comment = this.localComments.find((c) => c.id === id) comment.bouncing = true comment.updatedAt = Date.now() setTimeout(() => { diff --git a/packages/frontend/src/main/components/viewer/CommitInfoResource.vue b/packages/frontend/src/main/components/viewer/CommitInfoResource.vue index 45f0fa944..39111ce4c 100644 --- a/packages/frontend/src/main/components/viewer/CommitInfoResource.vue +++ b/packages/frontend/src/main/components/viewer/CommitInfoResource.vue @@ -108,7 +108,7 @@ export default { }, methods: { isolate() { - let id = this.resource.data.commit.referencedObject + const id = this.resource.data.commit.referencedObject if (this.isolated) this.$store.commit('unisolateObjects', { filterKey: '__parents', @@ -121,7 +121,7 @@ export default { }) }, toggleVisibility() { - let id = this.resource.data.commit.referencedObject + const id = this.resource.data.commit.referencedObject if (this.visible) this.$store.commit('hideObjects', { filterKey: '__parents', diff --git a/packages/frontend/src/main/components/viewer/FilterCategoryActive.vue b/packages/frontend/src/main/components/viewer/FilterCategoryActive.vue index f7a3a602c..d1e1af195 100644 --- a/packages/frontend/src/main/components/viewer/FilterCategoryActive.vue +++ b/packages/frontend/src/main/components/viewer/FilterCategoryActive.vue @@ -130,7 +130,7 @@ export default { mashColorLegend(colorLegend) { // just adds to our colors if (!colorLegend) return - let keys = Object.keys(colorLegend) + const keys = Object.keys(colorLegend) for (const key of keys) { if (!this.legend[key]) this.$set(this.legend, key, colorLegend[key]) } @@ -155,9 +155,9 @@ export default { }, generateTypeMap(filter) { if (filter.data.type !== 'string') return [] - let typeMap = [] - for (let key of Object.keys(filter.data.uniqueValues)) { - let shortName = key.split('.').reverse()[0] + const typeMap = [] + for (const key of Object.keys(filter.data.uniqueValues)) { + const shortName = key.split('.').reverse()[0] typeMap.push({ name: shortName, fullName: key, diff --git a/packages/frontend/src/main/components/viewer/ObjectInfoResource.vue b/packages/frontend/src/main/components/viewer/ObjectInfoResource.vue index 88eeec1a4..d521cdff7 100644 --- a/packages/frontend/src/main/components/viewer/ObjectInfoResource.vue +++ b/packages/frontend/src/main/components/viewer/ObjectInfoResource.vue @@ -82,7 +82,7 @@ export default { }, methods: { isolate() { - let id = this.resource.data.object.id + const id = this.resource.data.object.id if (this.isolated) this.$store.commit('unisolateObjects', { filterKey: '__parents', @@ -95,7 +95,7 @@ export default { }) }, toggleVisibility() { - let id = this.resource.data.object.id + const id = this.resource.data.object.id if (this.visible) this.$store.commit('hideObjects', { filterKey: '__parents', diff --git a/packages/frontend/src/main/components/viewer/ObjectProperties.vue b/packages/frontend/src/main/components/viewer/ObjectProperties.vue index 4cb7d9951..355df16f0 100644 --- a/packages/frontend/src/main/components/viewer/ObjectProperties.vue +++ b/packages/frontend/src/main/components/viewer/ObjectProperties.vue @@ -80,7 +80,7 @@ export default { methods: { async getRealObject() { this.loading = true - let result = await this.$apollo.query({ + const result = await this.$apollo.query({ query: gql` query Object($streamId: String!, $id: String!) { stream(id: $streamId) { @@ -104,13 +104,13 @@ export default { this.generateKVPs() }, generateKVPs() { - for (let key of Object.keys(this.realObject)) { + for (const key of Object.keys(this.realObject)) { if (this.ignoredProps.indexOf(key) !== -1) continue - let value = this.realObject[key] - let type = Array.isArray(this.realObject[key]) + const value = this.realObject[key] + const type = Array.isArray(this.realObject[key]) ? 'array' : typeof this.realObject[key] - let extras = [] + const extras = [] if (value?.referencedId) extras.push('open', 'visibility') if ( type === 'array' && diff --git a/packages/frontend/src/main/components/viewer/ObjectPropertiesRow.vue b/packages/frontend/src/main/components/viewer/ObjectPropertiesRow.vue index 3737929f7..ad24eb1e2 100644 --- a/packages/frontend/src/main/components/viewer/ObjectPropertiesRow.vue +++ b/packages/frontend/src/main/components/viewer/ObjectPropertiesRow.vue @@ -171,8 +171,8 @@ export default { return this.$store.state.hideValues.indexOf(this.prop.value.referencedId) === -1 } if (this.prop.type === 'array') { - let ids = this.prop.value.map((o) => o.referencedId) - let targetIds = this.$store.state.hideValues.filter( + const ids = this.prop.value.map((o) => o.referencedId) + const targetIds = this.$store.state.hideValues.filter( (val) => ids.indexOf(val) !== -1 ) if (targetIds.length === 0) return true @@ -187,8 +187,8 @@ export default { ) } if (this.prop.type === 'array') { - let ids = this.prop.value.map((o) => o.referencedId) - let targetIds = this.$store.state.isolateValues.filter( + const ids = this.prop.value.map((o) => o.referencedId) + const targetIds = this.$store.state.isolateValues.filter( (val) => ids.indexOf(val) !== -1 ) if (targetIds.length === 0) return false diff --git a/packages/frontend/src/main/components/viewer/ObjectSelection.vue b/packages/frontend/src/main/components/viewer/ObjectSelection.vue index d3c0e2dba..56619096c 100644 --- a/packages/frontend/src/main/components/viewer/ObjectSelection.vue +++ b/packages/frontend/src/main/components/viewer/ObjectSelection.vue @@ -99,7 +99,7 @@ export default { }) }, isolated() { - let ids = this.objects.map((o) => o.id) + const ids = this.objects.map((o) => o.id) ids.forEach((val) => { if (this.$store.state.isolateValues.indexOf(val) === -1) return false }) @@ -108,7 +108,7 @@ export default { }, methods: { isolateSelection() { - let ids = this.objects.map((o) => o.id) + const ids = this.objects.map((o) => o.id) if (!this.isolated) this.$store.commit('unisolateObjects', { filterKey: '__parents', @@ -122,7 +122,7 @@ export default { }, getSelectionUrl() { if (this.objects.length < 2) return '' - let url = `/streams/${this.streamId}/objects/${ + const url = `/streams/${this.streamId}/objects/${ this.objects[0].id }?overlay=${this.objects .slice(1) diff --git a/packages/frontend/src/main/components/viewer/ViewerBubbles.vue b/packages/frontend/src/main/components/viewer/ViewerBubbles.vue index 27b68f204..6e33b15c9 100644 --- a/packages/frontend/src/main/components/viewer/ViewerBubbles.vue +++ b/packages/frontend/src/main/components/viewer/ViewerBubbles.vue @@ -130,7 +130,7 @@ export default { return !this.$route.params.resourceId || !this.$loggedIn() }, result(res) { - let data = res.data + const data = res.data // Note: swap user id checks for .userId (vs. uuid) if wanting to not allow same user two diff browsers // it's easier to test like this though :) if (!data.userViewerActivity) return @@ -145,11 +145,11 @@ export default { return } if (data.userViewerActivity.uuid === this.uuid) return - let indx = this.users.findIndex( + const indx = this.users.findIndex( (u) => u.uuid === data.userViewerActivity.uuid ) if (indx !== -1) { - let user = this.users[indx] + const user = this.users[indx] user.hidden = false user.status = 'viewing' user.camera = data.userViewerActivity.camera @@ -226,7 +226,7 @@ export default { }, methods: { setUserPow(user) { - let camToSet = user.camera + const camToSet = user.camera if (camToSet[6] === 1) { window.__viewer.toggleCameraProjection() } @@ -248,8 +248,8 @@ export default { }, async sendUpdateAndPrune() { if (!this.$route.params.resourceId) return - for (let user of this.users) { - let delta = Date.now() - user.lastUpdate + for (const user of this.users) { + const delta = Date.now() - user.lastUpdate if (delta > 20000) { user.hidden = true user.status = 'stale' @@ -263,10 +263,10 @@ export default { if (!this.$loggedIn()) return - let controls = window.__viewer.cameraHandler.activeCam.controls - let pos = controls.getPosition() - let target = controls.getTarget() - let c = [ + const controls = window.__viewer.cameraHandler.activeCam.controls + const pos = controls.getPosition() + const target = controls.getTarget() + const c = [ parseFloat(pos.x.toFixed(5)), parseFloat(pos.y.toFixed(5)), parseFloat(pos.z.toFixed(5)), @@ -282,7 +282,7 @@ export default { selectionLocation = this.$store.state.selectedComment.data.location } - let data = { + const data = { filter: this.$store.state.appliedFilter, selection: this.selectedIds, selectionLocation, @@ -343,17 +343,17 @@ export default { updateBubbles(transition = true) { if (!this.$refs.parent) return - let cam = window.__viewer.cameraHandler.camera + const cam = window.__viewer.cameraHandler.camera cam.updateProjectionMatrix() - let selectedObjects = [] - for (let user of this.users) { + const selectedObjects = [] + for (const user of this.users) { if (!this.$refs[`user-bubble-${user.uuid}`]) continue if (user.selection) selectedObjects.push(...user.selection) - let location = new THREE.Vector3(user.camera[0], user.camera[1], user.camera[2]) + const location = new THREE.Vector3(user.camera[0], user.camera[1], user.camera[2]) let target = new THREE.Vector3(user.camera[3], user.camera[4], user.camera[5]) - let camDir = new THREE.Vector3().subVectors(target, location) + const camDir = new THREE.Vector3().subVectors(target, location) if (user.selectionLocation) target = new THREE.Vector3( @@ -366,21 +366,21 @@ export default { target.project(cam) // target.normalize() - let bubbleLoc = new THREE.Vector3( + const bubbleLoc = new THREE.Vector3( (camDir.x * 0.5 + 0.5) * this.$refs.parent.clientWidth, (camDir.y * -0.5 + 0.5) * this.$refs.parent.clientHeight, 0 ) - let targetLoc = new THREE.Vector3( + const targetLoc = new THREE.Vector3( (target.x * 0.5 + 0.5) * this.$refs.parent.clientWidth, (target.y * -0.5 + 0.5) * this.$refs.parent.clientHeight, 0 ) - let dir2D = new THREE.Vector3() + const dir2D = new THREE.Vector3() .subVectors(targetLoc, bubbleLoc) .normalize() .multiplyScalar(70) - let newTarget = new THREE.Vector3().addVectors(targetLoc, dir2D) + const newTarget = new THREE.Vector3().addVectors(targetLoc, dir2D) // TODO: clamp sides const paddingX = 42 @@ -407,9 +407,9 @@ export default { user.clipped = true } - let bubbleEl = this.$refs[`user-bubble-${user.uuid}`][0] - let uTargetEl = this.$refs[`user-target-${user.uuid}`][0] - let uArrowEl = this.$refs[`user-arrow-${user.uuid}`][0] + const bubbleEl = this.$refs[`user-bubble-${user.uuid}`][0] + const uTargetEl = this.$refs[`user-target-${user.uuid}`][0] + const uArrowEl = this.$refs[`user-arrow-${user.uuid}`][0] if (!bubbleEl || !uTargetEl || !uArrowEl) return // collection can get modified during update diff --git a/packages/frontend/src/main/components/viewer/ViewerFilters.vue b/packages/frontend/src/main/components/viewer/ViewerFilters.vue index 2417805eb..caaca604d 100644 --- a/packages/frontend/src/main/components/viewer/ViewerFilters.vue +++ b/packages/frontend/src/main/components/viewer/ViewerFilters.vue @@ -117,7 +117,7 @@ export default { computed: { topFilters() { if (this.allFilters.length === 0) return [] - let arr = [] + const arr = [] arr.push(this.allFilters.find((f) => f.name === 'Object Type')) if (this.sourceApplication.toLowerCase().includes('revit')) { arr.push(this.allFilters.find((f) => f.name === 'Level')) @@ -148,8 +148,8 @@ export default { '$store.state.appliedFilter'() { if (this.trySetPresetFilter) return if (this.$store.state.appliedFilter && this.$store.state.appliedFilter.filterBy) { - let key = Object.keys(this.$store.state.appliedFilter.filterBy)[0] - let presetFilter = this.allFilters.find((f) => f.targetKey === key) + const key = Object.keys(this.$store.state.appliedFilter.filterBy)[0] + const presetFilter = this.allFilters.find((f) => f.targetKey === key) if (presetFilter) this.activeFilter = presetFilter this.trySetPresetFilter = true this.preventFirstSet = true @@ -169,10 +169,10 @@ export default { }, methods: { parseAndSetFilters() { - let keys = Object.keys(this.props) - let filters = [] - for (let key of keys) { - let filter = {} + const keys = Object.keys(this.props) + const filters = [] + for (const key of keys) { + const filter = {} // Handle revit params if (key.startsWith('parameters.')) { if (key.endsWith('.value')) { diff --git a/packages/frontend/src/main/components/viewer/dialogs/AllCommits.vue b/packages/frontend/src/main/components/viewer/dialogs/AllCommits.vue index c391823f8..eb62f338b 100644 --- a/packages/frontend/src/main/components/viewer/dialogs/AllCommits.vue +++ b/packages/frontend/src/main/components/viewer/dialogs/AllCommits.vue @@ -109,7 +109,7 @@ export default { if (newItems.length === 0) $state.complete() else $state.loaded() - let allItems = [...previousResult.stream.commits.items] + const allItems = [...previousResult.stream.commits.items] for (const commit of newItems) { if (allItems.findIndex((c) => c.id === commit.id) === -1) allItems.push(commit) diff --git a/packages/frontend/src/main/components/viewer/dialogs/AllCommitsBranch.vue b/packages/frontend/src/main/components/viewer/dialogs/AllCommitsBranch.vue index 8d49e86c3..2d99e3f30 100644 --- a/packages/frontend/src/main/components/viewer/dialogs/AllCommitsBranch.vue +++ b/packages/frontend/src/main/components/viewer/dialogs/AllCommitsBranch.vue @@ -79,7 +79,7 @@ export default { }, methods: { async fetchBranchCommits() { - let res = await this.$apollo.query({ + const res = await this.$apollo.query({ query: gql` query { stream(id: "${this.streamId}") { @@ -104,13 +104,13 @@ export default { } ` }) - let items = res.data.stream.branch.commits.items + const items = res.data.stream.branch.commits.items this.cursor = res.data.stream.branch.commits.cursor items.forEach((item) => this.commits.push(item)) return items }, async infiniteHandler($state) { - let items = await this.fetchBranchCommits() + const items = await this.fetchBranchCommits() if (items.length === 0) $state.complete() else $state.loaded() } diff --git a/packages/frontend/src/main/components/viewer/dialogs/StreamOverlayViewer.vue b/packages/frontend/src/main/components/viewer/dialogs/StreamOverlayViewer.vue index b68c157c7..841134b29 100644 --- a/packages/frontend/src/main/components/viewer/dialogs/StreamOverlayViewer.vue +++ b/packages/frontend/src/main/components/viewer/dialogs/StreamOverlayViewer.vue @@ -120,7 +120,7 @@ export default { } }, async mounted() { - let res = await this.$apollo.query({ + const res = await this.$apollo.query({ query: gql` query { stream(id: "${this.streamId}") { @@ -156,15 +156,15 @@ export default { this.objectId = null return } - let pcs = this.objectIdInput.split('/') - let objectId = pcs.reverse()[0] + const pcs = this.objectIdInput.split('/') + const objectId = pcs.reverse()[0] if (objectId.length !== 32) { this.objectIdError = 'Invalid id length.' this.objectId = null return } if (pcs.length !== 1) { - let streamId = pcs[2] + const streamId = pcs[2] if (streamId !== this.$route.params.streamId) { this.objectIdError = 'Objects do not belong to the same stream.' this.objectId = null diff --git a/packages/frontend/src/main/components/viewer/viewerFrontendHelpers.js b/packages/frontend/src/main/components/viewer/viewerFrontendHelpers.js index 8be6520ca..ab57e4882 100644 --- a/packages/frontend/src/main/components/viewer/viewerFrontendHelpers.js +++ b/packages/frontend/src/main/components/viewer/viewerFrontendHelpers.js @@ -1,8 +1,8 @@ export function getCamArray() { - let controls = window.__viewer.cameraHandler.activeCam.controls - let pos = controls.getPosition() - let target = controls.getTarget() - let c = [ + const controls = window.__viewer.cameraHandler.activeCam.controls + const pos = controls.getPosition() + const target = controls.getTarget() + const c = [ parseFloat(pos.x.toFixed(5)), parseFloat(pos.y.toFixed(5)), parseFloat(pos.z.toFixed(5)), diff --git a/packages/frontend/src/main/dialogs/BranchEditDialog.vue b/packages/frontend/src/main/dialogs/BranchEditDialog.vue index 762110ac7..d217e3a57 100644 --- a/packages/frontend/src/main/dialogs/BranchEditDialog.vue +++ b/packages/frontend/src/main/dialogs/BranchEditDialog.vue @@ -157,7 +157,7 @@ export default { this.$matomo && this.$matomo.trackPageView('branch/delete') this.$mixpanel.track('Branch Action', { type: 'action', name: 'delete' }) try { - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation branchDelete($params: BranchDeleteInput!) { branchDelete(branch: $params) @@ -191,7 +191,7 @@ export default { this.loading = true this.$matomo && this.$matomo.trackPageView('branch/update') this.$mixpanel.track('Branch Action', { type: 'action', name: 'update' }) - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation branchUpdate($params: BranchUpdateInput!) { branchUpdate(branch: $params) diff --git a/packages/frontend/src/main/dialogs/CommitEdit.vue b/packages/frontend/src/main/dialogs/CommitEdit.vue index 862554f0e..4f679a45b 100644 --- a/packages/frontend/src/main/dialogs/CommitEdit.vue +++ b/packages/frontend/src/main/dialogs/CommitEdit.vue @@ -134,7 +134,7 @@ export default { async deleteCommit() { this.$matomo && this.$matomo.trackPageView('commit/delete') this.$mixpanel.track('Commit Action', { type: 'action', name: 'delete' }) - let commitBranch = this.stream.commit.branchName + const commitBranch = this.stream.commit.branchName try { await this.$apollo.mutate({ mutation: gql` diff --git a/packages/frontend/src/main/dialogs/NewStream.vue b/packages/frontend/src/main/dialogs/NewStream.vue index f4e2e6bc4..078f291b8 100644 --- a/packages/frontend/src/main/dialogs/NewStream.vue +++ b/packages/frontend/src/main/dialogs/NewStream.vue @@ -181,7 +181,7 @@ export default { methods: { addCollab(user) { if (user.id === localStorage.getItem('uuid')) return - let indx = this.collabs.findIndex((u) => u.id === user.id) + const indx = this.collabs.findIndex((u) => u.id === user.id) if (indx !== -1) return user.role = 'stream:contributor' this.collabs.push(user) @@ -189,7 +189,7 @@ export default { this.userSearch.items = null }, removeCollab(user) { - let indx = this.collabs.findIndex((u) => u.id === user.id) + const indx = this.collabs.findIndex((u) => u.id === user.id) this.collabs.splice(indx, 1) }, async createStream() { @@ -199,7 +199,7 @@ export default { this.$matomo && this.$matomo.trackPageView('stream/create') this.$mixpanel.track('Stream Action', { type: 'action', name: 'create' }) try { - let res = await this.$apollo.mutate({ + const res = await this.$apollo.mutate({ mutation: gql` mutation streamCreate($myStream: StreamCreateInput!) { streamCreate(stream: $myStream) @@ -215,7 +215,7 @@ export default { }) if (this.collabs.length !== 0) { - for (let user of this.collabs) { + for (const user of this.collabs) { await this.$apollo.mutate({ mutation: gql` mutation grantPermission($params: StreamGrantPermissionInput!) { diff --git a/packages/frontend/src/main/dialogs/ServerInvites.vue b/packages/frontend/src/main/dialogs/ServerInvites.vue index b7fa54d54..cb71adab3 100644 --- a/packages/frontend/src/main/dialogs/ServerInvites.vue +++ b/packages/frontend/src/main/dialogs/ServerInvites.vue @@ -69,7 +69,7 @@ export default { return true }, (v) => { - let pure = DOMPurify.sanitize(v) + const pure = DOMPurify.sanitize(v) if (pure !== v) return 'No crazy hacks please.' else return true } diff --git a/packages/frontend/src/main/dialogs/ShareStreamDialog.vue b/packages/frontend/src/main/dialogs/ShareStreamDialog.vue index 173050f8e..646a4afea 100644 --- a/packages/frontend/src/main/dialogs/ShareStreamDialog.vue +++ b/packages/frontend/src/main/dialogs/ShareStreamDialog.vue @@ -236,9 +236,9 @@ export default { document.execCommand('copy') }, getIframeUrl() { - let resourceId = this.$route.params.resourceId + const resourceId = this.$route.params.resourceId if (!resourceId) return null - let base = `${window.location.origin}/embed?stream=${this.$route.params.streamId}` + const base = `${window.location.origin}/embed?stream=${this.$route.params.streamId}` return `