chore: cleanup

This commit is contained in:
Nathan Walker
2020-07-06 14:25:11 -07:00
parent 94cf5c4706
commit 6336eac4b5
477 changed files with 59087 additions and 74961 deletions

View File

@@ -5,21 +5,21 @@ function mapSelectors(selector) {
if (!selector) {
return [];
}
return selector.split(/\s*(?![^(]*\)),\s*/).map(function (s) { return s.replace(/\u200C/g, ","); });
return selector.split(/\s*(?![^(]*\)),\s*/).map(function (s) { return s.replace(/\u200C/g, ','); });
}
function mapPosition(node, css) {
var res = {
start: {
line: node.loc.start.line,
column: node.loc.start.column
column: node.loc.start.column,
},
end: {
line: node.loc.end.line,
column: node.loc.end.column
column: node.loc.end.column,
},
content: css
content: css,
};
if (node.loc.source && node.loc.source !== "<unknown>") {
if (node.loc.source && node.loc.source !== '<unknown>') {
res.source = node.loc.source;
}
return res;
@@ -29,41 +29,44 @@ function transformAst(node, css, type) {
if (!node) {
return;
}
if (node.type === "StyleSheet") {
if (node.type === 'StyleSheet') {
return {
type: "stylesheet",
type: 'stylesheet',
stylesheet: {
rules: node.children.map(function (child) { return transformAst(child, css); }).filter(function (child) { return child !== null; }).toArray(),
parsingErrors: []
}
rules: node.children
.map(function (child) { return transformAst(child, css); })
.filter(function (child) { return child !== null; })
.toArray(),
parsingErrors: [],
},
};
}
if (node.type === "Atrule") {
if (node.type === 'Atrule') {
var atrule = {
type: node.name,
};
if (node.name === "supports" || node.name === "media") {
if (node.name === 'supports' || node.name === 'media') {
atrule[node.name] = node.prelude.value;
atrule.rules = transformAst(node.block, css);
}
else if (node.name === "page") {
else if (node.name === 'page') {
atrule.selectors = node.prelude ? mapSelectors(node.prelude.value) : [];
atrule.declarations = transformAst(node.block, css);
}
else if (node.name === "document") {
atrule.document = node.prelude ? node.prelude.value : "";
atrule.vendor = "";
else if (node.name === 'document') {
atrule.document = node.prelude ? node.prelude.value : '';
atrule.vendor = '';
atrule.rules = transformAst(node.block, css);
}
else if (node.name === "font-face") {
else if (node.name === 'font-face') {
atrule.declarations = transformAst(node.block, css);
}
else if (node.name === "import" || node.name === "charset" || node.name === "namespace") {
atrule[node.name] = node.prelude ? node.prelude.value : "";
else if (node.name === 'import' || node.name === 'charset' || node.name === 'namespace') {
atrule[node.name] = node.prelude ? node.prelude.value : '';
}
else if (node.name === "keyframes") {
atrule.name = node.prelude ? node.prelude.value : "";
atrule.keyframes = transformAst(node.block, css, "keyframe");
else if (node.name === 'keyframes') {
atrule.name = node.prelude ? node.prelude.value : '';
atrule.keyframes = transformAst(node.block, css, 'keyframe');
atrule.vendor = undefined;
}
else {
@@ -72,17 +75,20 @@ function transformAst(node, css, type) {
atrule.position = mapPosition(node, css);
return atrule;
}
if (node.type === "Block") {
return node.children.map(function (child) { return transformAst(child, css, type); }).filter(function (child) { return child !== null; }).toArray();
if (node.type === 'Block') {
return node.children
.map(function (child) { return transformAst(child, css, type); })
.filter(function (child) { return child !== null; })
.toArray();
}
if (node.type === "Rule") {
if (node.type === 'Rule') {
var value = node.prelude.value;
var res = {
type: type != null ? type : "rule",
type: type != null ? type : 'rule',
declarations: transformAst(node.block, css),
position: mapPosition(node, css)
position: mapPosition(node, css),
};
if (type === "keyframe") {
if (type === 'keyframe') {
res.values = mapSelectors(value);
}
else {
@@ -90,22 +96,22 @@ function transformAst(node, css, type) {
}
return res;
}
if (node.type === "Comment") {
if (node.type === 'Comment') {
return {
type: "comment",
type: 'comment',
comment: node.value,
position: mapPosition(node, css)
position: mapPosition(node, css),
};
}
if (node.type === "Declaration") {
if (node.type === 'Declaration') {
return {
type: "declaration",
type: 'declaration',
property: node.property,
value: node.value.value ? node.value.value.trim() : "",
position: mapPosition(node, css)
value: node.value.value ? node.value.value.trim() : '',
position: mapPosition(node, css),
};
}
if (node.type === "Raw") {
if (node.type === 'Raw') {
return null;
}
throw Error("Unknown node type " + node.type);
@@ -120,7 +126,7 @@ function cssTreeParse(css, source) {
filename: source,
onParseError: function (error) {
errors.push(source + ":" + error.line + ":" + error.column + ": " + error.formattedMessage);
}
},
});
if (errors.length > 0) {
throw new Error(errors[0]);

View File

@@ -1 +1 @@
{"version":3,"file":"css-tree-parser.js","sourceRoot":"","sources":["css-tree-parser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"css-tree-parser.js","sourceRoot":"","sources":["css-tree-parser.ts"],"names":[],"mappings":"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"}

View File

@@ -1,158 +1,148 @@
import { parse } from "css-tree";
import { parse } from 'css-tree';
function mapSelectors(selector: string): string[] {
if (!selector) {
return [];
}
if (!selector) {
return [];
}
return selector
.split(/\s*(?![^(]*\)),\s*/)
.map((s) => s.replace(/\u200C/g, ","));
return selector.split(/\s*(?![^(]*\)),\s*/).map((s) => s.replace(/\u200C/g, ','));
}
function mapPosition(node, css) {
let res: any = {
start: {
line: node.loc.start.line,
column: node.loc.start.column,
},
end: {
line: node.loc.end.line,
column: node.loc.end.column,
},
content: css,
};
let res: any = {
start: {
line: node.loc.start.line,
column: node.loc.start.column,
},
end: {
line: node.loc.end.line,
column: node.loc.end.column,
},
content: css,
};
if (node.loc.source && node.loc.source !== "<unknown>") {
res.source = node.loc.source;
}
if (node.loc.source && node.loc.source !== '<unknown>') {
res.source = node.loc.source;
}
return res;
return res;
}
function transformAst(node, css, type = null) {
if (!node) {
return;
}
if (!node) {
return;
}
if (node.type === "StyleSheet") {
return {
type: "stylesheet",
stylesheet: {
rules: node.children
.map((child) => transformAst(child, css))
.filter((child) => child !== null)
.toArray(),
parsingErrors: [],
},
};
}
if (node.type === 'StyleSheet') {
return {
type: 'stylesheet',
stylesheet: {
rules: node.children
.map((child) => transformAst(child, css))
.filter((child) => child !== null)
.toArray(),
parsingErrors: [],
},
};
}
if (node.type === "Atrule") {
let atrule: any = {
type: node.name,
};
if (node.type === 'Atrule') {
let atrule: any = {
type: node.name,
};
if (node.name === "supports" || node.name === "media") {
atrule[node.name] = node.prelude.value;
atrule.rules = transformAst(node.block, css);
} else if (node.name === "page") {
atrule.selectors = node.prelude
? mapSelectors(node.prelude.value)
: [];
atrule.declarations = transformAst(node.block, css);
} else if (node.name === "document") {
atrule.document = node.prelude ? node.prelude.value : "";
atrule.vendor = "";
atrule.rules = transformAst(node.block, css);
} else if (node.name === "font-face") {
atrule.declarations = transformAst(node.block, css);
} else if (
node.name === "import" ||
node.name === "charset" ||
node.name === "namespace"
) {
atrule[node.name] = node.prelude ? node.prelude.value : "";
} else if (node.name === "keyframes") {
atrule.name = node.prelude ? node.prelude.value : "";
atrule.keyframes = transformAst(node.block, css, "keyframe");
atrule.vendor = undefined;
} else {
atrule.rules = transformAst(node.block, css);
}
if (node.name === 'supports' || node.name === 'media') {
atrule[node.name] = node.prelude.value;
atrule.rules = transformAst(node.block, css);
} else if (node.name === 'page') {
atrule.selectors = node.prelude ? mapSelectors(node.prelude.value) : [];
atrule.declarations = transformAst(node.block, css);
} else if (node.name === 'document') {
atrule.document = node.prelude ? node.prelude.value : '';
atrule.vendor = '';
atrule.rules = transformAst(node.block, css);
} else if (node.name === 'font-face') {
atrule.declarations = transformAst(node.block, css);
} else if (node.name === 'import' || node.name === 'charset' || node.name === 'namespace') {
atrule[node.name] = node.prelude ? node.prelude.value : '';
} else if (node.name === 'keyframes') {
atrule.name = node.prelude ? node.prelude.value : '';
atrule.keyframes = transformAst(node.block, css, 'keyframe');
atrule.vendor = undefined;
} else {
atrule.rules = transformAst(node.block, css);
}
atrule.position = mapPosition(node, css);
atrule.position = mapPosition(node, css);
return atrule;
}
return atrule;
}
if (node.type === "Block") {
return node.children
.map((child) => transformAst(child, css, type))
.filter((child) => child !== null)
.toArray();
}
if (node.type === 'Block') {
return node.children
.map((child) => transformAst(child, css, type))
.filter((child) => child !== null)
.toArray();
}
if (node.type === "Rule") {
let value = node.prelude.value;
if (node.type === 'Rule') {
let value = node.prelude.value;
let res: any = {
type: type != null ? type : "rule",
declarations: transformAst(node.block, css),
position: mapPosition(node, css),
};
let res: any = {
type: type != null ? type : 'rule',
declarations: transformAst(node.block, css),
position: mapPosition(node, css),
};
if (type === "keyframe") {
res.values = mapSelectors(value);
} else {
res.selectors = mapSelectors(value);
}
if (type === 'keyframe') {
res.values = mapSelectors(value);
} else {
res.selectors = mapSelectors(value);
}
return res;
}
return res;
}
if (node.type === "Comment") {
return {
type: "comment",
comment: node.value,
position: mapPosition(node, css),
};
}
if (node.type === 'Comment') {
return {
type: 'comment',
comment: node.value,
position: mapPosition(node, css),
};
}
if (node.type === "Declaration") {
return {
type: "declaration",
property: node.property,
value: node.value.value ? node.value.value.trim() : "",
position: mapPosition(node, css),
};
}
if (node.type === 'Declaration') {
return {
type: 'declaration',
property: node.property,
value: node.value.value ? node.value.value.trim() : '',
position: mapPosition(node, css),
};
}
if (node.type === "Raw") {
return null;
}
if (node.type === 'Raw') {
return null;
}
throw Error(`Unknown node type ${node.type}`);
throw Error(`Unknown node type ${node.type}`);
}
export function cssTreeParse(css, source): any {
let errors = [];
let ast = parse(css, {
parseValue: false,
parseAtrulePrelude: false,
parseRulePrelude: false,
positions: true,
filename: source,
onParseError: (error) => {
errors.push(
`${source}:${error.line}:${error.column}: ${error.formattedMessage}`
);
},
});
let errors = [];
let ast = parse(css, {
parseValue: false,
parseAtrulePrelude: false,
parseRulePrelude: false,
positions: true,
filename: source,
onParseError: (error) => {
errors.push(`${source}:${error.line}:${error.column}: ${error.formattedMessage}`);
},
});
if (errors.length > 0) {
throw new Error(errors[0]);
}
if (errors.length > 0) {
throw new Error(errors[0]);
}
return transformAst(ast, css);
return transformAst(ast, css);
}

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,33 +1,33 @@
export interface Position {
start: { line: number; column: number };
end: { line: number; column: number };
start: { line: number; column: number };
end: { line: number; column: number };
}
export interface Node {
type: "rule" | "keyframes" | "declaration" | "import";
position: Position;
type: 'rule' | 'keyframes' | 'declaration' | 'import';
position: Position;
}
export interface Declaration extends Node {
property: string;
value: string;
property: string;
value: string;
}
export interface Rule extends Node {
selectors: string[];
declarations: Node[];
selectors: string[];
declarations: Node[];
}
export interface Keyframes extends Rule {
name: string;
name: string;
}
export interface StyleSheet {
rules: Node[];
rules: Node[];
}
export interface SyntaxTree {
stylesheet: StyleSheet;
stylesheet: StyleSheet;
}
export function parse(css: string, options: any): SyntaxTree;

View File

@@ -1,44 +1,44 @@
const MODAL = "modal";
const ROOT = "root";
const MODAL = 'modal';
const ROOT = 'root';
const cssClasses = [];
export const CLASS_PREFIX = "ns-";
export const CLASS_PREFIX = 'ns-';
export const MODAL_ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${MODAL}`;
export const ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${ROOT}`;
export function getSystemCssClasses(): string[] {
return cssClasses;
return cssClasses;
}
export function pushToSystemCssClasses(value: string): number {
cssClasses.push(value);
cssClasses.push(value);
return cssClasses.length;
return cssClasses.length;
}
export function removeSystemCssClass(value: string): string {
const index = cssClasses.indexOf(value);
let removedElement;
const index = cssClasses.indexOf(value);
let removedElement;
if (index > -1) {
removedElement = cssClasses.splice(index, 1);
}
if (index > -1) {
removedElement = cssClasses.splice(index, 1);
}
return removedElement;
return removedElement;
}
export function getModalRootViewCssClass(): string {
return MODAL_ROOT_VIEW_CSS_CLASS;
return MODAL_ROOT_VIEW_CSS_CLASS;
}
export function getRootViewCssClasses(): string[] {
return [ROOT_VIEW_CSS_CLASS, ...cssClasses];
return [ROOT_VIEW_CSS_CLASS, ...cssClasses];
}
export function pushToRootViewCssClasses(value: string): number {
return pushToSystemCssClasses(value) + 1; // because of ROOT_VIEW_CSS_CLASS
return pushToSystemCssClasses(value) + 1; // because of ROOT_VIEW_CSS_CLASS
}
export function removeFromRootViewCssClasses(value: string): string {
return removeSystemCssClass(value);
return removeSystemCssClass(value);
}