From 913696cb0c9ccbfab72e2ff945440883be4cc7db Mon Sep 17 00:00:00 2001 From: Kristaps Fabians Geikins Date: Tue, 22 Oct 2024 12:52:14 +0300 Subject: [PATCH] chore(server): core IoC #105 - remaining js rest to ts --- .../core/rest/{download.js => download.ts} | 42 +++++++++---------- ...jectsStream.js => speckleObjectsStream.ts} | 25 +++++++---- 2 files changed, 37 insertions(+), 30 deletions(-) rename packages/server/modules/core/rest/{download.js => download.ts} (75%) rename packages/server/modules/core/rest/{speckleObjectsStream.js => speckleObjectsStream.ts} (58%) diff --git a/packages/server/modules/core/rest/download.js b/packages/server/modules/core/rest/download.ts similarity index 75% rename from packages/server/modules/core/rest/download.js rename to packages/server/modules/core/rest/download.ts index 6a29a0e06..5794b21db 100644 --- a/packages/server/modules/core/rest/download.js +++ b/packages/server/modules/core/rest/download.ts @@ -1,30 +1,28 @@ -'use strict' -const zlib = require('zlib') -const { corsMiddleware } = require('@/modules/core/configs/cors') +import zlib from 'zlib' +import { corsMiddleware } from '@/modules/core/configs/cors' -const { SpeckleObjectsStream } = require('./speckleObjectsStream') -const { pipeline, PassThrough } = require('stream') -const { logger } = require('@/logging/logging') -const { +import { SpeckleObjectsStream } from '@/modules/core/rest/speckleObjectsStream' +import { pipeline, PassThrough } from 'stream' +import { logger } from '@/logging/logging' +import { getFormattedObjectFactory, getObjectChildrenStreamFactory -} = require('@/modules/core/repositories/objects') -const { db } = require('@/db/knex') -const { - validatePermissionsReadStreamFactory -} = require('@/modules/core/services/streams/auth') -const { getStreamFactory } = require('@/modules/core/repositories/streams') -const { validateScopes, authorizeResolver } = require('@/modules/shared') +} from '@/modules/core/repositories/objects' +import { db } from '@/db/knex' +import { validatePermissionsReadStreamFactory } from '@/modules/core/services/streams/auth' +import { getStreamFactory } from '@/modules/core/repositories/streams' +import { validateScopes, authorizeResolver } from '@/modules/shared' +import type express from 'express' -const getObject = getFormattedObjectFactory({ db }) -const getObjectChildrenStream = getObjectChildrenStreamFactory({ db }) -const validatePermissionsReadStream = validatePermissionsReadStreamFactory({ - getStream: getStreamFactory({ db }), - validateScopes, - authorizeResolver -}) +export default (app: express.Express) => { + const getObject = getFormattedObjectFactory({ db }) + const getObjectChildrenStream = getObjectChildrenStreamFactory({ db }) + const validatePermissionsReadStream = validatePermissionsReadStreamFactory({ + getStream: getStreamFactory({ db }), + validateScopes, + authorizeResolver + }) -module.exports = (app) => { app.options('/objects/:streamId/:objectId', corsMiddleware()) app.get('/objects/:streamId/:objectId', corsMiddleware(), async (req, res) => { diff --git a/packages/server/modules/core/rest/speckleObjectsStream.js b/packages/server/modules/core/rest/speckleObjectsStream.ts similarity index 58% rename from packages/server/modules/core/rest/speckleObjectsStream.js rename to packages/server/modules/core/rest/speckleObjectsStream.ts index f67a0d564..db5a2d7d4 100644 --- a/packages/server/modules/core/rest/speckleObjectsStream.js +++ b/packages/server/modules/core/rest/speckleObjectsStream.ts @@ -1,9 +1,14 @@ -const { Transform } = require('stream') - -// A stream that converts database objects stream to "{id}\t{data_json}\n" stream or a json stream of obj.data fields +import { ensureError } from '@speckle/shared' +import { Transform, TransformCallback } from 'stream' +/** + * A stream that converts database objects stream to "{id}\t{data_json}\n" stream or a json stream of obj.data fields + */ class SpeckleObjectsStream extends Transform { - constructor(simpleText) { + simpleText: boolean + isFirstObject: boolean + + constructor(simpleText: boolean) { super({ writableObjectMode: true }) this.simpleText = simpleText @@ -11,7 +16,11 @@ class SpeckleObjectsStream extends Transform { this.isFirstObject = true } - _transform(dbObj, encoding, callback) { + _transform( + dbObj: { dataText: string; id: string; data?: Record }, + _encoding: BufferEncoding, + callback: TransformCallback + ) { let objData = dbObj.dataText if (objData === undefined) objData = JSON.stringify(dbObj.data) @@ -28,14 +37,14 @@ class SpeckleObjectsStream extends Transform { } callback() } catch (e) { - callback(e) + callback(ensureError(e)) } } - _flush(callback) { + _flush(callback: TransformCallback) { if (!this.simpleText) this.push(']') callback() } } -exports.SpeckleObjectsStream = SpeckleObjectsStream +export { SpeckleObjectsStream }