Refactor resize

This commit is contained in:
Jake Archibald
2020-11-06 16:47:37 +00:00
parent ec586bb529
commit 1cb1c16fa2
12 changed files with 197 additions and 101 deletions

View File

@@ -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');