full site update
This commit is contained in:
55
node_modules/css-tree/lib/syntax/create.js
generated
vendored
Normal file
55
node_modules/css-tree/lib/syntax/create.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
import { tokenize } from '../tokenizer/index.js';
|
||||
import { createParser } from '../parser/create.js';
|
||||
import { createGenerator } from '../generator/create.js';
|
||||
import { createConvertor } from '../convertor/create.js';
|
||||
import { createWalker } from '../walker/create.js';
|
||||
import { Lexer } from '../lexer/Lexer.js';
|
||||
import mix from './config/mix.js';
|
||||
|
||||
function createSyntax(config) {
|
||||
const parse = createParser(config);
|
||||
const walk = createWalker(config);
|
||||
const generate = createGenerator(config);
|
||||
const { fromPlainObject, toPlainObject } = createConvertor(walk);
|
||||
|
||||
const syntax = {
|
||||
lexer: null,
|
||||
createLexer: config => new Lexer(config, syntax, syntax.lexer.structure),
|
||||
|
||||
tokenize,
|
||||
parse,
|
||||
generate,
|
||||
|
||||
walk,
|
||||
find: walk.find,
|
||||
findLast: walk.findLast,
|
||||
findAll: walk.findAll,
|
||||
|
||||
fromPlainObject,
|
||||
toPlainObject,
|
||||
|
||||
fork(extension) {
|
||||
const base = mix({}, config); // copy of config
|
||||
|
||||
return createSyntax(
|
||||
typeof extension === 'function'
|
||||
? extension(base) // TODO: remove Object.assign as second parameter
|
||||
: mix(base, extension)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
syntax.lexer = new Lexer({
|
||||
generic: config.generic,
|
||||
cssWideKeywords: config.cssWideKeywords,
|
||||
units: config.units,
|
||||
types: config.types,
|
||||
atrules: config.atrules,
|
||||
properties: config.properties,
|
||||
node: config.node
|
||||
}, syntax);
|
||||
|
||||
return syntax;
|
||||
};
|
||||
|
||||
export default config => createSyntax(mix({}, config));
|
Reference in New Issue
Block a user