Skip to content
This repository has been archived by the owner on Aug 31, 2021. It is now read-only.

data_transformers

Marcel Kloubert edited this page Apr 15, 2018 · 7 revisions

Transform data

You can "transform" data (of a file) before it is send, or after it has been received from a source.

This is useful if you want to encrypt the data before it is send to a destination over a network connection and decrypt it after is has been received from a source, e.g.

{
    "deploy.reloaded": {
        "targets": [
            {
                "type": "dropbox",
                "name": "My DropBox folder",

                "transformer": "./my-transformer_script.js",
                "transformerOptions": "Any data, like scalar values, objects or arrays can be submitted to the script"
            }
        ]
    }
}

To do this, you have to create a JavaScript file, that has the following skeleton:

exports.transform = async function(inputBuffer, context) {
    if (0 == context.mode) {
        // restore "transformed" data
        // like decrypting
    }
    
    if (1 == context.mode) {
        // transform data
        // like encrypting
    }

    // you can return the new data as
    // buffer, string or stream
};

context argument implements DataTransformerContext interface.

Relative paths will be mapped to your home directory (.vscode-deploy-reloaded sub folder) or the .vscode folder.

Sub contexts

The context property of DataTransformerContext interface can contain one of the following sub contextes:

Deploy

exports.transform = async function(inputBuffer, transformerContext) {
    // transformerContext.context.deployOperation => 1
    // transformerContext.context.file            => path to local file
    // transformerContext.context.remoteFile      => path of remote file
    // transformerContext.context.target          => s. https://mkloubert.github.io/vscode-deploy-reloaded/interfaces/_targets_.target.html
};

Pull

exports.transform = async function(inputBuffer, transformerContext) {
    // transformerContext.context.deployOperation => 3
    // transformerContext.context.file            => path to local file
    // transformerContext.context.remoteFile      => path of remote file
    // transformerContext.context.target          => s. https://mkloubert.github.io/vscode-deploy-reloaded/interfaces/_targets_.target.html
};
Clone this wiki locally