uni-ticket-system/node_modules/@dcloudio/uni-cli-shared/dist/vite/utils/ast.js
2023-12-05 10:11:10 +08:00

94 lines
3.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCompoundExpressionNode = exports.isSimpleExpressionNode = exports.isDirectiveNode = exports.isAttributeNode = exports.isElementNode = exports.parseVue = exports.createCallExpression = exports.createIdentifier = exports.createLiteral = exports.isReference = exports.isExportSpecifier = exports.isMethodDefinition = exports.isMemberExpression = exports.isCallExpression = exports.isAssignmentExpression = exports.isIdentifier = exports.isProperty = void 0;
const compiler_dom_1 = require("@vue/compiler-dom");
const isProperty = (node) => node.type === 'Property';
exports.isProperty = isProperty;
const isIdentifier = (node) => node.type === 'Identifier';
exports.isIdentifier = isIdentifier;
const isAssignmentExpression = (node) => node.type === 'AssignmentExpression';
exports.isAssignmentExpression = isAssignmentExpression;
const isCallExpression = (node) => node.type === 'CallExpression';
exports.isCallExpression = isCallExpression;
const isMemberExpression = (node) => node.type === 'MemberExpression';
exports.isMemberExpression = isMemberExpression;
const isMethodDefinition = (node) => node.type === 'MethodDefinition';
exports.isMethodDefinition = isMethodDefinition;
const isExportSpecifier = (node) => node.type === 'ExportSpecifier';
exports.isExportSpecifier = isExportSpecifier;
const isReference = (node, parent) => {
if ((0, exports.isMemberExpression)(node)) {
return !node.computed && (0, exports.isReference)(node.object, node);
}
if ((0, exports.isIdentifier)(node)) {
if ((0, exports.isMemberExpression)(parent))
return parent.computed || node === parent.object;
// `bar` in { bar: foo }
if ((0, exports.isProperty)(parent) && node !== parent.value)
return false;
// `bar` in `class Foo { bar () {...} }`
if ((0, exports.isMethodDefinition)(parent))
return false;
// `bar` in `export { foo as bar }`
if ((0, exports.isExportSpecifier)(parent) && node !== parent.local)
return false;
return true;
}
return false;
};
exports.isReference = isReference;
function createLiteral(value) {
return {
type: 'Literal',
value,
raw: `'${value}'`,
};
}
exports.createLiteral = createLiteral;
function createIdentifier(name) {
return {
type: 'Identifier',
name,
};
}
exports.createIdentifier = createIdentifier;
function createCallExpression(callee, args) {
return {
type: 'CallExpression',
callee,
arguments: args,
};
}
exports.createCallExpression = createCallExpression;
function parseVue(code, errors) {
return (0, compiler_dom_1.parse)(code, {
isNativeTag: () => true,
isPreTag: () => true,
getTextMode: () => 0 /* TextModes.DATA */,
onError: (e) => {
errors.push(e);
},
});
}
exports.parseVue = parseVue;
function isElementNode(node) {
return node.type === 1 /* NodeTypes.ELEMENT */;
}
exports.isElementNode = isElementNode;
function isAttributeNode(node) {
return node.type === 6 /* NodeTypes.ATTRIBUTE */;
}
exports.isAttributeNode = isAttributeNode;
function isDirectiveNode(node) {
return node.type === 7 /* NodeTypes.DIRECTIVE */;
}
exports.isDirectiveNode = isDirectiveNode;
function isSimpleExpressionNode(node) {
return node.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */;
}
exports.isSimpleExpressionNode = isSimpleExpressionNode;
function isCompoundExpressionNode(node) {
return node.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */;
}
exports.isCompoundExpressionNode = isCompoundExpressionNode;