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

fix: macros are available Sessions with SASAUTOS

This commit is contained in:
Saad Jutt
2022-03-06 01:57:14 +05:00
parent 5ba7661a83
commit 95843fa4c7
7 changed files with 41 additions and 6 deletions

1
.gitignore vendored
View File

@@ -7,6 +7,7 @@ sas/
tmp/ tmp/
build/ build/
sasjsbuild/ sasjsbuild/
sasjscore/
certificates/ certificates/
executables/ executables/
.env .env

View File

@@ -4,7 +4,7 @@
"description": "Api of SASjs server", "description": "Api of SASjs server",
"main": "./src/server.ts", "main": "./src/server.ts",
"scripts": { "scripts": {
"initial": "npm run swagger && npm run compileSysInit", "initial": "npm run swagger && npm run compileSysInit && npm run copySASjsCore",
"prestart": "npm run initial", "prestart": "npm run initial",
"prebuild": "npm run initial", "prebuild": "npm run initial",
"start": "nodemon ./src/server.ts", "start": "nodemon ./src/server.ts",
@@ -16,11 +16,13 @@
"lint": "npx prettier --check \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,yml,md,graphql}\"", "lint": "npx prettier --check \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,yml,md,graphql}\"",
"package:lib": "npm run build && cp ./package.json build && cp README.md build && cd build && npm version \"5.0.0\" && npm pack", "package:lib": "npm run build && cp ./package.json build && cp README.md build && cd build && npm version \"5.0.0\" && npm pack",
"exe": "npm run build && npm run exe:copy && pkg .", "exe": "npm run build && npm run exe:copy && pkg .",
"exe:copy": "npm run public:copy && npm run sasjsbuild:copy && npm run web:copy", "exe:copy": "npm run public:copy && npm run sasjsbuild:copy && npm run sasjscore:copy && npm run web:copy",
"public:copy": "cp -r ./public/ ./build/public/", "public:copy": "cp -r ./public/ ./build/public/",
"sasjsbuild:copy": "cp -r ./sasjsbuild/ ./build/sasjsbuild/", "sasjsbuild:copy": "cp -r ./sasjsbuild/ ./build/sasjsbuild/",
"sasjscore:copy": "cp -r ./sasjscore/ ./build/sasjscore/",
"web:copy": "rimraf web && mkdir web && cp -r ../web/build/ ./web/build/", "web:copy": "rimraf web && mkdir web && cp -r ../web/build/ ./web/build/",
"compileSysInit": "ts-node ./scripts/compileSysInit.ts" "compileSysInit": "ts-node ./scripts/compileSysInit.ts",
"copySASjsCore": "ts-node ./scripts/copySASjsCore.ts"
}, },
"bin": "./build/src/server.js", "bin": "./build/src/server.js",
"pkg": { "pkg": {

View File

@@ -21,7 +21,6 @@ const compiledSystemInit = async (systemInit: string) =>
})) }))
const createSysInitFile = async () => { const createSysInitFile = async () => {
console.log('macroCorePath', macroCorePath)
const systemInitContent = await readFile( const systemInitContent = await readFile(
path.join(__dirname, 'systemInit.sas') path.join(__dirname, 'systemInit.sas')
) )

View File

@@ -0,0 +1,25 @@
import path from 'path'
import { asyncForEach, copy, createFolder, deleteFolder } from '@sasjs/utils'
import { apiRoot, sasJSCoreMacros } from '../src/utils'
const macroCorePath = path.join(apiRoot, 'node_modules', '@sasjs', 'core')
export const copySASjsCore = async () => {
await deleteFolder(sasJSCoreMacros)
await createFolder(sasJSCoreMacros)
console.log('Copying SASjs Core Macros...')
const foldersToCopy = ['base', 'ddl', 'fcmp', 'lua', 'server']
await asyncForEach(foldersToCopy, async (coreSubFolder) => {
const coreSubFolderPath = path.join(macroCorePath, coreSubFolder)
await copy(coreSubFolderPath, sasJSCoreMacros)
})
console.log('Macros available at: ', sasJSCoreMacros)
}
copySASjsCore()

View File

@@ -13,7 +13,8 @@ import {
extractHeaders, extractHeaders,
generateFileUploadSasCode, generateFileUploadSasCode,
getTmpFilesFolderPath, getTmpFilesFolderPath,
HTTPHeaders HTTPHeaders,
sasJSCoreMacros
} from '../../utils' } from '../../utils'
export interface ExecutionVars { export interface ExecutionVars {
@@ -104,6 +105,8 @@ export class ExecutionController {
` `
program = ` program = `
options insert=(SASAUTOS="${sasJSCoreMacros}");
/* runtime vars */ /* runtime vars */
${varStatments} ${varStatments}
filename _webout "${weboutPath}" mod; filename _webout "${weboutPath}" mod;

View File

@@ -67,7 +67,10 @@ export class SessionController {
// the autoexec file is executed on SAS startup // the autoexec file is executed on SAS startup
const autoExecPath = path.join(sessionFolder, 'autoexec.sas') const autoExecPath = path.join(sessionFolder, 'autoexec.sas')
const contentForAutoExec = `/* compiled systemInit */\n${compiledSystemInitContent}\n/* autoexec */\n${autoExecContent}` const contentForAutoExec = `/* compiled systemInit */
${compiledSystemInitContent}
/* autoexec */
${autoExecContent}`
await createFile(autoExecPath, contentForAutoExec) await createFile(autoExecPath, contentForAutoExec)
// create empty code.sas as SAS will not start without a SYSIN // create empty code.sas as SAS will not start without a SYSIN

View File

@@ -8,6 +8,8 @@ export const sysInitCompiledPath = path.join(
'systemInitCompiled.sas' 'systemInitCompiled.sas'
) )
export const sasJSCoreMacros = path.join(apiRoot, 'sasjscore')
export const getWebBuildFolderPath = () => export const getWebBuildFolderPath = () =>
path.join(codebaseRoot, 'web', 'build') path.join(codebaseRoot, 'web', 'build')