diff options
Diffstat (limited to 'src/optimize')
-rw-r--r-- | src/optimize/index.ts | 34 | ||||
-rw-r--r-- | src/optimize/styles.ts | 30 |
2 files changed, 32 insertions, 32 deletions
diff --git a/src/optimize/index.ts b/src/optimize/index.ts index d22854a32..a0604b1c8 100644 --- a/src/optimize/index.ts +++ b/src/optimize/index.ts @@ -10,8 +10,8 @@ interface VisitorCollection { } function addVisitor(visitor: NodeVisitor, collection: VisitorCollection, nodeName: string, event: 'enter' | 'leave') { - if(event in visitor) { - if(collection[event].has(nodeName)) { + if (event in visitor) { + if (collection[event].has(nodeName)) { collection[event].get(nodeName)!.push(visitor[event]!); } @@ -20,15 +20,15 @@ function addVisitor(visitor: NodeVisitor, collection: VisitorCollection, nodeNam } function collectVisitors(optimizer: Optimizer, htmlVisitors: VisitorCollection, cssVisitors: VisitorCollection, finalizers: Array<() => Promise<void>>) { - if(optimizer.visitors) { - if(optimizer.visitors.html) { - for(const [nodeName, visitor] of Object.entries(optimizer.visitors.html)) { + if (optimizer.visitors) { + if (optimizer.visitors.html) { + for (const [nodeName, visitor] of Object.entries(optimizer.visitors.html)) { addVisitor(visitor, htmlVisitors, nodeName, 'enter'); addVisitor(visitor, htmlVisitors, nodeName, 'leave'); } } - if(optimizer.visitors.css) { - for(const [nodeName, visitor] of Object.entries(optimizer.visitors.css)) { + if (optimizer.visitors.css) { + for (const [nodeName, visitor] of Object.entries(optimizer.visitors.css)) { addVisitor(visitor, cssVisitors, nodeName, 'enter'); addVisitor(visitor, cssVisitors, nodeName, 'leave'); } @@ -47,27 +47,27 @@ function createVisitorCollection() { function walkAstWithVisitors(tmpl: TemplateNode, collection: VisitorCollection) { walk(tmpl, { enter(node) { - if(collection.enter.has(node.type)) { + if (collection.enter.has(node.type)) { const fns = collection.enter.get(node.type)!; - for(let fn of fns) { + for (let fn of fns) { fn(node); } } }, leave(node) { - if(collection.leave.has(node.type)) { + if (collection.leave.has(node.type)) { const fns = collection.leave.get(node.type)!; - for(let fn of fns) { + for (let fn of fns) { fn(node); } } - } + }, }); } -interface OptimizeOptions { - filename: string, - fileID: string +interface OptimizeOptions { + filename: string; + fileID: string; } export async function optimize(ast: Ast, opts: OptimizeOptions) { @@ -81,5 +81,5 @@ export async function optimize(ast: Ast, opts: OptimizeOptions) { walkAstWithVisitors(ast.css, cssVisitors); // Run all of the finalizer functions in parallel because why not. - await Promise.all(finalizers.map(fn => fn())); -}
\ No newline at end of file + await Promise.all(finalizers.map((fn) => fn())); +} diff --git a/src/optimize/styles.ts b/src/optimize/styles.ts index b654ca7d1..6d15cb602 100644 --- a/src/optimize/styles.ts +++ b/src/optimize/styles.ts @@ -1,8 +1,8 @@ import type { Ast, TemplateNode } from '../compiler/interfaces'; -import type { Optimizer } from './types' +import type { Optimizer } from './types'; import { transformStyle } from '../style.js'; -export default function({ filename, fileID }: { filename: string, fileID: string }): Optimizer { +export default function ({ filename, fileID }: { filename: string; fileID: string }): Optimizer { const classNames: Set<string> = new Set(); let stylesPromises: any[] = []; @@ -11,20 +11,20 @@ export default function({ filename, fileID }: { filename: string, fileID: string html: { Element: { enter(node) { - for(let attr of node.attributes) { - if(attr.name === 'class') { - for(let value of attr.value) { - if(value.type === 'Text') { + for (let attr of node.attributes) { + if (attr.name === 'class') { + for (let value of attr.value) { + if (value.type === 'Text') { const classes = value.data.split(' '); - for(const className in classes) { + for (const className in classes) { classNames.add(className); } } } } } - } - } + }, + }, }, css: { Style: { @@ -39,13 +39,13 @@ export default function({ filename, fileID }: { filename: string, fileID: string fileID, }) ); // TODO: styles needs to go in <head> - } - } - } + }, + }, + }, }, async finalize() { const styles = await Promise.all(stylesPromises); // TODO: clean this up - console.log({ styles }); - } + // console.log({ styles }); + }, }; -}
\ No newline at end of file +} |