Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/column-tracking.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, test, expect } from 'vitest'
import { parse } from './parse'
import { NODE_STYLE_RULE, NODE_DECLARATION, NODE_AT_RULE, NODE_SELECTOR_LIST } from './parse'
import { NODE_STYLE_RULE, NODE_DECLARATION, NODE_AT_RULE, NODE_SELECTOR_LIST } from './constants'

describe('Column Tracking', () => {
test('should track column for single-line CSS', () => {
Expand Down
55 changes: 55 additions & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Central location for all constants - re-exported from arena
// This breaks the barrel file chain and improves tree-shaking

export {
NODE_STYLESHEET,
NODE_STYLE_RULE,
NODE_AT_RULE,
NODE_DECLARATION,
NODE_SELECTOR,
NODE_COMMENT,
NODE_BLOCK,
NODE_VALUE_KEYWORD,
NODE_VALUE_NUMBER,
NODE_VALUE_DIMENSION,
NODE_VALUE_STRING,
NODE_VALUE_COLOR,
NODE_VALUE_FUNCTION,
NODE_VALUE_OPERATOR,
NODE_VALUE_PARENTHESIS,
NODE_SELECTOR_LIST,
NODE_SELECTOR_TYPE,
NODE_SELECTOR_CLASS,
NODE_SELECTOR_ID,
NODE_SELECTOR_ATTRIBUTE,
NODE_SELECTOR_PSEUDO_CLASS,
NODE_SELECTOR_PSEUDO_ELEMENT,
NODE_SELECTOR_COMBINATOR,
NODE_SELECTOR_UNIVERSAL,
NODE_SELECTOR_NESTING,
NODE_SELECTOR_NTH,
NODE_SELECTOR_NTH_OF,
NODE_SELECTOR_LANG,
NODE_PRELUDE_MEDIA_QUERY,
NODE_PRELUDE_MEDIA_FEATURE,
NODE_PRELUDE_MEDIA_TYPE,
NODE_PRELUDE_CONTAINER_QUERY,
NODE_PRELUDE_SUPPORTS_QUERY,
NODE_PRELUDE_LAYER_NAME,
NODE_PRELUDE_IDENTIFIER,
NODE_PRELUDE_OPERATOR,
NODE_PRELUDE_IMPORT_URL,
NODE_PRELUDE_IMPORT_LAYER,
NODE_PRELUDE_IMPORT_SUPPORTS,
FLAG_IMPORTANT,
ATTR_OPERATOR_NONE,
ATTR_OPERATOR_EQUAL,
ATTR_OPERATOR_TILDE_EQUAL,
ATTR_OPERATOR_PIPE_EQUAL,
ATTR_OPERATOR_CARET_EQUAL,
ATTR_OPERATOR_DOLLAR_EQUAL,
ATTR_OPERATOR_STAR_EQUAL,
ATTR_FLAG_NONE,
ATTR_FLAG_CASE_INSENSITIVE,
ATTR_FLAG_CASE_SENSITIVE,
} from './arena'
5 changes: 3 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ export {
ATTR_FLAG_CASE_SENSITIVE,
} from './arena'

// Constants
// Constants - imported from dedicated constants file
// This improves tree-shaking by avoiding the parse module if only constants are needed
export {
NODE_STYLE_RULE,
NODE_AT_RULE,
Expand Down Expand Up @@ -69,7 +70,7 @@ export {
NODE_PRELUDE_IMPORT_LAYER,
NODE_PRELUDE_IMPORT_SUPPORTS,
FLAG_IMPORTANT,
} from './parse'
} from './constants'
export {
TOKEN_IDENT,
TOKEN_FUNCTION,
Expand Down
5 changes: 2 additions & 3 deletions src/parse.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, test, expect } from 'vitest'
import { Parser, parse } from './parse'
import {
Parser,
NODE_STYLESHEET,
NODE_STYLE_RULE,
NODE_AT_RULE,
Expand All @@ -12,8 +12,7 @@ import {
NODE_SELECTOR_TYPE,
NODE_SELECTOR_ATTRIBUTE,
NODE_SELECTOR_NESTING,
parse,
} from './parse'
} from './constants'
import { ATTR_OPERATOR_PIPE_EQUAL } from './arena'

describe('Parser', () => {
Expand Down
44 changes: 0 additions & 44 deletions src/parse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -574,47 +574,3 @@ export function parse(source: string, options?: ParserOptions): CSSNode {
const parser = new Parser(source, options)
return parser.parse()
}

// Re-export node type constants so consumers don't need to import from arena
export {
NODE_STYLESHEET,
NODE_STYLE_RULE,
NODE_AT_RULE,
NODE_DECLARATION,
NODE_SELECTOR,
NODE_COMMENT,
NODE_BLOCK,
NODE_VALUE_KEYWORD,
NODE_VALUE_NUMBER,
NODE_VALUE_DIMENSION,
NODE_VALUE_STRING,
NODE_VALUE_COLOR,
NODE_VALUE_FUNCTION,
NODE_VALUE_OPERATOR,
NODE_VALUE_PARENTHESIS,
NODE_SELECTOR_LIST,
NODE_SELECTOR_TYPE,
NODE_SELECTOR_CLASS,
NODE_SELECTOR_ID,
NODE_SELECTOR_ATTRIBUTE,
NODE_SELECTOR_PSEUDO_CLASS,
NODE_SELECTOR_PSEUDO_ELEMENT,
NODE_SELECTOR_COMBINATOR,
NODE_SELECTOR_UNIVERSAL,
NODE_SELECTOR_NESTING,
NODE_SELECTOR_NTH,
NODE_SELECTOR_NTH_OF,
NODE_SELECTOR_LANG,
NODE_PRELUDE_MEDIA_QUERY,
NODE_PRELUDE_MEDIA_FEATURE,
NODE_PRELUDE_MEDIA_TYPE,
NODE_PRELUDE_CONTAINER_QUERY,
NODE_PRELUDE_SUPPORTS_QUERY,
NODE_PRELUDE_LAYER_NAME,
NODE_PRELUDE_IDENTIFIER,
NODE_PRELUDE_OPERATOR,
NODE_PRELUDE_IMPORT_URL,
NODE_PRELUDE_IMPORT_LAYER,
NODE_PRELUDE_IMPORT_SUPPORTS,
FLAG_IMPORTANT,
} from './arena'
4 changes: 2 additions & 2 deletions src/walk.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, it, expect } from 'vitest'
import { Parser } from './parse'
import {
Parser,
NODE_STYLESHEET,
NODE_STYLE_RULE,
NODE_SELECTOR_LIST,
Expand All @@ -10,7 +10,7 @@ import {
NODE_VALUE_KEYWORD,
NODE_VALUE_NUMBER,
NODE_VALUE_DIMENSION,
} from './parse'
} from './constants'
import { walk, traverse } from './walk'

describe('walk', () => {
Expand Down
4 changes: 3 additions & 1 deletion tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
"declaration": true,
"emitDeclarationOnly": true,
"noEmit": false,
"outDir": "./dist"
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "**/*.test.ts", "benchmark"]
}
3 changes: 2 additions & 1 deletion vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ export default defineConfig({
minify: false,
rollupOptions: {
output: {
preserveModules: false,
preserveModules: true,
entryFileNames: '[name].js',
sourcemap: false,
},
},
},
Expand Down
Loading