mirror of
https://github.com/xodio/xod.git
synced 2026-03-25 01:56:54 +01:00
feat(runtime): add xodc script
This commit is contained in:
32
bin/xodc
Executable file
32
bin/xodc
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
require('babel-register');
|
||||
|
||||
const program = require('commander');
|
||||
const fs = require('fs');
|
||||
const transpile = require(__dirname + '/../targets/xod-espruino/transpiler').default;
|
||||
|
||||
program
|
||||
.version('0.0.1')
|
||||
.arguments('<PATCH_FILE>');
|
||||
|
||||
function main() {
|
||||
program.parse(process.argv);
|
||||
|
||||
if (program.args.length !== 1) {
|
||||
program.outputHelp();
|
||||
return;
|
||||
}
|
||||
|
||||
const filename = program.args[0];
|
||||
const json = fs.readFileSync(filename);
|
||||
const project = JSON.parse(json);
|
||||
const runtime = '';
|
||||
const code = transpile({ project, runtime });
|
||||
|
||||
process.stdout.write(code);
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
// vim:ft=javascript
|
||||
@@ -21,9 +21,12 @@
|
||||
"babel-core": "^6.4.0",
|
||||
"babel-loader": "^6.2.1",
|
||||
"babel-preset-es2015": "^6.3.13",
|
||||
"babel-preset-node6": "^11.0.0",
|
||||
"babel-preset-react": "^6.3.13",
|
||||
"babel-register": "^6.11.6",
|
||||
"classnames": "^2.2.5",
|
||||
"co": "^4.6.0",
|
||||
"commander": "^2.9.0",
|
||||
"css-loader": "^0.23.1",
|
||||
"espruino": "git+https://github.com/espruino/EspruinoTools.git#gh-pages",
|
||||
"file-loader": "^0.8.5",
|
||||
|
||||
@@ -225,7 +225,3 @@ export class Project {
|
||||
Object.keys(this._nodes).forEach(id => callback(this._nodes[id]));
|
||||
}
|
||||
}
|
||||
|
||||
function onInit() {
|
||||
console.log(project);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
import R from 'ramda';
|
||||
import * as PIN_DIRECTION from 'constants/pinDirection';
|
||||
import * as PIN_TYPE from 'constants/pinType';
|
||||
import * as PIN_DIRECTION from '../../app/constants/pinDirection';
|
||||
import * as PIN_TYPE from '../../app/constants/pinType';
|
||||
|
||||
/**
|
||||
* Transforms JSON data as it seen it *.xod files to
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
|
||||
import runtime from 'raw!./runtime';
|
||||
import transform from './transformer';
|
||||
|
||||
export default function transpile(project) {
|
||||
const transformedProject = transform(project);
|
||||
const payload = `var project = ${JSON.stringify(transformedProject)};`;
|
||||
export default function transpile({ project, runtime }) {
|
||||
const nodes = transform(project);
|
||||
const payload = [
|
||||
`var nodes = ${JSON.stringify(nodes)};`,
|
||||
'var project = new Project(nodes);',
|
||||
'function onInit() {',
|
||||
' project.launch();',
|
||||
'}',
|
||||
].join('\n');
|
||||
const save = 'save();';
|
||||
|
||||
return [
|
||||
payload,
|
||||
runtime,
|
||||
payload,
|
||||
save,
|
||||
'',
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user