---
title: "Output JavaScript"
description: "initialize outputs at runtime using JavaScript."
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/script/output/unit.yaml"
icon: "material/power-plug-outline"

---
Initializes [outputs](https://doc.log10x.com/run/output "Filter and output TenXObjects to remote and local destinations") via JavaScript constructors.

The class demonstrates how `TenXOutput` subclasses can access module-specific configuration options (like [outputFilePath](https://doc.log10x.com/run/output/event/file/#outputfilepath "location of the output file"), [outputFileWriteObjects](https://doc.log10x.com/run/output/event/file/#outputfilewriteobjects "if true, encode TenXObjects [outputFileFields](https://doc.log10x.com/run/output/event/file/#outputfilefields) to this output"), and [outputFileWriteTemplates](https://doc.log10x.com/run/output/event/file/#outputfilewritetemplates "if true, write new TenXTemplates to this output")) as instance properties and customize their initialization behavior accordingly.

```js
export class FileOutput extends TenXOutput {
    constructor() { 
        if (this.outputFilePath) {
            if (this.outputFileWriteObjects != false) {
                if (this.outputFileWriteTemplates) {
                    TenXConsole.log("Writing TenXObjects and TenXTemplates to: " + this.outputFilePath);
                } else {
                    TenXConsole.log("Writing TenXObjects to: " + this.outputFilePath);
                }
            } else if (this.outputFileWriteTemplates ) {
                TenXConsole.log("Writing TenXTemplates to: " + this.outputFilePath);
            }
        }
    }
}
```

To load input constructors see [JavaScript configuration](https://doc.log10x.com/config/javascript/).

## :material-menu: Options

Specify the options below to [configure](/config "configure") multiple Output JavaScript:

|Name|Description|
|---|---|
|[outputActionsClassName](#outputactionsclassname "JavaScript class name")|JavaScript class name|
|[outputActions](#outputactions "10x JavaScript statements to execute")|10x JavaScript statements to execute|
|[outputActionsFile](#outputactionsfile "Declaring .js file")|Declaring .js file|

### :material-menu-right-outline:**`outputActionsClassName`**

JavaScript class name.

|Type|Required|Names|
|---|---|---|
|String|✔|\[outputActionsClassName, TenXOutputClassName\]|

Specifies the JavaScript class name in which [outputActions](https://doc.log10x.com/run/transform/script/output/#outputactions "10x JavaScript statements to execute") are defined.


### :material-menu-right-outline:**`outputActions`**

10x JavaScript statements to execute.

|Type|Default|Names|
|---|---|---|
|List|\[\]|\[outputActions, TenXOutput\]|

JavaScript statements for initializing target output(s).

**NOTE**: This argument is not designed to be set directly, but instead by passing a [.js launch file](https://doc.log10x.com/config/javascript/) containing
these statements nested within an [TenXInput](https://doc.log10x.com/api/js/#TenXInput "Serves as a base class to allow for custom input initialization.") sub-class constructor as described above.


### :material-menu-right-outline:**`outputActionsFile`**

Declaring .js file.

|Type|Default|Names|
|---|---|---|
|String|""|\[outputActionsFile, TenXOutputFile\]|

Specifies the .js file name declaring [outputActions](https://doc.log10x.com/run/transform/script/output/#outputactions "10x JavaScript statements to execute").


<br/>:material-github: This unit is defined in [output/unit.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/script/output/unit.yaml "output/unit.yaml"){target="\_blank"}.

