@neo-one/server-plugin-project
Version:
NEO•ONE server plugin for project functionality.
42 lines (40 loc) • 5.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
const operators_1 = require("rxjs/operators");
const getProjectResourceManager_1 = require("./getProjectResourceManager");
const paths_1 = require("./paths");
const projectIDRegex = /@projectID ([0-9a-z-]+)/;
const loadProjectIDFromFile = async (projectConfig) => {
const { projectIDPath: projectIDPathIn } = paths_1.getCommonPaths(projectConfig);
const projectIDPath = projectConfig.codegen.language === 'javascript' ? projectIDPathIn : paths_1.getTSPath(projectIDPathIn);
const exists = await fs_extra_1.default.pathExists(projectIDPath);
if (exists) {
const contents = await fs_extra_1.default.readFile(projectIDPath, 'utf8');
const match = projectIDRegex.exec(contents);
if (match !== null) {
return match[1];
}
}
return undefined;
};
exports.loadProjectID = async (pluginManager, projectConfig, options) => {
const resourceManager = getProjectResourceManager_1.getProjectResourceManager(pluginManager);
const [projects, projectID] = await Promise.all([
resourceManager
.getResources$({})
.pipe(operators_1.take(1))
.toPromise(),
loadProjectIDFromFile(projectConfig),
]);
if (projectID !== undefined) {
return projectID;
}
const project = projects.find((proj) => proj.rootDir === options.rootDir);
if (project !== undefined) {
return project.name;
}
return undefined;
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRQcm9qZWN0SUQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0VBQTBCO0FBQzFCLDhDQUFzQztBQUd0QywyRUFBd0U7QUFDeEUsbUNBQW9EO0FBRXBELE1BQU0sY0FBYyxHQUFHLHlCQUF5QixDQUFDO0FBRWpELE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUFFLGFBQTRCLEVBQStCLEVBQUU7SUFDaEcsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsR0FBRyxzQkFBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXpFLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxpQkFBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXJILE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLFFBQVEsR0FBRyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtLQUNGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsS0FBSyxFQUNoQyxhQUE0QixFQUM1QixhQUE0QixFQUM1QixPQUErQixFQUNGLEVBQUU7SUFDL0IsTUFBTSxlQUFlLEdBQUcscURBQXlCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakUsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDOUMsZUFBZTthQUNaLGFBQWEsQ0FBQyxFQUFFLENBQUM7YUFDakIsSUFBSSxDQUFDLGdCQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLEVBQUU7UUFDZCxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7S0FDckMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztLQUNyQjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXNlcnZlci1wbHVnaW4tcHJvamVjdC9zcmMvdXRpbHMvbG9hZFByb2plY3RJRC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvamVjdFJlc291cmNlT3B0aW9ucyB9IGZyb20gJy4uL1Byb2plY3RSZXNvdXJjZVR5cGUnO1xuaW1wb3J0IHsgUHJvamVjdENvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldFByb2plY3RSZXNvdXJjZU1hbmFnZXIgfSBmcm9tICcuL2dldFByb2plY3RSZXNvdXJjZU1hbmFnZXInO1xuaW1wb3J0IHsgZ2V0Q29tbW9uUGF0aHMsIGdldFRTUGF0aCB9IGZyb20gJy4vcGF0aHMnO1xuXG5jb25zdCBwcm9qZWN0SURSZWdleCA9IC9AcHJvamVjdElEIChbMC05YS16LV0rKS87XG5cbmNvbnN0IGxvYWRQcm9qZWN0SURGcm9tRmlsZSA9IGFzeW5jIChwcm9qZWN0Q29uZmlnOiBQcm9qZWN0Q29uZmlnKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID0+IHtcbiAgY29uc3QgeyBwcm9qZWN0SURQYXRoOiBwcm9qZWN0SURQYXRoSW4gfSA9IGdldENvbW1vblBhdGhzKHByb2plY3RDb25maWcpO1xuXG4gIGNvbnN0IHByb2plY3RJRFBhdGggPSBwcm9qZWN0Q29uZmlnLmNvZGVnZW4ubGFuZ3VhZ2UgPT09ICdqYXZhc2NyaXB0JyA/IHByb2plY3RJRFBhdGhJbiA6IGdldFRTUGF0aChwcm9qZWN0SURQYXRoSW4pO1xuXG4gIGNvbnN0IGV4aXN0cyA9IGF3YWl0IGZzLnBhdGhFeGlzdHMocHJvamVjdElEUGF0aCk7XG4gIGlmIChleGlzdHMpIHtcbiAgICBjb25zdCBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKHByb2plY3RJRFBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgbWF0Y2ggPSBwcm9qZWN0SURSZWdleC5leGVjKGNvbnRlbnRzKTtcbiAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtYXRjaFsxXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRQcm9qZWN0SUQgPSBhc3luYyAoXG4gIHBsdWdpbk1hbmFnZXI6IFBsdWdpbk1hbmFnZXIsXG4gIHByb2plY3RDb25maWc6IFByb2plY3RDb25maWcsXG4gIG9wdGlvbnM6IFByb2plY3RSZXNvdXJjZU9wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4gPT4ge1xuICBjb25zdCByZXNvdXJjZU1hbmFnZXIgPSBnZXRQcm9qZWN0UmVzb3VyY2VNYW5hZ2VyKHBsdWdpbk1hbmFnZXIpO1xuICBjb25zdCBbcHJvamVjdHMsIHByb2plY3RJRF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgcmVzb3VyY2VNYW5hZ2VyXG4gICAgICAuZ2V0UmVzb3VyY2VzJCh7fSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAudG9Qcm9taXNlKCksXG4gICAgbG9hZFByb2plY3RJREZyb21GaWxlKHByb2plY3RDb25maWcpLFxuICBdKTtcblxuICBpZiAocHJvamVjdElEICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvamVjdElEO1xuICB9XG5cbiAgY29uc3QgcHJvamVjdCA9IHByb2plY3RzLmZpbmQoKHByb2opID0+IHByb2oucm9vdERpciA9PT0gb3B0aW9ucy5yb290RGlyKTtcbiAgaWYgKHByb2plY3QgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm9qZWN0Lm5hbWU7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbiJdfQ==