@kui-shell/plugin-tutorials
Version:
IBM Cloud shell plugin for tutorials
48 lines • 2.29 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = require("debug");
const path_1 = require("path");
const debug = debug_1.default('plugins/tutorials/utils');
const top = path_1.resolve(path_1.join(__dirname, '../../'));
exports.contentDir = path_1.join(top, 'samples/@tutorials');
exports.projectHome = projectName => path_1.join(exports.contentDir, projectName);
const readJSON = (projectHome, fileName) => new Promise((resolve, reject) => {
debug('readJSON');
try {
if (projectHome.indexOf('@tutorials') >= 0) {
const projectName = path_1.basename(projectHome);
debug('reading built-in', projectName, fileName);
resolve(require('@kui-shell/plugin-tutorials/samples/@tutorials/' + projectName + '/' + fileName));
}
else {
debug('reading external', projectHome, fileName);
resolve(path_1.join(projectHome, fileName));
}
}
catch (err) {
reject(err);
}
});
exports.readProject = (projectHome) => __awaiter(void 0, void 0, void 0, function* () {
debug('readProject', projectHome);
if (path_1.basename(projectHome) === 'package.json') {
return exports.readProject(path_1.dirname(projectHome));
}
return Promise.all([readJSON(projectHome, 'package.json'), readJSON(projectHome, 'tutorial.json')]).then(([config, tutorial]) => {
return {
config: Object.assign({}, { projectName: config.name }, config),
tutorial,
projectHome
};
});
});
//# sourceMappingURL=util.js.map