12345678910111213141516171819202122232425262728293031323334353637 |
- "use strict";
- const stringify = require("./stringify");
- const parseStyle = require("./parse-style");
- const normalOpts = require("./normal-opts");
- module.exports = (extract, lang) => {
- const defaultConfig = {
- postcss: "css",
- stylus: "css",
- babel: "jsx",
- xml: "html",
- };
- function parse (source, opts) {
- source = source.toString();
- opts = normalOpts(opts, this);
- const document = parseStyle(source, opts, extract(source, opts));
- document.source.lang = lang;
- return document;
- }
- function initSyntax (syntax) {
- syntax.stringify = stringify.bind(syntax);
- syntax.parse = parse.bind(syntax);
- syntax.extract = extract.bind(syntax);
- return syntax;
- }
- function syntax (config) {
- return initSyntax({
- config: Object.assign({}, defaultConfig, config),
- });
- }
- initSyntax(syntax);
- syntax.config = defaultConfig;
- return syntax;
- };
|