UNPKG

17.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/index.js"],"names":["ajv","Ajv","$data","validate","compile","optionsSchema","types","t","filenameMap","skip","setupFileForRuntimeResolution","path","filename","programPath","findParent","parentPath","isProgram","importedHelperIndentifier","scope","generateUidIdentifier","styleModuleImportMapIdentifier","unshiftContainer","importDeclaration","importDefaultSpecifier","stringLiteral","firstNonImportDeclarationNode","get","find","node","isImportDeclaration","insertBefore","variableDeclaration","variableDeclarator","styleModuleImportMap","addWebpackHotModuleAccept","test","memberExpression","identifier","consequent","blockStatement","expressionStatement","callExpression","source","value","functionExpression","hotAcceptStatement","ifStatement","pushContainer","getTargetResourcePath","stats","targetFileDirectoryPath","file","opts","startsWith","require","resolve","isFilenameExcluded","exclude","match","RegExp","notForPlugin","filetypes","extension","lastIndexOf","substr","Object","keys","indexOf","inherits","babelPluginJsxSyntax","visitor","ImportDeclaration","targetResourcePath","styleImportName","specifiers","length","local","name","console","warn","Error","context","generateScopedName","webpackHotModuleReloading","removeImport","remove","JSXElement","attributeNames","optionsDefaults","assign","attributes","openingElement","filter","attribute","handleMissingStyleName","autoResolveMultipleImports","destinationName","options","isStringLiteral","isJSXExpressionContainer","Program","error","errors"],"mappings":"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","sourcesContent":["// @flow\n\nimport {\n dirname,\n resolve\n} from 'path';\nimport babelPluginJsxSyntax from '@babel/plugin-syntax-jsx';\nimport BabelTypes from '@babel/types';\nimport ajvKeywords from 'ajv-keywords';\nimport Ajv from 'ajv';\nimport optionsSchema from './schemas/optionsSchema.json';\nimport optionsDefaults from './schemas/optionsDefaults';\nimport createObjectExpression from './createObjectExpression';\nimport requireCssModule from './requireCssModule';\nimport resolveStringLiteral from './resolveStringLiteral';\nimport replaceJsxExpressionContainer from './replaceJsxExpressionContainer';\nimport attributeNameExists from './attributeNameExists';\n\nconst ajv = new Ajv({\n // eslint-disable-next-line id-match\n $data: true\n});\n\najvKeywords(ajv);\n\nconst validate = ajv.compile(optionsSchema);\n\nexport default ({\n types: t\n}: {\n types: BabelTypes\n}) => {\n const filenameMap = {};\n\n let skip = false;\n\n const setupFileForRuntimeResolution = (path, filename) => {\n const programPath = path.findParent((parentPath) => {\n return parentPath.isProgram();\n });\n\n filenameMap[filename].importedHelperIndentifier = programPath.scope.generateUidIdentifier('getClassName');\n filenameMap[filename].styleModuleImportMapIdentifier = programPath.scope.generateUidIdentifier('styleModuleImportMap');\n\n programPath.unshiftContainer(\n 'body',\n t.importDeclaration(\n [\n t.importDefaultSpecifier(\n filenameMap[filename].importedHelperIndentifier\n )\n ],\n t.stringLiteral('babel-plugin-react-css-modules/dist/browser/getClassName')\n )\n );\n\n const firstNonImportDeclarationNode = programPath.get('body').find((node) => {\n return !t.isImportDeclaration(node);\n });\n\n firstNonImportDeclarationNode.insertBefore(\n t.variableDeclaration(\n 'const',\n [\n t.variableDeclarator(\n filenameMap[filename].styleModuleImportMapIdentifier,\n createObjectExpression(t, filenameMap[filename].styleModuleImportMap)\n )\n ]\n )\n );\n // eslint-disable-next-line no-console\n // console.log('setting up', filename, util.inspect(filenameMap,{depth: 5}))\n };\n\n const addWebpackHotModuleAccept = (path) => {\n const test = t.memberExpression(t.identifier('module'), t.identifier('hot'));\n const consequent = t.blockStatement([\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(\n t.memberExpression(t.identifier('module'), t.identifier('hot')),\n t.identifier('accept')\n ),\n [\n t.stringLiteral(path.node.source.value),\n t.functionExpression(null, [], t.blockStatement([\n t.expressionStatement(\n t.callExpression(\n t.identifier('require'),\n [t.stringLiteral(path.node.source.value)]\n )\n )\n ]))\n ]\n )\n )\n ]);\n\n const programPath = path.findParent((parentPath) => {\n return parentPath.isProgram();\n });\n\n const firstNonImportDeclarationNode = programPath.get('body').find((node) => {\n return !t.isImportDeclaration(node);\n });\n\n const hotAcceptStatement = t.ifStatement(test, consequent);\n\n if (firstNonImportDeclarationNode) {\n firstNonImportDeclarationNode.insertBefore(hotAcceptStatement);\n } else {\n programPath.pushContainer('body', hotAcceptStatement);\n }\n };\n\n const getTargetResourcePath = (path: *, stats: *) => {\n const targetFileDirectoryPath = dirname(stats.file.opts.filename);\n\n if (path.node.source.value.startsWith('.')) {\n return resolve(targetFileDirectoryPath, path.node.source.value);\n }\n\n return require.resolve(path.node.source.value);\n };\n\n const isFilenameExcluded = (filename, exclude) => {\n return filename.match(new RegExp(exclude));\n };\n\n const notForPlugin = (path: *, stats: *) => {\n stats.opts.filetypes = stats.opts.filetypes || {};\n\n const extension = path.node.source.value.lastIndexOf('.') > -1 ? path.node.source.value.substr(path.node.source.value.lastIndexOf('.')) : null;\n\n if (extension !== '.css' && Object.keys(stats.opts.filetypes).indexOf(extension) < 0) {\n return true;\n }\n\n const filename = getTargetResourcePath(path, stats);\n\n if (stats.opts.exclude && isFilenameExcluded(filename, stats.opts.exclude)) {\n return true;\n }\n\n return false;\n };\n\n return {\n inherits: babelPluginJsxSyntax,\n visitor: {\n ImportDeclaration (path: *, stats: *): void {\n if (skip || notForPlugin(path, stats)) {\n return;\n }\n\n const filename = stats.file.opts.filename;\n const targetResourcePath = getTargetResourcePath(path, stats);\n\n let styleImportName: string;\n\n if (path.node.specifiers.length === 0) {\n // use imported file path as import name\n styleImportName = path.node.source.value;\n } else if (path.node.specifiers.length === 1) {\n styleImportName = path.node.specifiers[0].local.name;\n } else {\n // eslint-disable-next-line no-console\n console.warn('Please report your use case. https://github.com/gajus/babel-plugin-react-css-modules/issues/new?title=Unexpected+use+case.');\n\n throw new Error('Unexpected use case.');\n }\n\n filenameMap[filename].styleModuleImportMap[styleImportName] = requireCssModule(targetResourcePath, {\n context: stats.opts.context,\n filetypes: stats.opts.filetypes || {},\n generateScopedName: stats.opts.generateScopedName\n });\n\n if (stats.opts.webpackHotModuleReloading) {\n addWebpackHotModuleAccept(path);\n }\n\n if (stats.opts.removeImport) {\n path.remove();\n }\n },\n JSXElement (path: *, stats: *): void {\n if (skip) {\n return;\n }\n\n const filename = stats.file.opts.filename;\n\n if (stats.opts.exclude && isFilenameExcluded(filename, stats.opts.exclude)) {\n return;\n }\n\n let attributeNames = optionsDefaults.attributeNames;\n\n if (stats.opts && stats.opts.attributeNames) {\n attributeNames = Object.assign({}, attributeNames, stats.opts.attributeNames);\n }\n\n const attributes = path.node.openingElement.attributes\n .filter((attribute) => {\n return typeof attribute.name !== 'undefined' && typeof attributeNames[attribute.name.name] === 'string';\n });\n\n if (attributes.length === 0) {\n return;\n }\n\n const handleMissingStyleName = stats.opts && stats.opts.handleMissingStyleName || optionsDefaults.handleMissingStyleName;\n const autoResolveMultipleImports = stats.opts && stats.opts.autoResolveMultipleImports || optionsDefaults.autoResolveMultipleImports;\n\n for (const attribute of attributes) {\n const destinationName = attributeNames[attribute.name.name];\n\n const options = {\n autoResolveMultipleImports,\n handleMissingStyleName\n };\n\n if (t.isStringLiteral(attribute.value)) {\n resolveStringLiteral(\n path,\n filenameMap[filename].styleModuleImportMap,\n attribute,\n destinationName,\n options\n );\n } else if (t.isJSXExpressionContainer(attribute.value)) {\n if (!filenameMap[filename].importedHelperIndentifier) {\n setupFileForRuntimeResolution(path, filename);\n }\n replaceJsxExpressionContainer(\n t,\n path,\n attribute,\n destinationName,\n filenameMap[filename].importedHelperIndentifier,\n filenameMap[filename].styleModuleImportMapIdentifier,\n options\n );\n }\n }\n },\n Program (path: *, stats: *): void {\n if (!validate(stats.opts)) {\n // eslint-disable-next-line no-console\n console.error(validate.errors);\n\n throw new Error('Invalid configuration');\n }\n\n const filename = stats.file.opts.filename;\n\n filenameMap[filename] = {\n styleModuleImportMap: {}\n };\n\n if (stats.opts.skip && !attributeNameExists(path, stats)) {\n skip = true;\n }\n }\n }\n };\n};\n"],"file":"index.js"}
\No newline at end of file