| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.findVueComponentImports = void 0;
- const path_1 = __importDefault(require("path"));
- const es_module_lexer_1 = require("es-module-lexer");
- const shared_1 = require("@vue/shared");
- const types_1 = require("@babel/types");
- const parser_1 = require("@babel/parser");
- const constants_1 = require("../constants");
- const utils_1 = require("../utils");
- /**
- * 暂时没用
- * @param source
- * @param importer
- * @param resolve
- * @returns
- */
- async function findVueComponentImports(source, importer, resolve) {
- await es_module_lexer_1.init;
- let imports = [];
- // strip UTF-8 BOM
- if (source.charCodeAt(0) === 0xfeff) {
- source = source.slice(1);
- }
- try {
- imports = (0, es_module_lexer_1.parse)(source)[0];
- }
- catch (e) {
- console.error(e);
- }
- if (!imports.length) {
- return [];
- }
- const rewriteImports = [];
- for (let i = 0; i < imports.length; i++) {
- const importSpecifier = imports[i];
- const { n } = importSpecifier;
- if (!n) {
- continue;
- }
- const extname = path_1.default.extname(n);
- // 仅处理没有后缀,或后缀是.vue,.nvue的文件
- if (extname && !constants_1.EXTNAME_VUE.includes(extname)) {
- continue;
- }
- const res = await resolve(n, importer);
- if (!res) {
- continue;
- }
- if (constants_1.EXTNAME_VUE_RE.test(res.id)) {
- const expr = (0, parser_1.parse)(source.slice(importSpecifier.ss, importSpecifier.se), {
- plugins: (0, utils_1.normalizeParsePlugins)(res.id),
- sourceType: 'module',
- }).program.body[0];
- if ((0, types_1.isImportDeclaration)(expr) && expr.specifiers.length === 1) {
- const importDefaultSpecifier = expr.specifiers[0];
- if (!(0, types_1.isImportDefaultSpecifier)(importDefaultSpecifier)) {
- continue;
- }
- rewriteImports.push((0, shared_1.extend)(importSpecifier, {
- n: res.id,
- i: importDefaultSpecifier.local.name,
- }));
- }
- }
- }
- return rewriteImports;
- }
- exports.findVueComponentImports = findVueComponentImports;
|