Skip to content

Commit

Permalink
fix: Revert moving createIcons to separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
ericfennis committed Apr 26, 2024
1 parent 354af45 commit 89f6b63
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 41 deletions.
37 changes: 0 additions & 37 deletions packages/lucide/src/createIcons.ts

This file was deleted.

40 changes: 36 additions & 4 deletions packages/lucide/src/lucide.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,41 @@
import replaceElement from './replaceElement';
import * as iconAndAliases from './iconsAndAliases';

/*
Create Icons function export.
*/
export { default as createIcons } from './createIcons';
/**
* Replaces all elements with matching nameAttr with the defined icons
* @param {{ icons?: object, nameAttr?: string, attrs?: object }} options
*/
const createIcons = ({ icons = {}, nameAttr = 'data-lucide', attrs = {} } = {}) => {
if (!Object.values(icons).length) {
throw new Error(
"Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`",
);
}

if (typeof document === 'undefined') {
throw new Error('`createIcons()` only works in a browser environment.');
}

const elementsToReplace = document.querySelectorAll(`[${nameAttr}]`);
Array.from(elementsToReplace).forEach((element) =>
replaceElement(element, { nameAttr, icons, attrs }),
);

/** @todo: remove this block in v1.0 */
if (nameAttr === 'data-lucide') {
const deprecatedElements = document.querySelectorAll('[icon-name]');
if (deprecatedElements.length > 0) {
console.warn(
'[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',
);
Array.from(deprecatedElements).forEach((element) =>
replaceElement(element, { nameAttr: 'icon-name', icons, attrs }),
);
}
}
};

export { createIcons };

/*
Create Element function export.
Expand Down

0 comments on commit 89f6b63

Please sign in to comment.