From e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Mon, 16 Nov 2020 00:10:28 +0100 Subject: api, login, auth --- .../lib/index.js | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 node_modules/babel-plugin-transform-react-jsx-source/lib/index.js (limited to 'node_modules/babel-plugin-transform-react-jsx-source/lib/index.js') diff --git a/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js b/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js new file mode 100644 index 0000000..5b9f08c --- /dev/null +++ b/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js @@ -0,0 +1,52 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function (_ref) { + var t = _ref.types; + + function makeTrace(fileNameIdentifier, lineNumber) { + var fileLineLiteral = lineNumber != null ? t.numericLiteral(lineNumber) : t.nullLiteral(); + var fileNameProperty = t.objectProperty(t.identifier("fileName"), fileNameIdentifier); + var lineNumberProperty = t.objectProperty(t.identifier("lineNumber"), fileLineLiteral); + return t.objectExpression([fileNameProperty, lineNumberProperty]); + } + + var visitor = { + JSXOpeningElement: function JSXOpeningElement(path, state) { + var id = t.jSXIdentifier(TRACE_ID); + var location = path.container.openingElement.loc; + if (!location) { + return; + } + + var attributes = path.container.openingElement.attributes; + for (var i = 0; i < attributes.length; i++) { + var name = attributes[i].name; + if (name && name.name === TRACE_ID) { + return; + } + } + + if (!state.fileNameIdentifier) { + var fileName = state.file.log.filename !== "unknown" ? state.file.log.filename : null; + + var fileNameIdentifier = path.scope.generateUidIdentifier(FILE_NAME_VAR); + path.hub.file.scope.push({ id: fileNameIdentifier, init: t.stringLiteral(fileName) }); + state.fileNameIdentifier = fileNameIdentifier; + } + + var trace = makeTrace(state.fileNameIdentifier, location.start.line); + attributes.push(t.jSXAttribute(id, t.jSXExpressionContainer(trace))); + } + }; + + return { + visitor: visitor + }; +}; + +var TRACE_ID = "__source"; +var FILE_NAME_VAR = "_jsxFileName"; + +module.exports = exports["default"]; \ No newline at end of file -- cgit v1.2.3