@finos/legend-studio
Version:
119 lines • 6.84 kB
JavaScript
/**
* Copyright (c) 2020-present, Goldman Sachs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { generateGAVCoordinates } from '@finos/legend-server-depot';
import { WorkspaceType } from '@finos/legend-server-sdlc';
import { guaranteeNonNullable } from '@finos/legend-shared';
import { generatePath } from 'react-router';
export var LEGEND_STUDIO_PATH_PARAM_TOKEN;
(function (LEGEND_STUDIO_PATH_PARAM_TOKEN) {
LEGEND_STUDIO_PATH_PARAM_TOKEN["PROJECT_ID"] = "projectId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["WORKSPACE_ID"] = "workspaceId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["GROUP_WORKSPACE_ID"] = "groupWorkspaceId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["REVISION_ID"] = "revisionId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["VERSION_ID"] = "versionId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["REVIEW_ID"] = "reviewId";
LEGEND_STUDIO_PATH_PARAM_TOKEN["ENTITY_PATH"] = "entityPath";
LEGEND_STUDIO_PATH_PARAM_TOKEN["GAV"] = "gav";
})(LEGEND_STUDIO_PATH_PARAM_TOKEN = LEGEND_STUDIO_PATH_PARAM_TOKEN || (LEGEND_STUDIO_PATH_PARAM_TOKEN = {}));
export const LEGEND_STUDIO_ROUTE_PATTERN = Object.freeze({
VIEW: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}`,
VIEW_BY_GAV: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}`,
VIEW_BY_GAV_ENTITY: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
VIEW_BY_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
VIEW_BY_REVISION: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/revision/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVISION_ID}`,
VIEW_BY_VERSION: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/version/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.VERSION_ID}`,
VIEW_BY_REVISION_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/revision/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVISION_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
VIEW_BY_VERSION_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/version/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.VERSION_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
REVIEW: `/review/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVIEW_ID}`,
EDIT: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}/`,
EDIT_GROUP: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
SETUP: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}?/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}?`,
SETUP_GROUP: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
});
const generateGroupWorkspaceSetupRoute = (projectId, groupWorkspaceId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP, {
// FIXME: due to some problem with typings, we will need to cast like this
// we will fix this when upgrading react-router
// See https://github.com/finos/legend-studio/issues/688
projectId: projectId,
groupWorkspaceId,
});
const generateWorkspaceSetupRoute = (projectId, workspaceId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP, {
// FIXME: due to some problem with typings, we will need to cast like this
// we will fix this when upgrading react-router
// See https://github.com/finos/legend-studio/issues/688
projectId: projectId,
// FIXME: due to some problem with typings, we will need to cast like this
// we will fix this when upgrading react-router
// See https://github.com/finos/legend-studio/issues/688
workspaceId: workspaceId,
});
export const generateSetupRoute = (projectId, workspaceId, workspaceType) => workspaceType === WorkspaceType.GROUP
? generateGroupWorkspaceSetupRoute(projectId, guaranteeNonNullable(workspaceId))
: generateWorkspaceSetupRoute(projectId, workspaceId);
const generateGroupWorkspaceEditorRoute = (projectId, groupWorkspaceId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP, {
projectId,
groupWorkspaceId,
});
const generateWorkspaceEditorRoute = (projectId, workspaceId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT, {
projectId,
workspaceId,
});
export const generateEditorRoute = (projectId, workspaceId, workspaceType) => workspaceType === WorkspaceType.GROUP
? generateGroupWorkspaceEditorRoute(projectId, workspaceId)
: generateWorkspaceEditorRoute(projectId, workspaceId);
export const generateReviewRoute = (projectId, reviewId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.REVIEW, {
projectId,
reviewId,
});
export const generateViewProjectRoute = (projectId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW, {
projectId,
});
export const generateViewEntityRoute = (projectId, entityPath) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_ENTITY, {
projectId,
entityPath,
});
export const generateViewProjectByGAVRoute = (groupId, artifactId, versionId, entityPath) => !entityPath
? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV, {
gav: generateGAVCoordinates(groupId, artifactId, versionId),
})
: generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV_ENTITY, {
gav: generateGAVCoordinates(groupId, artifactId, versionId),
entityPath,
});
export const generateViewProjectEntityByGAVRoute = (groupId, artifactId, versionId) => generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV, {
gav: generateGAVCoordinates(groupId, artifactId, versionId),
});
export const generateViewVersionRoute = (projectId, versionId, entityPath) => !entityPath
? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_VERSION, {
projectId,
versionId,
})
: generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_VERSION_ENTITY, {
projectId,
versionId,
entityPath,
});
export const generateViewRevisionRoute = (projectId, revisionId, entityPath) => !entityPath
? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_REVISION, {
projectId,
revisionId,
})
: generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_REVISION_ENTITY, {
projectId,
revisionId,
entityPath,
});
//# sourceMappingURL=LegendStudioRouter.js.map