From fc040c293111c062817e58a5b18dd131729703fd Mon Sep 17 00:00:00 2001 From: harmony Date: Sun, 29 Apr 2018 16:05:33 +0200 Subject: [PATCH 1/3] fix: Resolve (js) files without extension. --- packages/@css-blocks/jsx/src/Analyzer/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/@css-blocks/jsx/src/Analyzer/index.ts b/packages/@css-blocks/jsx/src/Analyzer/index.ts index 6eea724d6..3ffb09345 100644 --- a/packages/@css-blocks/jsx/src/Analyzer/index.ts +++ b/packages/@css-blocks/jsx/src/Analyzer/index.ts @@ -9,7 +9,6 @@ import traverse from "babel-traverse"; import * as babylon from "babylon"; import * as debugGenerator from "debug"; import * as fs from "fs"; -import * as path from "path"; import { CssBlocksJSXOptions } from "../options"; import { JSXParseError } from "../utils/Errors"; @@ -143,7 +142,7 @@ export class CSSBlocksJSXAnalyzer extends Analyzer { * @param opts Optional analytics parser options. */ public parseFile(file: string): Promise { - file = path.resolve(this.options.baseDir, file); + file = require.resolve(file); return new Promise((resolve, reject) => { fs.readFile(file, "utf8", (err, data) => { if (err) { From e2adca2675b1590d61a094220b5464721c258c21 Mon Sep 17 00:00:00 2001 From: harmony Date: Sun, 29 Apr 2018 16:05:58 +0200 Subject: [PATCH 2/3] fix: Flatten entry array because it can be nested. --- packages/@css-blocks/webpack/src/Plugin.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/@css-blocks/webpack/src/Plugin.ts b/packages/@css-blocks/webpack/src/Plugin.ts index fd3ca03f6..2a473ffcf 100644 --- a/packages/@css-blocks/webpack/src/Plugin.ts +++ b/packages/@css-blocks/webpack/src/Plugin.ts @@ -1,5 +1,5 @@ import { TemplateTypes } from "@opticss/template-api"; -import { ObjectDictionary, objectValues } from "@opticss/util"; +import { ObjectDictionary, objectValues, whatever } from "@opticss/util"; import * as debugGenerator from "debug"; import { postcss } from "opticss"; import * as path from "path"; @@ -114,7 +114,10 @@ export class CssBlocksPlugin entries = webpackEntry; } else if (typeof webpackEntry === "object") { - entries = objectValues(webpackEntry); + function flatten(arr: whatever[]): whatever[] { + return arr.reduce((acc, val) => (acc as whatever[]).concat(Array.isArray(val) ? flatten(val) : val), []) as whatever[]; + } + entries = flatten(objectValues(webpackEntry)) as string[]; } let pending: PendingResult = this.analyzer.analyze(...entries) From 30a660d309c6aa4be9483faf448862c57d4a0f7d Mon Sep 17 00:00:00 2001 From: harmony Date: Mon, 30 Apr 2018 01:51:44 +0200 Subject: [PATCH 3/3] chore: Move flatten to root of file. --- packages/@css-blocks/webpack/src/Plugin.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/@css-blocks/webpack/src/Plugin.ts b/packages/@css-blocks/webpack/src/Plugin.ts index 2a473ffcf..a510ad1e2 100644 --- a/packages/@css-blocks/webpack/src/Plugin.ts +++ b/packages/@css-blocks/webpack/src/Plugin.ts @@ -114,9 +114,6 @@ export class CssBlocksPlugin entries = webpackEntry; } else if (typeof webpackEntry === "object") { - function flatten(arr: whatever[]): whatever[] { - return arr.reduce((acc, val) => (acc as whatever[]).concat(Array.isArray(val) ? flatten(val) : val), []) as whatever[]; - } entries = flatten(objectValues(webpackEntry)) as string[]; } @@ -325,3 +322,7 @@ export class CssBlocksPlugin this.applyPluginsAsync("block-compilation-complete", result, cb); } } + +function flatten(arr: whatever[]): whatever[] { + return arr.reduce((acc, val) => (acc as whatever[]).concat(Array.isArray(val) ? flatten(val) : val), []) as whatever[]; +}