@lightmill/convert-touchstone
v3.0.0-alpha.8
Published
Converts touchstone XML exports to lightmill format.
Downloads
10
Readme
@lightmill/convert-touchstone
Convert a touchstone XML design file as produce by touchstone's design platform to a format that can be directly provided to @lightmill/static-design.
Install
NPM
npm install @lightmill/convert-touchstone
Note: You might not need to install @lightmill/convert-touchstone, npx
can be used to download and immediately run the program.
Direct download
Download the latest version then, then in your html file:
<script src="lightmill-convert-touchstone.js"></script>
The library will be injected in lightmill.convertTouchstone
.
Usage
lightmill-convert-touchstone <input-file>
Or (if you do not need to install it and prefer to use npx
):
npx @lightmill/convert-touchstone <input-file>
API
| Param | Type | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------------- | | touchStoneXML | String | stream.Readable | | The XML to parse. | | [options] | object | | Options | | [options.preBlock] | string | object | array | function | | The type of the task to insert before each block or a function to map the block values to task(s). | | [options.postBlock] | string | object | array | function | | The type of the task to insert after each block or a function to map the block values to task(s). | | [options.preRun] | string | object | array | function | | The type of the task to insert before each run or a function to map the run values to task(s). | | [options.postRun] | string | object | array | function | | The type of the task to insert after each run or a function to map the run values to task(s). | | [options.trial] | string | object | array | function | "trial" | The type of the task to insert for each trial or a function to map the trial values to task(s). |
Example
// Map each run to a task to insert before the trials of the run.
const preRun = (run, experiment) => ({
...run,
type: 'pre-run'
});
// Mappers can also be strings...
const postRun = 'post-run'; // This is the same as above.
// ...arrays (if several tasks need to be inserted)...
const preBlock = [
{ type: 'pre-block-1' },
{ type: 'pre-block-2' }
];
// ...or functions that returns arrays.
const postBlock = (block, run, experiment) => [
{ type: 'post-block-1', runId: run.id },
{ ...block , type: 'post-block-2' }
'post-block-2' // This is the same as above.
];
convertTouchStone(data, { preBlock, postBlock, postRun, preRun })
.then(doSomething);