UNPKG

7.05 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/requireCssModule.js"],"names":["getFiletypeOptions","cssSourceFilePath","filetypes","extension","substr","lastIndexOf","filetype","getSyntax","filetypeOptions","syntax","require","getExtraPlugins","plugins","map","plugin","Array","isArray","pluginName","pluginOptions","getTokens","runner","options","from","lazyResult","process","warnings","forEach","message","console","warn","text","root","tokens","generateScopedName","optionsDefaults","context","cwd","fetch","to","fromDirectoryPath","toPath","extraPlugins","Values","LocalByDefault","ExtractImports","Scope","Parser"],"mappings":"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","sourcesContent":["// @flow\n\nimport {\n dirname,\n resolve\n} from 'path';\nimport {\n readFileSync\n} from 'fs';\nimport postcss from 'postcss';\nimport genericNames from 'generic-names';\nimport ExtractImports from 'postcss-modules-extract-imports';\nimport LocalByDefault from 'postcss-modules-local-by-default';\nimport Parser from 'postcss-modules-parser';\nimport Scope from 'postcss-modules-scope';\nimport Values from 'postcss-modules-values';\nimport type {\n GenerateScopedNameConfigurationType,\n StyleModuleMapType\n} from './types';\nimport optionsDefaults from './schemas/optionsDefaults';\n\ntype FiletypeOptionsType = {|\n +syntax: string,\n +plugins?: $ReadOnlyArray<string | $ReadOnlyArray<[string, mixed]>>\n|};\n\ntype FiletypesConfigurationType = {\n [key: string]: FiletypeOptionsType\n};\n\ntype OptionsType = {|\n filetypes: FiletypesConfigurationType,\n generateScopedName?: GenerateScopedNameConfigurationType,\n context?: string\n|};\n\nconst getFiletypeOptions = (cssSourceFilePath: string, filetypes: FiletypesConfigurationType): ?FiletypeOptionsType => {\n const extension = cssSourceFilePath.substr(cssSourceFilePath.lastIndexOf('.'));\n const filetype = filetypes ? filetypes[extension] : null;\n\n return filetype;\n};\n\n// eslint-disable-next-line flowtype/no-weak-types\nconst getSyntax = (filetypeOptions: FiletypeOptionsType): ?(Function | Object) => {\n if (!filetypeOptions || !filetypeOptions.syntax) {\n return null;\n }\n\n // eslint-disable-next-line import/no-dynamic-require, global-require\n return require(filetypeOptions.syntax);\n};\n\n// eslint-disable-next-line flowtype/no-weak-types\nconst getExtraPlugins = (filetypeOptions: ?FiletypeOptionsType): $ReadOnlyArray<*> => {\n if (!filetypeOptions || !filetypeOptions.plugins) {\n return [];\n }\n\n return filetypeOptions.plugins.map((plugin) => {\n if (Array.isArray(plugin)) {\n const [pluginName, pluginOptions] = plugin;\n\n // eslint-disable-next-line import/no-dynamic-require, global-require\n return require(pluginName)(pluginOptions);\n }\n\n // eslint-disable-next-line import/no-dynamic-require, global-require\n return require(plugin);\n });\n};\n\nconst getTokens = (runner, cssSourceFilePath: string, filetypeOptions: ?FiletypeOptionsType): StyleModuleMapType => {\n // eslint-disable-next-line flowtype/no-weak-types\n const options: Object = {\n from: cssSourceFilePath\n };\n\n if (filetypeOptions) {\n options.syntax = getSyntax(filetypeOptions);\n }\n\n const lazyResult = runner\n .process(readFileSync(cssSourceFilePath, 'utf-8'), options);\n\n lazyResult\n .warnings()\n .forEach((message) => {\n // eslint-disable-next-line no-console\n console.warn(message.text);\n });\n\n return lazyResult.root.tokens;\n};\n\nexport default (cssSourceFilePath: string, options: OptionsType): StyleModuleMapType => {\n // eslint-disable-next-line prefer-const\n let runner;\n\n let generateScopedName;\n\n if (options.generateScopedName && typeof options.generateScopedName === 'function') {\n generateScopedName = options.generateScopedName;\n } else {\n generateScopedName = genericNames(options.generateScopedName || optionsDefaults.generateScopedName, {\n context: options.context || process.cwd()\n });\n }\n\n const filetypeOptions = getFiletypeOptions(cssSourceFilePath, options.filetypes);\n\n const fetch = (to: string, from: string) => {\n const fromDirectoryPath = dirname(from);\n const toPath = resolve(fromDirectoryPath, to);\n\n return getTokens(runner, toPath, filetypeOptions);\n };\n\n const extraPlugins = getExtraPlugins(filetypeOptions);\n\n const plugins = [\n ...extraPlugins,\n Values,\n LocalByDefault,\n ExtractImports,\n new Scope({\n generateScopedName\n }),\n new Parser({\n fetch\n })\n ];\n\n runner = postcss(plugins);\n\n return getTokens(runner, cssSourceFilePath, filetypeOptions);\n};\n"],"file":"requireCssModule.js"}
\No newline at end of file