fix: Run updateNpm.js and updatePublint.js in chunked pages (#536)

* fix: Run `updateNpm` and `updatePublint` in chunked pages

* Object shorthand
This commit is contained in:
Lachlan Collins
2023-12-21 10:42:31 +11:00
committed by GitHub
parent 9d6c7c55dc
commit 615adbaea6
5 changed files with 103 additions and 74 deletions

View File

@@ -1,8 +1,9 @@
/** /**
* Divide an array into multiple smaller array * Divide an array into multiple smaller array
* @param {Array} input * @template T
* @param {Array<T>} input
* @param {number} size * @param {number} size
* @return {Array<Array>} * @return {Array<Array<T>>}
*/ */
export function chunk(input, size) { export function chunk(input, size) {
size = size < 1 ? 10 : size; size = size < 1 ? 10 : size;

View File

@@ -5,21 +5,33 @@ import { promisify } from 'node:util';
import { exec } from 'node:child_process'; import { exec } from 'node:child_process';
import { packagesSchema } from '../src/lib/schemas.js'; import { packagesSchema } from '../src/lib/schemas.js';
import packages from '../src/routes/packages/packages.json' assert { type: 'json' }; import packages from '../src/routes/packages/packages.json' assert { type: 'json' };
import { chunk } from './chunk.js';
const execAsync = promisify(exec); const execAsync = promisify(exec);
const data = packagesSchema.parse(packages); const data = packagesSchema.parse(packages);
const npm = await Promise.all( console.log('Found ' + data.length + ' packages');
data.map((pkg) => processPackage(pkg).catch((error) => console.log(error.message)))
).then((values) => {
return values.reduce(
(result, value) => Object.assign(result, value),
/** @type {Record<string, any>} */ ({})
);
});
writeFileSync('src/lib/data/npm.json', JSON.stringify(npm)); const pagedData = chunk(data, 100);
const lines = [];
for (let index = 0; index < pagedData.length; index++) {
const page = pagedData[index];
console.log('Running for page ' + (index + 1) + '/' + pagedData.length);
await Promise.all(
page.map((pkg) => processPackage(pkg).catch((error) => console.log(error.message)))
).then((values) => {
lines.push(...values);
});
}
const output = lines.reduce(
(result, value) => Object.assign(result, value),
/** @type {Record<string, any>} */ ({})
);
writeFileSync('src/lib/data/npm.json', JSON.stringify(output));
/** @param {import('zod').infer<typeof packagesSchema>[0]} pkg */ /** @param {import('zod').infer<typeof packagesSchema>[0]} pkg */
async function processPackage(pkg) { async function processPackage(pkg) {
@@ -28,5 +40,5 @@ async function processPackage(pkg) {
const version = data.version; const version = data.version;
const date = data.time[version]; const date = data.time[version];
const support = data.peerDependencies?.svelte ? data.peerDependencies.svelte : 'Unknown'; const support = data.peerDependencies?.svelte ? data.peerDependencies.svelte : 'Unknown';
return { [pkg.npm]: { version: version, date: date, support: support } }; return { [pkg.npm]: { version, date, support } };
} }

View File

@@ -10,8 +10,7 @@ import npm from '../src/lib/data/npm.json' assert { type: 'json' };
import { publint } from 'publint'; import { publint } from 'publint';
import { untar } from './untar.js'; import { untar } from './untar.js';
import { createTarballVfs } from './tarball.js'; import { createTarballVfs } from './tarball.js';
import { chunk } from './chunk.js';
const dataWithoutVersions = packagesSchema.parse(packages);
/** @param {import('zod').infer<typeof packagesSchema>} input */ /** @param {import('zod').infer<typeof packagesSchema>} input */
const injectVersions = (input) => { const injectVersions = (input) => {
@@ -26,16 +25,27 @@ const injectVersions = (input) => {
return output; return output;
}; };
const dataWithVersions = injectVersions(dataWithoutVersions); const data = injectVersions(packagesSchema.parse(packages));
const output = await Promise.all( console.log('Found ' + data.length + ' packages');
dataWithVersions.map((pkg) => processPackage(pkg).catch((error) => console.log(error.message)))
).then((values) => { const pagedData = chunk(data, 100);
return values.reduce( const lines = [];
(result, value) => Object.assign(result, value),
/** @type {Record<string, any>} */ ({}) for (let index = 0; index < pagedData.length; index++) {
); const page = pagedData[index];
}); console.log('Running for page ' + (index + 1) + '/' + pagedData.length);
await Promise.all(
page.map((pkg) => processPackage(pkg).catch((error) => console.log(error.message)))
).then((values) => {
lines.push(...values);
});
}
const output = lines.reduce(
(result, value) => Object.assign(result, value),
/** @type {Record<string, any>} */ ({})
);
writeFileSync('src/lib/data/publint.json', JSON.stringify(output)); writeFileSync('src/lib/data/publint.json', JSON.stringify(output));

View File

@@ -39,38 +39,38 @@
}, },
"stwui": { "version": "0.18.13-next", "date": "2023-11-22T02:13:11.391Z", "support": "^4.2.2" }, "stwui": { "version": "0.18.13-next", "date": "2023-11-22T02:13:11.391Z", "support": "^4.2.2" },
"@sveltejs/adapter-auto": { "@sveltejs/adapter-auto": {
"version": "3.0.0", "version": "3.0.1",
"date": "2023-12-14T16:41:40.128Z", "date": "2023-12-19T19:39:49.339Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-netlify": { "@sveltejs/adapter-netlify": {
"version": "3.0.0", "version": "3.0.1",
"date": "2023-12-14T16:41:41.203Z", "date": "2023-12-19T19:39:51.107Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-cloudflare-workers": { "@sveltejs/adapter-cloudflare-workers": {
"version": "2.0.0", "version": "2.0.1",
"date": "2023-12-14T16:41:40.041Z", "date": "2023-12-19T19:39:49.246Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-cloudflare": { "@sveltejs/adapter-cloudflare": {
"version": "3.0.0", "version": "3.0.1",
"date": "2023-12-14T16:41:41.015Z", "date": "2023-12-19T19:39:50.348Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-node": { "@sveltejs/adapter-node": {
"version": "2.0.0", "version": "2.0.1",
"date": "2023-12-14T16:41:41.809Z", "date": "2023-12-19T19:39:51.596Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-static": { "@sveltejs/adapter-static": {
"version": "3.0.0", "version": "3.0.1",
"date": "2023-12-14T16:41:40.098Z", "date": "2023-12-19T19:39:49.829Z",
"support": "Unknown" "support": "Unknown"
}, },
"@sveltejs/adapter-vercel": { "@sveltejs/adapter-vercel": {
"version": "4.0.2", "version": "4.0.3",
"date": "2023-12-15T18:11:33.241Z", "date": "2023-12-19T19:39:49.465Z",
"support": "Unknown" "support": "Unknown"
}, },
"svelte-lazy-loader": { "svelte-lazy-loader": {
@@ -452,14 +452,14 @@
}, },
"@pwa/cli": { "version": "0.5.4", "date": "2020-04-16T19:10:28.055Z", "support": "Unknown" }, "@pwa/cli": { "version": "0.5.4", "date": "2020-04-16T19:10:28.055Z", "support": "Unknown" },
"svelte-inview": { "svelte-inview": {
"version": "4.0.1", "version": "4.0.2",
"date": "2023-07-06T19:22:22.187Z", "date": "2023-12-19T17:14:02.652Z",
"support": "^3.0.0 || ^4.0.0" "support": "^3.0.0 || ^4.0.0"
}, },
"smelte": { "version": "1.1.8", "date": "2021-09-06T04:05:31.316Z", "support": "Unknown" }, "smelte": { "version": "1.1.8", "date": "2021-09-06T04:05:31.316Z", "support": "Unknown" },
"@melt-ui/svelte": { "@melt-ui/svelte": {
"version": "0.66.0", "version": "0.66.1",
"date": "2023-12-17T19:07:43.635Z", "date": "2023-12-20T13:44:46.559Z",
"support": ">=3 <5" "support": ">=3 <5"
}, },
"radix-svelte": { "version": "0.9.0", "date": "2023-07-23T19:43:39.851Z", "support": "^4.1.1" }, "radix-svelte": { "version": "0.9.0", "date": "2023-07-23T19:43:39.851Z", "support": "^4.1.1" },
@@ -640,13 +640,13 @@
"support": "Unknown" "support": "Unknown"
}, },
"@storybook/sveltekit": { "@storybook/sveltekit": {
"version": "7.6.5", "version": "7.6.6",
"date": "2023-12-15T14:48:08.316Z", "date": "2023-12-19T13:44:04.243Z",
"support": "^3.0.0 || ^4.0.0" "support": "^3.0.0 || ^4.0.0"
}, },
"@storybook/svelte": { "@storybook/svelte": {
"version": "7.6.5", "version": "7.6.6",
"date": "2023-12-15T14:49:39.281Z", "date": "2023-12-19T13:45:37.299Z",
"support": "^3.1.0 || ^4.0.0" "support": "^3.1.0 || ^4.0.0"
}, },
"svelte-toolbox": { "svelte-toolbox": {
@@ -1026,8 +1026,8 @@
"support": "Unknown" "support": "Unknown"
}, },
"@skeletonlabs/skeleton": { "@skeletonlabs/skeleton": {
"version": "2.6.0", "version": "2.6.1",
"date": "2023-12-06T23:51:31.766Z", "date": "2023-12-19T17:56:46.349Z",
"support": "^3.56.0 || ^4.0.0" "support": "^3.56.0 || ^4.0.0"
}, },
"svelte-hover-draw-svg": { "svelte-hover-draw-svg": {
@@ -1035,10 +1035,10 @@
"date": "2023-03-28T15:40:25.598Z", "date": "2023-03-28T15:40:25.598Z",
"support": "^3.57.0" "support": "^3.57.0"
}, },
"casual-ui-svelte": { "@casual-ui/svelte": {
"version": "0.1.6", "version": "0.11.0",
"date": "2022-08-17T06:44:23.398Z", "date": "2023-08-15T13:27:51.840Z",
"support": "Unknown" "support": "^3.46.0 || ^4.0.0"
}, },
"@specialdoom/proi-ui": { "@specialdoom/proi-ui": {
"version": "4.1.8", "version": "4.1.8",
@@ -1106,14 +1106,14 @@
"date": "2023-11-20T23:09:44.582Z", "date": "2023-11-20T23:09:44.582Z",
"support": "^4.0.0" "support": "^4.0.0"
}, },
"simple-ui-components-in-svelte": { "@perfectthings/ui": {
"version": "5.1.1", "version": "9.3.2",
"date": "2023-03-13T21:47:08.449Z", "date": "2023-12-17T21:15:28.841Z",
"support": "Unknown" "support": "Unknown"
}, },
"@tanstack/svelte-query": { "@tanstack/svelte-query": {
"version": "5.14.1", "version": "5.14.2",
"date": "2023-12-17T14:29:17.604Z", "date": "2023-12-19T20:38:08.144Z",
"support": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0" "support": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0"
}, },
"@pragmatic-engineering/svelte-form-builder-community": { "@pragmatic-engineering/svelte-form-builder-community": {
@@ -1143,14 +1143,14 @@
"support": "Unknown" "support": "Unknown"
}, },
"svelte-droplet": { "svelte-droplet": {
"version": "1.0.0", "version": "1.0.1",
"date": "2023-09-10T01:26:39.221Z", "date": "2023-12-19T07:14:03.208Z",
"support": "^3.0.0 || ^4.0.0" "support": "^3.0.0 || ^4.0.0"
}, },
"chat-embed": { "version": "0.0.32", "date": "2023-03-18T13:25:04.673Z", "support": "Unknown" }, "chat-embed": { "version": "0.0.32", "date": "2023-03-18T13:25:04.673Z", "support": "Unknown" },
"lucide-svelte": { "lucide-svelte": {
"version": "0.298.0", "version": "0.299.0",
"date": "2023-12-16T14:48:21.770Z", "date": "2023-12-20T08:11:49.935Z",
"support": ">=3 <5" "support": ">=3 <5"
}, },
"yesvelte": { "yesvelte": {
@@ -1219,8 +1219,8 @@
"drab": { "version": "4.1.6", "date": "2023-12-12T18:06:20.879Z", "support": "Unknown" }, "drab": { "version": "4.1.6", "date": "2023-12-12T18:06:20.879Z", "support": "Unknown" },
"supasveltekit": { "version": "0.1.4", "date": "2023-12-02T20:04:37.024Z", "support": "^4.0.0" }, "supasveltekit": { "version": "0.1.4", "date": "2023-12-02T20:04:37.024Z", "support": "^4.0.0" },
"@jill64/sveltekit-adapter-aws": { "@jill64/sveltekit-adapter-aws": {
"version": "1.2.2", "version": "1.2.3",
"date": "2023-12-18T03:36:27.383Z", "date": "2023-12-19T11:12:53.606Z",
"support": "Unknown" "support": "Unknown"
}, },
"sveltekit-adapter-versioned-worker": { "sveltekit-adapter-versioned-worker": {
@@ -1270,8 +1270,8 @@
"support": "^4.0.0" "support": "^4.0.0"
}, },
"@tanstack/svelte-table": { "@tanstack/svelte-table": {
"version": "8.11.0", "version": "8.11.2",
"date": "2023-12-17T16:56:10.782Z", "date": "2023-12-20T18:04:17.531Z",
"support": "^4.0.0 || ^3.49.0" "support": "^4.0.0 || ^3.49.0"
}, },
"@histoire/plugin-svelte": { "@histoire/plugin-svelte": {
@@ -1307,8 +1307,8 @@
"support": "^3.47.0 || ^4.0.0" "support": "^3.47.0 || ^4.0.0"
}, },
"@sentry/svelte": { "@sentry/svelte": {
"version": "7.88.0", "version": "7.90.0",
"date": "2023-12-14T17:37:48.911Z", "date": "2023-12-20T14:22:08.704Z",
"support": "3.x || 4.x" "support": "3.x || 4.x"
}, },
"svelte-french-toast": { "svelte-french-toast": {
@@ -1327,8 +1327,8 @@
"support": "Unknown" "support": "Unknown"
}, },
"svelte-persisted-store": { "svelte-persisted-store": {
"version": "0.7.0", "version": "0.8.0",
"date": "2023-10-04T04:08:51.123Z", "date": "2023-12-20T11:28:03.871Z",
"support": "^3.48.0 || >4.0.0" "support": "^3.48.0 || >4.0.0"
}, },
"svelte-stripe": { "version": "1.1.3", "date": "2023-11-26T20:07:39.040Z", "support": "Unknown" }, "svelte-stripe": { "version": "1.1.3", "date": "2023-11-26T20:07:39.040Z", "support": "Unknown" },
@@ -1349,8 +1349,8 @@
"support": "^3.0.0" "support": "^3.0.0"
}, },
"@neoconfetti/svelte": { "@neoconfetti/svelte": {
"version": "2.0.0", "version": "2.2.0",
"date": "2023-12-18T09:40:51.550Z", "date": "2023-12-19T19:12:39.751Z",
"support": "Unknown" "support": "Unknown"
}, },
"svelte-headless-table": { "svelte-headless-table": {
@@ -1363,6 +1363,11 @@
"date": "2023-11-06T20:16:47.793Z", "date": "2023-11-06T20:16:47.793Z",
"support": "Unknown" "support": "Unknown"
}, },
"@svelteuidev/core": {
"version": "0.15.4",
"date": "2023-12-05T09:28:19.165Z",
"support": ">=3.55.0"
},
"houdini": { "version": "1.2.34", "date": "2023-12-04T08:52:44.986Z", "support": "Unknown" }, "houdini": { "version": "1.2.34", "date": "2023-12-04T08:52:44.986Z", "support": "Unknown" },
"@svelte-put/clickoutside": { "@svelte-put/clickoutside": {
"version": "3.0.1", "version": "3.0.1",
@@ -1371,8 +1376,8 @@
}, },
"@grail-ui/svelte": { "version": "0.11.0", "date": "2023-09-30T14:03:30.742Z", "support": "3.x" }, "@grail-ui/svelte": { "version": "0.11.0", "date": "2023-09-30T14:03:30.742Z", "support": "3.x" },
"svelte-maplibre": { "svelte-maplibre": {
"version": "0.7.3", "version": "0.7.4",
"date": "2023-11-24T18:36:59.141Z", "date": "2023-12-18T23:57:19.075Z",
"support": "^3.54.0 || ^4.0.0" "support": "^3.54.0 || ^4.0.0"
}, },
"@ethercorps/sveltekit-og": { "@ethercorps/sveltekit-og": {

View File

@@ -271,7 +271,7 @@
"@brewer/beerui": { "valid": false }, "@brewer/beerui": { "valid": false },
"@skeletonlabs/skeleton": { "valid": true }, "@skeletonlabs/skeleton": { "valid": true },
"svelte-hover-draw-svg": { "valid": true }, "svelte-hover-draw-svg": { "valid": true },
"casual-ui-svelte": { "valid": true }, "@casual-ui/svelte": { "valid": false },
"@specialdoom/proi-ui": { "valid": false }, "@specialdoom/proi-ui": { "valid": false },
"@canutin/svelte-currency-input": { "valid": true }, "@canutin/svelte-currency-input": { "valid": true },
"flowbite-svelte": { "valid": true }, "flowbite-svelte": { "valid": true },
@@ -286,7 +286,7 @@
"sveltekit-adapter-firebase": { "valid": true }, "sveltekit-adapter-firebase": { "valid": true },
"sveltekit-search-params": { "valid": true }, "sveltekit-search-params": { "valid": true },
"@geoffcox/sterling-svelte": { "valid": true }, "@geoffcox/sterling-svelte": { "valid": true },
"simple-ui-components-in-svelte": { "valid": true }, "@perfectthings/ui": { "valid": true },
"@tanstack/svelte-query": { "valid": true }, "@tanstack/svelte-query": { "valid": true },
"@pragmatic-engineering/svelte-form-builder-community": { "valid": true }, "@pragmatic-engineering/svelte-form-builder-community": { "valid": true },
"@ptkdev/sveltekit-cordova-adapter": { "valid": true }, "@ptkdev/sveltekit-cordova-adapter": { "valid": true },
@@ -347,6 +347,7 @@
"@neoconfetti/svelte": { "valid": true }, "@neoconfetti/svelte": { "valid": true },
"svelte-headless-table": { "valid": false }, "svelte-headless-table": { "valid": false },
"@formkit/auto-animate": { "valid": true }, "@formkit/auto-animate": { "valid": true },
"@svelteuidev/core": { "valid": true },
"houdini": { "valid": false }, "houdini": { "valid": false },
"@svelte-put/clickoutside": { "valid": true }, "@svelte-put/clickoutside": { "valid": true },
"@grail-ui/svelte": { "valid": true }, "@grail-ui/svelte": { "valid": true },