Skip to content

Commit 916ec8b

Browse files
authored
Merge pull request NativeScript#8380 from NathanaelA/fix_css_styles
fix(css): parse issue with new Webpacked AST css/scss files
2 parents 64fc3e0 + b13f4d0 commit 916ec8b

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

nativescript-core/ui/styling/style-scope.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,19 @@ class CSSSource {
110110
this.parse();
111111
}
112112

113+
public static fromDetect(cssOrAst: any, keyframes: KeyframesMap, fileName?: string): CSSSource {
114+
if (typeof cssOrAst === "string") {
115+
// raw-loader
116+
return CSSSource.fromSource(cssOrAst, keyframes, fileName);
117+
} else if (typeof cssOrAst === "object" && cssOrAst.type === "stylesheet" && cssOrAst.stylesheet && cssOrAst.stylesheet.rules) {
118+
// css-loader
119+
return CSSSource.fromAST(cssOrAst, keyframes, fileName);
120+
} else {
121+
// css2json-loader
122+
return CSSSource.fromSource(cssOrAst.toString(), keyframes, fileName);
123+
}
124+
}
125+
113126
public static fromURI(uri: string, keyframes: KeyframesMap): CSSSource {
114127
// webpack modules require all file paths to be relative to /app folder
115128
const appRelativeUri = CSSSource.pathRelativeToApp(uri);
@@ -119,16 +132,7 @@ class CSSSource {
119132
try {
120133
const cssOrAst = global.loadModule(resolvedModuleName, true);
121134
if (cssOrAst) {
122-
if (typeof cssOrAst === "string") {
123-
// raw-loader
124-
return CSSSource.fromSource(cssOrAst, keyframes, resolvedModuleName);
125-
} else if (typeof cssOrAst === "object" && cssOrAst.type === "stylesheet" && cssOrAst.stylesheet && cssOrAst.stylesheet.rules) {
126-
// css-loader
127-
return CSSSource.fromAST(cssOrAst, keyframes, resolvedModuleName);
128-
} else {
129-
// css2json-loader
130-
return CSSSource.fromSource(cssOrAst.toString(), keyframes, resolvedModuleName);
131-
}
135+
return CSSSource.fromDetect(cssOrAst, keyframes, resolvedModuleName);
132136
}
133137
} catch (e) {
134138
traceWrite(`Could not load CSS from ${uri}: ${e}`, traceCategories.Error, traceMessageType.error);
@@ -325,7 +329,7 @@ export function removeTaggedAdditionalCSS(tag: String | Number): Boolean {
325329
}
326330

327331
export function addTaggedAdditionalCSS(cssText: string, tag?: string | Number): Boolean {
328-
const parsed: RuleSet[] = CSSSource.fromSource(cssText, applicationKeyframes, undefined).selectors;
332+
const parsed: RuleSet[] = CSSSource.fromDetect(cssText, applicationKeyframes, undefined).selectors;
329333
let changed = false;
330334
if (parsed && parsed.length) {
331335
changed = true;

0 commit comments

Comments
 (0)