File tree Expand file tree Collapse file tree 3 files changed +124
-1
lines changed
Expand file tree Collapse file tree 3 files changed +124
-1
lines changed Original file line number Diff line number Diff line change @@ -1221,3 +1221,29 @@ describe('CSSNode', () => {
12211221 } )
12221222 } )
12231223} )
1224+
1225+ describe ( 'NODE_TYPES namespace' , ( ) => {
1226+ test ( 'should work as alternative to individual imports' , async ( ) => {
1227+ // Import namespace object
1228+ const { NODE_TYPES } = await import ( './constants' )
1229+
1230+ const ast = parse ( 'body { color: red; }' , { parse_values : false } )
1231+
1232+ // Use namespace for type checks
1233+ expect ( ast . type ) . toBe ( NODE_TYPES . STYLESHEET )
1234+ expect ( ast . first_child ! . type ) . toBe ( NODE_TYPES . STYLE_RULE )
1235+ expect ( ast . first_child ! . first_child ! . type ) . toBe ( NODE_TYPES . SELECTOR_LIST )
1236+ expect ( ast . first_child ! . block ! . type ) . toBe ( NODE_TYPES . BLOCK )
1237+ expect ( ast . first_child ! . block ! . first_child ! . type ) . toBe ( NODE_TYPES . DECLARATION )
1238+ } )
1239+
1240+ test ( 'namespace values should match individual constants' , async ( ) => {
1241+ const { NODE_TYPES } = await import ( './constants' )
1242+
1243+ // Verify they're the same values
1244+ expect ( NODE_TYPES . STYLE_RULE ) . toBe ( STYLE_RULE )
1245+ expect ( NODE_TYPES . DECLARATION ) . toBe ( DECLARATION )
1246+ expect ( NODE_TYPES . AT_RULE ) . toBe ( AT_RULE )
1247+ expect ( NODE_TYPES . SELECTOR_LIST ) . toBe ( SELECTOR_LIST )
1248+ } )
1249+ } )
Original file line number Diff line number Diff line change 11// Central location for all constants - re-exported from arena
22// This breaks the barrel file chain and improves tree-shaking
33
4- export {
4+ import {
55 STYLESHEET ,
66 STYLE_RULE ,
77 AT_RULE ,
@@ -50,3 +50,97 @@ export {
5050 ATTR_FLAG_CASE_INSENSITIVE ,
5151 ATTR_FLAG_CASE_SENSITIVE ,
5252} from './arena'
53+
54+ export {
55+ STYLESHEET ,
56+ STYLE_RULE ,
57+ AT_RULE ,
58+ DECLARATION ,
59+ SELECTOR ,
60+ COMMENT ,
61+ BLOCK ,
62+ IDENTIFIER ,
63+ NUMBER ,
64+ DIMENSION ,
65+ STRING ,
66+ HASH ,
67+ FUNCTION ,
68+ OPERATOR ,
69+ PARENTHESIS ,
70+ URL ,
71+ SELECTOR_LIST ,
72+ TYPE_SELECTOR ,
73+ CLASS_SELECTOR ,
74+ ID_SELECTOR ,
75+ ATTRIBUTE_SELECTOR ,
76+ PSEUDO_CLASS_SELECTOR ,
77+ PSEUDO_ELEMENT_SELECTOR ,
78+ COMBINATOR ,
79+ UNIVERSAL_SELECTOR ,
80+ NESTING_SELECTOR ,
81+ NTH_SELECTOR ,
82+ NTH_OF_SELECTOR ,
83+ LANG_SELECTOR ,
84+ MEDIA_QUERY ,
85+ MEDIA_FEATURE ,
86+ MEDIA_TYPE ,
87+ CONTAINER_QUERY ,
88+ SUPPORTS_QUERY ,
89+ LAYER_NAME ,
90+ PRELUDE_OPERATOR ,
91+ FLAG_IMPORTANT ,
92+ ATTR_OPERATOR_NONE ,
93+ ATTR_OPERATOR_EQUAL ,
94+ ATTR_OPERATOR_TILDE_EQUAL ,
95+ ATTR_OPERATOR_PIPE_EQUAL ,
96+ ATTR_OPERATOR_CARET_EQUAL ,
97+ ATTR_OPERATOR_DOLLAR_EQUAL ,
98+ ATTR_OPERATOR_STAR_EQUAL ,
99+ ATTR_FLAG_NONE ,
100+ ATTR_FLAG_CASE_INSENSITIVE ,
101+ ATTR_FLAG_CASE_SENSITIVE ,
102+ }
103+
104+ // Namespace object for convenient importing
105+ export const NODE_TYPES = {
106+ // Core nodes
107+ STYLESHEET ,
108+ STYLE_RULE ,
109+ AT_RULE ,
110+ DECLARATION ,
111+ SELECTOR ,
112+ COMMENT ,
113+ BLOCK ,
114+ // Value nodes
115+ IDENTIFIER ,
116+ NUMBER ,
117+ DIMENSION ,
118+ STRING ,
119+ HASH ,
120+ FUNCTION ,
121+ OPERATOR ,
122+ PARENTHESIS ,
123+ URL ,
124+ // Selector nodes
125+ SELECTOR_LIST ,
126+ TYPE_SELECTOR ,
127+ CLASS_SELECTOR ,
128+ ID_SELECTOR ,
129+ ATTRIBUTE_SELECTOR ,
130+ PSEUDO_CLASS_SELECTOR ,
131+ PSEUDO_ELEMENT_SELECTOR ,
132+ COMBINATOR ,
133+ UNIVERSAL_SELECTOR ,
134+ NESTING_SELECTOR ,
135+ NTH_SELECTOR ,
136+ NTH_OF_SELECTOR ,
137+ LANG_SELECTOR ,
138+ // At-rule prelude nodes
139+ MEDIA_QUERY ,
140+ MEDIA_FEATURE ,
141+ MEDIA_TYPE ,
142+ CONTAINER_QUERY ,
143+ SUPPORTS_QUERY ,
144+ LAYER_NAME ,
145+ PRELUDE_OPERATOR ,
146+ } as const
Original file line number Diff line number Diff line change @@ -32,3 +32,6 @@ export {
3232// This improves tree-shaking by avoiding the parse module if only constants are needed
3333export * from './constants'
3434export * from './token-types'
35+
36+ // Namespace object exports for convenience
37+ export { NODE_TYPES } from './constants'
You can’t perform that action at this time.
0 commit comments