1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-10 19:34:34 +00:00

fix(autoexec): usage in case of desktop from file

This commit is contained in:
Saad Jutt
2022-05-25 10:44:57 +05:00
parent 2a7223ad7d
commit 79dc2dba23
4 changed files with 31 additions and 8 deletions

View File

@@ -30,9 +30,7 @@ dotenv.config()
instantiateLogger()
if (verifyEnvVariables()) {
process.exit(ReturnCode.InvalidEnv)
}
if (verifyEnvVariables()) process.exit(ReturnCode.InvalidEnv)
const app = express()
@@ -85,7 +83,7 @@ app.use(
/***********************************
* Enabling CORS *
***********************************/
if (MODE === ModeType.Server || CORS === CorsType.ENABLED) {
if (CORS === CorsType.ENABLED) {
const whiteList: string[] = []
WHITELIST?.split(' ')
?.filter((url) => !!url)
@@ -125,6 +123,7 @@ if (MODE === ModeType.Server) {
})
)
}
app.use(express.json({ limit: '100mb' }))
app.use(express.static(path.join(__dirname, '../public')))

View File

@@ -2,7 +2,13 @@ import express from 'express'
import { Request, Security, Route, Tags, Post, Body } from 'tsoa'
import { ExecuteReturnJson, ExecutionController } from './internal'
import { ExecuteReturnJsonResponse } from '.'
import { getPreProgramVariables, parseLogToArray } from '../utils'
import {
getDesktopUserAutoExecPath,
getPreProgramVariables,
ModeType,
parseLogToArray
} from '../utils'
import { readFile } from '@sasjs/utils'
interface ExecuteSASCodePayload {
/**
@@ -34,13 +40,18 @@ const executeSASCode = async (
{ code }: ExecuteSASCodePayload
) => {
const { user } = req
const userAutoExec =
process.env.MODE === ModeType.Server
? user?.autoExec
: await readFile(getDesktopUserAutoExecPath())
try {
const { webout, log, httpHeaders } =
(await new ExecutionController().executeProgram(
code,
getPreProgramVariables(req),
{ ...req.query, _debug: 131 },
{ userAutoExec: user?.autoExec },
{ userAutoExec },
true
)) as ExecuteReturnJson

View File

@@ -1,4 +1,5 @@
import path from 'path'
import { homedir } from 'os'
export const apiRoot = path.join(__dirname, '..', '..')
export const codebaseRoot = path.join(apiRoot, '..')
@@ -13,6 +14,11 @@ export const sasJSCoreMacrosInfo = path.join(sasJSCoreMacros, '.macrolist')
export const getWebBuildFolder = () => path.join(codebaseRoot, 'web', 'build')
export const getSasjsHomeFolder = () => path.join(homedir(), '.sasjs-server')
export const getDesktopUserAutoExecPath = () =>
path.join(getSasjsHomeFolder(), 'user-autoexec.sas')
export const getSasjsRootFolder = () => process.driveLoc
export const getAppStreamConfigPath = () =>

View File

@@ -1,7 +1,14 @@
import { createFolder } from '@sasjs/utils'
import { getFilesFolder } from './file'
import { createFile, createFolder, fileExists } from '@sasjs/utils'
import { getDesktopUserAutoExecPath, getFilesFolder } from './file'
import { ModeType } from './verifyEnvVariables'
export const setupFolders = async () => {
const drivePath = getFilesFolder()
await createFolder(drivePath)
if (process.env.MODE === ModeType.Desktop) {
if (!(await fileExists(getDesktopUserAutoExecPath()))) {
await createFile(getDesktopUserAutoExecPath(), '')
}
}
}