29 lines
No EOL
902 B
JavaScript
29 lines
No EOL
902 B
JavaScript
import { satisfies } from "semver";
|
|
import { $fetch } from "ofetch";
|
|
import { parseINI } from "confbox";
|
|
|
|
//#region ../nuxi/src/commands/module/_utils.ts
|
|
async function fetchModules() {
|
|
const { modules } = await $fetch(`https://api.nuxt.com/modules?version=all`);
|
|
return modules;
|
|
}
|
|
function checkNuxtCompatibility(module, nuxtVersion) {
|
|
if (!module.compatibility?.nuxt) return true;
|
|
return satisfies(nuxtVersion, module.compatibility.nuxt, { includePrerelease: true });
|
|
}
|
|
function getRegistryFromContent(content, scope) {
|
|
try {
|
|
const npmConfig = parseINI(content);
|
|
if (scope) {
|
|
const scopeKey = `${scope}:registry`;
|
|
if (npmConfig[scopeKey]) return npmConfig[scopeKey].trim();
|
|
}
|
|
if (npmConfig.registry) return npmConfig.registry.trim();
|
|
return null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
//#endregion
|
|
export { fetchModules as n, getRegistryFromContent as r, checkNuxtCompatibility as t }; |