UNPKG

@riddance/env

Version:

48 lines 7.77 kB
import { readFile, writeFile } from 'node:fs/promises'; import { join, relative } from 'node:path'; import { check, format, resolveConfig } from 'prettier'; export async function formatted(reporter, path, files, signal) { return await formatter(reporter, path, files, false, signal); } export async function formatFiles(path, files) { await formatter(undefined, path, files, true); } async function formatter(reporter, path, files, fix, signal) { const configPath = join(path, '.prettierrc.json'); const src = await Promise.all(files.map(file => Promise.all([ readFile(join(path, file), 'utf-8'), resolveConfig(join(path, file), { config: configPath, editorconfig: true, }), ]))); try { signal?.throwIfAborted(); const bad = (await Promise.all(src.map(([s, options], ix) => check(s, { ...options, filepath: files[ix], })))) .map((s, ix) => (s ? undefined : relative(process.cwd(), files[ix] ?? ''))) .filter(s => s !== undefined); if (bad.length === 0) { return true; } if (reporter) { for (const file of bad) { reporter.error('Improperly formatted', file); } } if (fix) { await Promise.all(bad.map(async (file) => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const [s, options] = src[files.indexOf(file)]; await writeFile(join(path, file), await format(s, { ...options, filepath: file })); })); } return false; } catch { return false; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBR3ZELE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUMzQixRQUFrQixFQUNsQixJQUFZLEVBQ1osS0FBZSxFQUNmLE1BQW1CO0lBRW5CLE9BQU8sTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBZTtJQUMzRCxNQUFNLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNqRCxDQUFDO0FBRUQsS0FBSyxVQUFVLFNBQVMsQ0FDcEIsUUFBOEIsRUFDOUIsSUFBWSxFQUNaLEtBQWUsRUFDZixHQUFZLEVBQ1osTUFBb0I7SUFFcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDekIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDUixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDbkMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsWUFBWSxFQUFFLElBQUk7U0FDckIsQ0FBQztLQUNMLENBQUMsQ0FDTCxDQUNKLENBQUE7SUFDRCxJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUE7UUFDeEIsTUFBTSxHQUFHLEdBQUcsQ0FDUixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ3pCLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDTCxHQUFHLE9BQU87WUFDVixRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUN0QixDQUFDLENBQ0wsQ0FDSixDQUNKO2FBQ0ksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMxRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUE7UUFDakMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixRQUFRLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ2hELENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDYixHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRTtnQkFDakIsb0VBQW9FO2dCQUNwRSxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUE7Z0JBQzlDLE1BQU0sU0FBUyxDQUNYLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQ2hCLE1BQU0sTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNsRCxDQUFBO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcydcbmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgY2hlY2ssIGZvcm1hdCwgcmVzb2x2ZUNvbmZpZyB9IGZyb20gJ3ByZXR0aWVyJ1xuaW1wb3J0IHR5cGUgeyBSZXBvcnRlciB9IGZyb20gJy4vcmVwb3J0ZXIuanMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmb3JtYXR0ZWQoXG4gICAgcmVwb3J0ZXI6IFJlcG9ydGVyLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlczogc3RyaW5nW10sXG4gICAgc2lnbmFsOiBBYm9ydFNpZ25hbCxcbikge1xuICAgIHJldHVybiBhd2FpdCBmb3JtYXR0ZXIocmVwb3J0ZXIsIHBhdGgsIGZpbGVzLCBmYWxzZSwgc2lnbmFsKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0RmlsZXMocGF0aDogc3RyaW5nLCBmaWxlczogc3RyaW5nW10pIHtcbiAgICBhd2FpdCBmb3JtYXR0ZXIodW5kZWZpbmVkLCBwYXRoLCBmaWxlcywgdHJ1ZSlcbn1cblxuYXN5bmMgZnVuY3Rpb24gZm9ybWF0dGVyKFxuICAgIHJlcG9ydGVyOiBSZXBvcnRlciB8IHVuZGVmaW5lZCxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZmlsZXM6IHN0cmluZ1tdLFxuICAgIGZpeDogYm9vbGVhbixcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbikge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKHBhdGgsICcucHJldHRpZXJyYy5qc29uJylcbiAgICBjb25zdCBzcmMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgZmlsZXMubWFwKGZpbGUgPT5cbiAgICAgICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICByZWFkRmlsZShqb2luKHBhdGgsIGZpbGUpLCAndXRmLTgnKSxcbiAgICAgICAgICAgICAgICByZXNvbHZlQ29uZmlnKGpvaW4ocGF0aCwgZmlsZSksIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWdQYXRoLFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3Jjb25maWc6IHRydWUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgKSxcbiAgICApXG4gICAgdHJ5IHtcbiAgICAgICAgc2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpXG4gICAgICAgIGNvbnN0IGJhZCA9IChcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHNyYy5tYXAoKFtzLCBvcHRpb25zXSwgaXgpID0+XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrKHMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcGF0aDogZmlsZXNbaXhdLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgICAubWFwKChzLCBpeCkgPT4gKHMgPyB1bmRlZmluZWQgOiByZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlc1tpeF0gPz8gJycpKSlcbiAgICAgICAgICAgIC5maWx0ZXIocyA9PiBzICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGlmIChiYWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGJhZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydGVyLmVycm9yKCdJbXByb3Blcmx5IGZvcm1hdHRlZCcsIGZpbGUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpeCkge1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgYmFkLm1hcChhc3luYyBmaWxlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3MsIG9wdGlvbnNdID0gc3JjW2ZpbGVzLmluZGV4T2YoZmlsZSldIVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBqb2luKHBhdGgsIGZpbGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZm9ybWF0KHMsIHsgLi4ub3B0aW9ucywgZmlsZXBhdGg6IGZpbGUgfSksXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxufVxuIl19