c12 icon indicating copy to clipboard operation
c12 copied to clipboard

Extends don't work with custom providers

Open baha96 opened this issue 1 year ago • 0 comments

Environment

Operating System: MacOs Node Version: v20.3.1 Nuxt Version: 3.12.2 Nitro Version: v2.9.6 Package Manager: [email protected]

Reproduction

https://stackblitz.com/edit/github-cfzuw7?file=nuxt.config.ts

Describe the bug

https://github.com/unjs/giget?tab=readme-ov-file#custom-providers

const rainbow: TemplateProvider = input => {
  const repoUrl = `https://gitlab.com/baha96/${input}`
  const repoTarUrl =
    'https://gitlab.com/api/v4/projects/59118921/repository/archive.tar.gz?private_token=glpat-5G8Rh7rzKDq5XPDYYDou&sha=51555e794bd6f20f4afdd9aa966c7db063d3ee0f'

  return {
    name: 'rainbow',
    version: input,
    headers: {
      'Accept': 'application/octet-stream',
      'sec-fetch-mode': 'same-origin'
    },
    url: repoUrl,
    tar: repoTarUrl
  }
}

in nuxt.config

extends: [
      [
        'rainbow:test',
        {
          giget: {
            providers: { rainbow },
            force: true,
            forceClean: true,
            auth: 'glpat-5G8Rh7rzKDq5XPDYYDou'
          },
          auth: 'glpat-5G8Rh7rzKDq5XPDYYDou'
        }
      ]
]

After receiving a warning [12:19:21 PM] WARN Cannot extend config from rainbow:test in /PhpstormProjects/app-nuxt-3

Did some research In node_modules/c12/dist/shared/c12.cab0c9da.mjs and node_modules/c12/dist/shared/c12.24612422.cjs the files has a variable like this GIGET_PREFIXES

const GIGET_PREFIXES = [
  "gh:",
  "github:",
  "gitlab:",
  "bitbucket:",
  "https://",
  "http://"
];
if (GIGET_PREFIXES.some((prefix) => source.startsWith(prefix))) {
   ....
}

https://github.com/unjs/c12/blob/ed4ce55e2cf7c56dcb171c379285ab568948c3fc/src/loader.ts#L306

and due to the fact that the variable does not contain a custom provider, it does not work

Additional context

No response

Logs

No response

baha96 avatar Jun 25 '24 07:06 baha96