mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-13 01:07:18 +00:00
Refactor resize
This commit is contained in:
@@ -145,21 +145,24 @@ export default function () {
|
||||
}
|
||||
|
||||
async function generateFeatureMeta() {
|
||||
const encoderMetas = (
|
||||
await globP('src/features/encoders/*/shared/meta.ts', {
|
||||
const getTsFiles = (glob) =>
|
||||
globP(glob, {
|
||||
absolute: true,
|
||||
})
|
||||
)
|
||||
.filter((tsFile) => !tsFile.endsWith('.d.ts'))
|
||||
.map((tsFile) => tsFile.slice(0, -'.ts'.length));
|
||||
}).then((paths) =>
|
||||
paths
|
||||
.filter((tsFile) => !tsFile.endsWith('.d.ts'))
|
||||
.map((tsFile) => tsFile.slice(0, -'.ts'.length)),
|
||||
);
|
||||
|
||||
const processorMetas = (
|
||||
await globP('src/features/processors/*/shared/meta.ts', {
|
||||
absolute: true,
|
||||
})
|
||||
)
|
||||
.filter((tsFile) => !tsFile.endsWith('.d.ts'))
|
||||
.map((tsFile) => tsFile.slice(0, -'.ts'.length));
|
||||
const metas = await Promise.all(
|
||||
[
|
||||
'src/features/encoders/*/shared/meta.ts',
|
||||
'src/features/processors/*/shared/meta.ts',
|
||||
'src/features/preprocessors/*/shared/meta.ts',
|
||||
].map((glob) => getTsFiles(glob)),
|
||||
);
|
||||
|
||||
const [encoderMetas, processorMetas, preprocessorMetas] = metas;
|
||||
|
||||
const featureMetaBasePath = path.join(
|
||||
process.cwd(),
|
||||
@@ -169,7 +172,7 @@ export default function () {
|
||||
'feature-meta',
|
||||
);
|
||||
|
||||
const joinedMetas = [...encoderMetas, ...processorMetas].join();
|
||||
const joinedMetas = metas.flat().join();
|
||||
|
||||
// Avoid regenerating if nothing's changed.
|
||||
// This also prevents an infinite loop in the watcher.
|
||||
@@ -181,8 +184,15 @@ export default function () {
|
||||
path.basename(tsImport.slice(0, -'/shared/meta'.length)),
|
||||
];
|
||||
|
||||
const encoderMetaTsNames = encoderMetas.map(getTsName);
|
||||
const processorMetaTsNames = processorMetas.map(getTsName);
|
||||
const encoderMetaTsNames = encoderMetas.map((tsImport) =>
|
||||
getTsName(tsImport),
|
||||
);
|
||||
const processorMetaTsNames = processorMetas.map((tsImport) =>
|
||||
getTsName(tsImport),
|
||||
);
|
||||
const preprocessorMetaTsNames = preprocessorMetas.map((tsImport) =>
|
||||
getTsName(tsImport),
|
||||
);
|
||||
|
||||
const featureMeta = [
|
||||
autoGenComment,
|
||||
@@ -222,6 +232,20 @@ export default function () {
|
||||
` ${name}: { enabled: false, ...${name}ProcessorMeta.defaultOptions },`,
|
||||
),
|
||||
`}`,
|
||||
// Preprocessor stuff
|
||||
preprocessorMetaTsNames.map(
|
||||
([path, name]) => `import * as ${name}PreprocessorMeta from '${path}';`,
|
||||
),
|
||||
`export interface PreprocessorState {`,
|
||||
preprocessorMetaTsNames.map(
|
||||
([_, name]) => ` ${name}: ${name}PreprocessorMeta.Options,`,
|
||||
),
|
||||
`}`,
|
||||
`export const defaultPreprocessorState: PreprocessorState = {`,
|
||||
preprocessorMetaTsNames.map(
|
||||
([_, name]) => ` ${name}: ${name}PreprocessorMeta.defaultOptions,`,
|
||||
),
|
||||
`};`,
|
||||
]
|
||||
.flat(Infinity)
|
||||
.join('\n');
|
||||
|
||||
Reference in New Issue
Block a user