Socket
Book a DemoInstallSign in
Socket

@webdav-server/javascript

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@webdav-server/javascript

Javascript file system for webdav-server

latest
Source
npmnpm
Version
1.1.0
Version published
Weekly downloads
2
100%
Maintainers
1
Weekly downloads
 
Created
Source

Javascript File System for webdav-server

webdav-server version 2

npm Version

Allow to execute javascript. The source of the file is the javascript code, but the translated content is the result of the execution of the source code.

The file can be executed in two modes : eval mode and exec mode.

The eval mode will execute the source code with an eval(...), allowing the code to be executed within the server context. The exec mode will execute the source code in a new node processus.

Install

npm install @webdav-server/javascript

Options

Name | Type | Optional | Description -|-|- useEval | boolean | false | currentWorkingDirectory | string | true | disableSourceReading | boolean | true |

Usage

// TypeScript
import { v2 as webdav } from 'webdav-server'
import * as js from '@webdav-server/javascript'
// JavaScript
const webdav = require('webdav-server').v2;
const js = require('@webdav-server/javascript');

const server = new webdav.WebDAVServer({
    // [...]
    autoLoad: {
        // [...]
        serializers: [
            new js.JavascriptSerializer()
            // [...]
        ]
    }
})

const jsFileSystemEval = new js.JavascriptFileSystem({
    useEval: true
});
const jsFileSystemExec = new js.JavascriptFileSystem({
    useEval: false
});

server.setFileSystemSync('/eval', jsFileSystemEval, false);
server.setFileSystemSync('/exec', jsFileSystemExec, false);

jsFileSystemEval.openWriteStream(server.createExternalContext(), '/file1.txt', 'mustCreate', (e, wStream) => {
    if(e) throw e;
    wStream.end('return "Helloooooooooooooooooooooooooooooooo file 1!";');
})
jsFileSystemEval.openWriteStream(server.createExternalContext(), '/file2.txt', 'mustCreate', (e, wStream) => {
    if(e) throw e;
    wStream.end('systemCallback("Helloooooooooooooooooooooooooooooooo file 2!");');
})
jsFileSystemEval.openWriteStream(server.createExternalContext(), '/npm-WebDAV-Server.html', 'mustCreate', (e, wStream) => {
    if(e) throw e;
    wStream.end(
        "const request = require('request'); \
            \
        request({ \
            url: 'https://github.com/OpenMarshal/npm-WebDAV-Server' \
        }, (e, res, body) => { \
            systemCallback(body); \
        })"
    );
})
jsFileSystemExec.openWriteStream(server.createExternalContext(), '/file.txt', 'mustCreate', (e, wStream) => {
    if(e) throw e;
    wStream.end('console.log("Helloooooooooooooooooooooooooooooooo file exec!");');
})

server.beforeRequest((ctx, next) => {
    console.log(ctx.request.method, ctx.request.url);
    next();
})
server.afterRequest((ctx, next) => {
    console.log(ctx.request.method, ctx.request.url, ctx.response.statusCode, ctx.response.statusMessage);
    next();
})

server.start((s) => console.log('Ready on port', s.address().port));

Keywords

@webdav-server

FAQs

Package last updated on 04 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts