1
0
mirror of https://github.com/simple-icons/simple-icons.git synced 2025-11-23 21:34:49 +02:00

Drop icons property from icons data file (#12415)

This commit is contained in:
Álvaro Mondéjar Rubio
2024-12-21 23:43:30 +01:00
committed by GitHub
parent 4d0957c1c2
commit 8ade661642
9 changed files with 18399 additions and 18410 deletions

View File

@@ -159,14 +159,6 @@
"pattern": "^https://[^\\s]+$"
}
},
"type": "object",
"properties": {
"icons": {
"description": "A list of brands",
"type": "array",
"items": {"$ref": "#/definitions/brand"}
}
},
"additionalProperties": false,
"required": ["icons"]
}

View File

@@ -1,5 +1,4 @@
{
"icons": [
[
{
"title": ".ENV",
"hex": "ECD53F",
@@ -18381,5 +18380,4 @@
"hex": "B02CCE",
"source": "https://www.zyte.com"
}
]
}
]

View File

@@ -27,7 +27,7 @@ import {
writeIconsData,
} from './utils.js';
/** @type {{icons: import('../sdk.js').IconData[]}} */
/** @type {import('../sdk.js').IconData[]} */
const iconsData = JSON.parse(await getIconsDataString());
const jsonSchema = await getJsonSchemaData();
@@ -65,7 +65,7 @@ const isValidHexColor = (input) =>
* @returns {boolean} Whether the icon is new.
*/
const isNewIcon = (input) =>
!iconsData.icons.some(
!iconsData.some(
(icon) =>
icon.title === input || titleToSlug(icon.title) === titleToSlug(input),
);
@@ -169,8 +169,8 @@ try {
message: 'Is this OK?',
})
) {
iconsData.icons.push(answers);
iconsData.icons.sort(sortIconsCompare);
iconsData.push(answers);
iconsData.sort(sortIconsCompare);
await writeIconsData(iconsData);
process.stdout.write(chalk.green('\nData written successfully.\n'));
} else {

View File

@@ -6,5 +6,5 @@ import {getIconsDataString} from '../sdk.mjs';
import {sortIconsCompare, writeIconsData} from './utils.js';
const iconsData = JSON.parse(await getIconsDataString());
iconsData.icons.sort(sortIconsCompare);
iconsData.sort(sortIconsCompare);
writeIconsData(iconsData);

View File

@@ -13,7 +13,7 @@ const icons = await getIconsData();
const schema = await getJsonSchemaData();
const validator = new Validator();
const result = validator.validate({icons}, schema);
const result = validator.validate(icons, schema);
if (result.errors.length > 0) {
for (const error of result.errors) console.error(error);
console.error(`Found ${result.errors.length} error(s) in simple-icons.json`);

View File

@@ -7,7 +7,6 @@
/**
* @typedef {import("../../sdk.mjs").IconData} IconData
* @typedef {import("../../types.js").CustomLicense} CustomLicense
* @typedef {IconData[]} IconsData
*/
import path from 'node:path';
@@ -23,15 +22,15 @@ import {getSpdxLicenseIds, sortIconsCompare} from '../utils.js';
/**
* Contains our tests so they can be isolated from each other.
* @type {{[k: string]: (data: {icons: IconsData}, dataString: string) => Promise<string | undefined> | string | undefined}}
* @type {{[k: string]: (data: IconData[], dataString: string) => Promise<string | undefined> | string | undefined}}
*/
const TESTS = {
/**
* Tests whether our icons are in alphabetical order.
* @param {{icons: IconsData}} data Icons data.
* @param {IconData[]} icons Icons data.
* @returns {string|undefined} Error message or undefined.
*/
alphabetical({icons}) {
alphabetical(icons) {
/**
* Collects invalid alphabet ordered icons.
* @param {IconData[]} invalidEntries Invalid icons reference.
@@ -111,7 +110,7 @@ ${invalids.map((icon) => `${format(icon)} ${findPositon(expectedOrder, icon)}`).
},
/* Check redundant trailing slash in URL */
checkUrl({icons}) {
checkUrl(icons) {
/**
* Check if an URL has a redundant trailing slash.
* @param {URL} $url URL instance.
@@ -226,7 +225,7 @@ ${invalids.map((icon) => `${format(icon)} ${findPositon(expectedOrder, icon)}`).
},
/* Check if all licenses are valid SPDX identifiers */
async checkLicense({icons}) {
async checkLicense(icons) {
const spdxLicenseIds = new Set(await getSpdxLicenseIds());
const badLicenses = [];
for (const {title, slug, license} of icons) {
@@ -247,7 +246,7 @@ ${invalids.map((icon) => `${format(icon)} ${findPositon(expectedOrder, icon)}`).
},
/* Ensure that fields are sorted in the same way for all icons */
fieldsSorted({icons}) {
fieldsSorted(icons) {
const expectedOrder = [
'title',
'slug',

View File

@@ -6,4 +6,4 @@ import {getIconsData} from '../../sdk.mjs';
import {writeIconsData} from '../utils.js';
const icons = await getIconsData();
await writeIconsData({icons}, undefined, true);
await writeIconsData(icons, undefined, true);

View File

@@ -34,7 +34,7 @@ export const getJsonSchemaData = async (
/**
* Write icons data to _data/simple-icons.json.
* @param {{icons: IconData[]}} iconsData Icons data object.
* @param {IconData[]} iconsData Icons data array.
* @param {string} rootDirectory Path to the root directory of the project.
* @param {boolean} minify Whether to minify the JSON output.
*/

View File

@@ -170,7 +170,7 @@ export const getIconsData = async (
rootDirectory = getDirnameFromImportMeta(import.meta.url),
) => {
const fileContents = await getIconsDataString(rootDirectory);
return JSON.parse(fileContents).icons;
return JSON.parse(fileContents);
};
/**