{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/modules/preprocessor/index.ts"],"sourcesContent":["import type { Program } from \"oxc-parser\";\n\nimport type { Specifier } from \"#/@types/specifier\";\nimport type { CompilerContext } from \"#/contexts/compiler\";\nimport type { PreprocessCallExprResult } from \"#/modules/preprocessor/preprocess/call-expr\";\nimport type { PreprocessVarDeclResult } from \"#/modules/preprocessor/preprocess/var-decl\";\n\nimport { preprocessCallExpr } from \"#/modules/preprocessor/preprocess/call-expr\";\nimport { preprocessVarDecl } from \"#/modules/preprocessor/preprocess/var-decl\";\n\n/**\n * Options for the `preprocess` function.\n */\ntype PreprocessOptions = {\n    /**\n     * Compiler context.\n     */\n    context: CompilerContext;\n    /**\n     * Program to preprocess.\n     */\n    program: Program;\n    /**\n     * Namespaces used by the CSS-in-JS package.\n     */\n    namespaces: readonly string[];\n    /**\n     * CSS-in-JS package functions to be preprocessed.\n     */\n    includedFunctions: readonly string[];\n    /**\n     * Specifiers used by the CSS-in-JS package.\n     */\n    specifiers: readonly Specifier[];\n};\n\n/**\n * Result of the `preprocess` function.\n */\ntype PreprocessResult = {\n    program: Program;\n};\n\n/**\n * Preprocess function.\n */\nconst preprocess = (options: PreprocessOptions): PreprocessResult => {\n    const resultCallExpr: PreprocessCallExprResult = preprocessCallExpr({\n        context: options.context,\n        program: options.program,\n        namespaces: options.namespaces,\n        includedFunctions: options.includedFunctions,\n        specifiers: options.specifiers,\n    });\n\n    const resultVarDecl: PreprocessVarDeclResult = preprocessVarDecl({\n        context: options.context,\n        program: resultCallExpr.program,\n        namespaces: options.namespaces,\n        includedFunctions: options.includedFunctions,\n        specifiers: options.specifiers,\n    });\n\n    return {\n        program: resultVarDecl.program,\n    };\n};\n\nexport type { PreprocessOptions, PreprocessResult };\nexport { preprocess };\n"],"mappings":";;;;;;AA8CA,MAAM,cAAc,YAAiD;CACjE,MAAM,iBAA2C,mBAAmB;EAChE,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,YAAY,QAAQ;EACpB,mBAAmB,QAAQ;EAC3B,YAAY,QAAQ;CACxB,CAAC;CAUD,OAAO,EACH,SAT2C,kBAAkB;EAC7D,SAAS,QAAQ;EACjB,SAAS,eAAe;EACxB,YAAY,QAAQ;EACpB,mBAAmB,QAAQ;EAC3B,YAAY,QAAQ;CACxB,CAGyB,CAAC,CAAC,QAC3B;AACJ"}