summaryrefslogtreecommitdiff
path: root/src/optimize
diff options
context:
space:
mode:
Diffstat (limited to 'src/optimize')
-rw-r--r--src/optimize/index.ts34
-rw-r--r--src/optimize/styles.ts30
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
+}