ligo/tools/webide/packages/server/src/load-state.ts

51 lines
1.3 KiB
TypeScript
Raw Normal View History

import fs from 'fs';
import { join } from 'path';
function readFile(path: string): Promise<string> {
return new Promise((resolve, reject) => {
fs.readFile(path, 'utf8', (error, content) => {
if (error) {
reject(error);
} else {
resolve(content);
}
});
});
}
export async function loadDefaultState(appBundleDirectory: string) {
const examples = await readFile(
join(appBundleDirectory, 'static', 'examples', 'list')
);
const examplesList = JSON.parse(examples);
const defaultState = {
compile: {},
dryRun: {},
deploy: {},
evaluateValue: {},
evaluateFunction: {},
editor: {},
examples: {
selected: null,
list: examplesList
}
};
if (examplesList[0]) {
const example = await readFile(
join(appBundleDirectory, 'static', 'examples', examplesList[0].id)
);
const defaultExample = JSON.parse(example);
defaultState.compile = defaultExample.compile;
defaultState.dryRun = defaultExample.dryRun;
defaultState.deploy = defaultExample.deploy;
defaultState.evaluateValue = defaultExample.evaluateValue;
defaultState.evaluateFunction = defaultExample.evaluateFunction;
defaultState.editor = defaultExample.editor;
defaultState.examples.selected = defaultExample;
}
return defaultState;
}