coffeebreak-lib
Version:
Coffeebreak lib used by Coffeebreak CLI and Coffeebreak App
61 lines (54 loc) • 4.13 kB
JavaScript
module.exports.__fsLocationMap = [[1, 13, 3, 7], [1, 21, 3, 20], [3, 8, 4, 1], [3, 14, 4, 7], [4, 5, 5, 3], [4, 18, 5, 16], [4, 18, 6, 5], [4, 18, 6, 12], [5, 9, 7, 5], [5, 14, 7, 10], [5, 27, 7, 23], [5, 32, 7, 28], [5, 46, 7, 42], [5, 54, 7, 50], [5, 58, 7, 54], [5, 77, 7, 73], [5, 80, 7, 76], [5, 88, 7, 84], [5, 92, 7, 88], [6, 9, 8, 5], [6, 15, 8, 11], [6, 24, 8, 20], [6, 32, 8, 28], [6, 37, 8, 33], [7, 9, 9, 5], [7, 16, 9, 12], [7, 30, 9, 26], [7, 37, 9, 33], [7, 52, 9, 48], [7, 55, 9, 51], [7, 63, 9, 59], [7, 67, 9, 63], [8, 9, 10, 5], [8, 16, 10, 12], [8, 25, 10, 21], [8, 33, 10, 29], [8, 34, 10, 30], [9, 13, 11, 7], [9, 18, 11, 12], [9, 29, 11, 23], [9, 34, 11, 28], [9, 39, 11, 33], [9, 47, 11, 41], [9, 54, 11, 48], [9, 67, 11, 61], [11, 9, 13, 5], [11, 16, 13, 12], [11, 23, 13, 19], [11, 29, 13, 25], [13, 5, 16, 3], [14, 9, 18, 5], [15, 13, 19, 7], [15, 19, 19, 13], [15, 33, 19, 27], [16, 13, 20, 7], [16, 19, 20, 13], [16, 33, 20, 27], [19, 5, 24, 3], [20, 9, 26, 5], [20, 15, 26, 11], [20, 25, 26, 21], [20, 30, 26, 26], [20, 39, 26, 35], [20, 44, 26, 40], [20, 45, 26, 41], [21, 13, 27, 7], [21, 20, 27, 14], [21, 22, 27, 16], [21, 31, 27, 25], [24, 9, 29, 5], [24, 16, 29, 12], [26, 5, 32, 3], [27, 9, 34, 5], [27, 12, 34, 9], [27, 17, 34, 14], [27, 31, 34, 28], [28, 13, 35, 7], [28, 19, 35, 13], [28, 23, 35, 17], [28, 29, 35, 23], [30, 9, 37, 5], [30, 14, 37, 10], [30, 23, 37, 19], [30, 28, 37, 24], [31, 9, 38, 5], [31, 15, 38, 11], [31, 28, 38, 24], [31, 33, 38, 29], [32, 13, 39, 7], [32, 23, 39, 17], [32, 28, 39, 22], [33, 12, 40, 8], [33, 18, 40, 14], [35, 9, 41, 5], [35, 12, 41, 8], [35, 26, 41, 22], [35, 31, 41, 27], [35, 43, 41, 39], [37, 5, 44, 3], [38, 9, 46, 5], [38, 16, 46, 12], [38, 21, 46, 17], [38, 30, 46, 26], [38, 35, 46, 31], [38, 36, 46, 32], [39, 13, 47, 7], [39, 20, 47, 14], [39, 28, 47, 22], [39, 37, 47, 31], [39, 51, 47, 45], [39, 59, 47, 53], [39, 67, 47, 61], [39, 76, 47, 70], [39, 90, 47, 84], [42, 5, 51, 3], [42, 10, 51, 8], [43, 9, 52, 5], [43, 16, 52, 12], [43, 21, 52, 17], [43, 30, 52, 26], [43, 34, 52, 30], [45, 5, 55, 3], [45, 13, 55, 11], [46, 9, 56, 5], [46, 16, 56, 12], [46, 21, 56, 17], [46, 30, 56, 26], [46, 37, 56, 33], [3, 14, 59, 16], [3, 14, 59, 32]];
module.exports.__esModule = true;
const FirescriptRuntime = require('firescript-runtime').FirescriptRuntime;
const fs = require('fs');
class ProjectConfig {
constructor (opts) {
opts = opts || {};
this.configFile = opts.configFile || process.env.CB_PROJECTS_DIR || `${process.env.HOME}/.coffeebreak/projects.json`;
const config = require(this.configFile);
config.projectRoot = config.projectRoot || `${process.env.HOME}/Projects/`;
config.projects.forEach((conf) => {
conf.relative = conf.path.replace(config.projectRoot, '');
});
Object.assign(this, config);
}
create (projectConfig) {
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_OBJ, projectConfig, 'projectConfig');
return {
name: projectConfig.name,
path: projectConfig.path
};
}
getByPath (projectPath) {
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_STR, projectPath, 'projectPath');
const project = this.projects.find((p) => {
return p.path === projectPath;
});
return project;
}
addProject (projectConfig) {
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_OBJ, projectConfig, 'projectConfig');
if (this.projectExists(projectConfig)) {
throw new Error('Project already exists');
}
this.projects.push(projectConfig);
const configJSON = JSON.stringify({
projects: this.projects
}, null, ' ');
fs.writeFileSync(this.configFile, configJSON);
}
projectExists (projectConfig) {
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_OBJ, projectConfig, 'projectConfig');
return this.projects.some((project) => {
return project.name === projectConfig.name || project.path === projectConfig.path;
});
}
map (fn) {
return this.projects.map(fn);
}
filter (fn) {
return this.projects.filter(fn);
}
}
module.exports.ProjectConfig = ProjectConfig;