@shopify/theme-language-server-common
Version:
<h1 align="center" style="position: relative;" > <br> <img src="https://github.com/Shopify/theme-check-vscode/blob/main/images/shopify_glyph.png?raw=true" alt="logo" width="141" height="160"> <br> Theme Language Server </h1>
31 lines (24 loc) • 891 B
text/typescript
import { LiquidHtmlNode, LiquidRawTag } from '@shopify/liquid-html-parser';
import { SourceCodeType, visit, Visitor } from '@shopify/theme-check-common';
export function fileMatch(uri: string, patterns: RegExp[]): boolean {
return patterns.some((pattern) => pattern.test(uri));
}
export function isSectionFile(uri: string): boolean {
return /\/sections\/[^/]*\.liquid$/.test(uri);
}
export function isBlockFile(uri: string): boolean {
return /\/blocks\/[^/]*\.liquid$/.test(uri);
}
export function isSectionOrBlockFile(uri: string): boolean {
return isSectionFile(uri) || isBlockFile(uri);
}
export function findSchemaNode(ast: LiquidHtmlNode): LiquidRawTag | undefined {
const nodes = visit(ast, {
LiquidRawTag(node) {
if (node.name === 'schema') {
return node;
}
},
} as Visitor<SourceCodeType.LiquidHtml, LiquidRawTag>);
return nodes[0];
}