Add yet-another-react-lightbox package and update .gitignore to exclude node_modules
This commit is contained in:
20
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.d.ts
generated
vendored
20
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.d.ts
generated
vendored
@@ -1,20 +0,0 @@
|
||||
import { ConfigAPI, NodePath, types } from '@babel/core';
|
||||
|
||||
interface Attribute {
|
||||
name: string;
|
||||
value?: boolean | number | string | null;
|
||||
spread?: boolean;
|
||||
literal?: boolean;
|
||||
position?: 'start' | 'end';
|
||||
}
|
||||
interface Options {
|
||||
elements: string[];
|
||||
attributes: Attribute[];
|
||||
}
|
||||
declare const addJSXAttribute: (_: ConfigAPI, opts: Options) => {
|
||||
visitor: {
|
||||
JSXOpeningElement(path: NodePath<types.JSXOpeningElement>): void;
|
||||
};
|
||||
};
|
||||
|
||||
export { Attribute, Options, addJSXAttribute as default };
|
||||
79
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js
generated
vendored
79
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js
generated
vendored
@@ -1,79 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var core = require('@babel/core');
|
||||
|
||||
const positionMethod = {
|
||||
start: "unshiftContainer",
|
||||
end: "pushContainer"
|
||||
};
|
||||
const addJSXAttribute = (_, opts) => {
|
||||
function getAttributeValue({
|
||||
literal,
|
||||
value
|
||||
}) {
|
||||
if (typeof value === "boolean") {
|
||||
return core.types.jsxExpressionContainer(core.types.booleanLiteral(value));
|
||||
}
|
||||
if (typeof value === "number") {
|
||||
return core.types.jsxExpressionContainer(core.types.numericLiteral(value));
|
||||
}
|
||||
if (typeof value === "string" && literal) {
|
||||
return core.types.jsxExpressionContainer(
|
||||
core.template.ast(value).expression
|
||||
);
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
return core.types.stringLiteral(value);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function getAttribute({ spread, name, value, literal }) {
|
||||
if (spread) {
|
||||
return core.types.jsxSpreadAttribute(core.types.identifier(name));
|
||||
}
|
||||
return core.types.jsxAttribute(
|
||||
core.types.jsxIdentifier(name),
|
||||
getAttributeValue({ value, literal })
|
||||
);
|
||||
}
|
||||
return {
|
||||
visitor: {
|
||||
JSXOpeningElement(path) {
|
||||
if (!core.types.isJSXIdentifier(path.node.name))
|
||||
return;
|
||||
if (!opts.elements.includes(path.node.name.name))
|
||||
return;
|
||||
opts.attributes.forEach(
|
||||
({
|
||||
name,
|
||||
value = null,
|
||||
spread = false,
|
||||
literal = false,
|
||||
position = "end"
|
||||
}) => {
|
||||
const method = positionMethod[position];
|
||||
const newAttribute = getAttribute({ spread, name, value, literal });
|
||||
const attributes = path.get("attributes");
|
||||
const isEqualAttribute = (attribute) => {
|
||||
if (spread)
|
||||
return attribute.isJSXSpreadAttribute() && attribute.get("argument").isIdentifier({ name });
|
||||
return attribute.isJSXAttribute() && attribute.get("name").isJSXIdentifier({ name });
|
||||
};
|
||||
const replaced = attributes.some((attribute) => {
|
||||
if (!isEqualAttribute(attribute))
|
||||
return false;
|
||||
attribute.replaceWith(newAttribute);
|
||||
return true;
|
||||
});
|
||||
if (!replaced) {
|
||||
path[method]("attributes", newAttribute);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = addJSXAttribute;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js.map
generated
vendored
1
frontend/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user