Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 4x 4x 4x 4x 1x 4x 4x 4x 4x 3x 1x 2x 4x 4x 4x 2x 4x 2x | /**
* @module Engine.Commands.Tasks
* Save a database file
*/
import * as fs from 'fs';
import { List, Map } from 'immutable';
import * as path from 'path';
declare var __basedir: string;
const saveDatabase = (databaseName: string, values: Map<string, any> | List<any>, format: string, serializer?: (source) => any): void => {
if (!fs.existsSync(path.join(__basedir, process.env.SERVER_DATA))) {
fs.mkdirSync(path.join(__basedir, process.env.SERVER_DATA));
}
const database = path.join(__basedir, process.env.SERVER_DATA, `${databaseName}.json`);
console.log(`saving database ${database}`);
let serializedValues = values;
if (serializer) {
if (format === 'array') {
serializedValues = (values as List<any>).map(serializer);
} else {
serializedValues = (values as Map<string, any>).map(value => serializer(value));
}
}
const data = {
format,
data: serializedValues.toJSON(),
};
fs.writeFileSync(database, JSON.stringify(data, null, 2));
};
export const saveDatabaseMap =
<V>(databaseName: string, values: Map<string, V>, serializer?: (source) => any) =>
saveDatabase(databaseName, values, 'keyvalue', serializer);
export const saveDatabaseList =
<V>(databaseName: string, values: List<V>, serializer?: (source) => any) =>
saveDatabase(databaseName, values, 'array', serializer);
|