mirror of
https://github.com/sasjs/server.git
synced 2025-12-10 11:24:35 +00:00
fix(autoexec): usage in case of desktop from file
This commit is contained in:
@@ -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')))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 = () =>
|
||||
|
||||
@@ -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(), '')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user