import type { Plugin } from "@dpkit/core"
import { isRemotePath } from "@dpkit/core"
import { loadPackageFromCkan } from "./package/load.ts"

export class CkanPlugin implements Plugin {
  async loadPackage(source: string) {
    const isCkan = getIsCkan(source)
    if (!isCkan) return undefined

    const dataPackage = await loadPackageFromCkan(source)
    return dataPackage
  }
}

function getIsCkan(path: string) {
  const isRemote = isRemotePath(path)
  if (!isRemote) return false

  return path.includes("/dataset/")
}
