| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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 };
|