astro-ghostcms/.pnpm-store/v3/files/c2/400dce4632193aeb622e893e7af...

75 lines
1.9 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
import { loadCollectionFromFS } from './fs.mjs';
import { searchForIcon } from './modern.mjs';
import { warnOnce } from './warn.mjs';
import { getPossibleIconNames } from './utils.mjs';
import 'fs';
import 'local-pkg';
import './install-pkg.mjs';
import '@antfu/install-pkg';
import '@antfu/utils';
import 'kolorist';
import 'mlly';
import '../svg/build.mjs';
import '../icon/defaults.mjs';
import '../customisations/defaults.mjs';
import '../svg/size.mjs';
import '../svg/defs.mjs';
import '../icon-set/get-icon.mjs';
import '../icon/merge.mjs';
import '../icon/transformations.mjs';
import '../icon-set/tree.mjs';
import 'debug';
function createExternalPackageIconLoader(packageName, autoInstall = false, cwd) {
let scope;
let collection;
const collections = {};
if (typeof packageName === "string") {
if (packageName.length === 0) {
warnOnce(`invalid package name, it is empty`);
return collections;
}
if (packageName[0] === "@") {
if (packageName.indexOf("/") === -1) {
warnOnce(`invalid scoped package name "${packageName}"`);
return collections;
}
[scope, collection] = packageName.split("/");
} else {
scope = "";
collection = packageName;
}
} else {
[scope, collection] = packageName;
}
collections[collection] = createCustomIconLoader(
scope,
collection,
autoInstall,
cwd
);
return collections;
}
function createCustomIconLoader(scope, collection, autoInstall, cwd) {
const iconSetPromise = loadCollectionFromFS(
collection,
autoInstall,
scope,
cwd
);
return async (icon) => {
const iconSet = await iconSetPromise;
let result;
if (iconSet) {
result = await searchForIcon(
iconSet,
collection,
getPossibleIconNames(icon)
);
}
return result;
};
}
export { createExternalPackageIconLoader };