/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor
 * license agreements. See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership. The ASF licenses this file to You 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.
 */

const configuredBasePath = document.querySelector<HTMLMetaElement>('meta[name="canopy-base-path"]')?.content || '/';

export const canopyBasePath = configuredBasePath === '/' ? undefined : configuredBasePath;

export function canopyPath(path: string): string {
  const relativePath = path.replace(/^\/+/, '');
  const url = new URL(relativePath, document.baseURI);
  return `${url.pathname}${url.search}${url.hash}`;
}
