更新
This commit is contained in:
+74
@@ -0,0 +1,74 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.isJsFile = exports.cleanUrl = exports.hashRE = exports.queryRE = exports.isInternalRequest = exports.ENV_PUBLIC_PATH = exports.CLIENT_PUBLIC_PATH = exports.VALID_ID_PREFIX = exports.FS_PREFIX = exports.isImportRequest = exports.parseVueRequest = void 0;
|
||||
const shared_1 = require("@vue/shared");
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const constants_1 = require("../../constants");
|
||||
function parseVueRequest(id) {
|
||||
const [filename, rawQuery] = id.split(`?`, 2);
|
||||
const query = Object.fromEntries(new URLSearchParams(rawQuery));
|
||||
if (query.vue != null) {
|
||||
query.vue = true;
|
||||
}
|
||||
if (query.src != null) {
|
||||
query.src = true;
|
||||
}
|
||||
if (query.index != null) {
|
||||
query.index = Number(query.index);
|
||||
}
|
||||
if (query.raw != null) {
|
||||
query.raw = true;
|
||||
}
|
||||
return {
|
||||
filename,
|
||||
query,
|
||||
};
|
||||
}
|
||||
exports.parseVueRequest = parseVueRequest;
|
||||
const importQueryRE = /(\?|&)import=?(?:&|$)/;
|
||||
const isImportRequest = (url) => importQueryRE.test(url);
|
||||
exports.isImportRequest = isImportRequest;
|
||||
/**
|
||||
* Prefix for resolved fs paths, since windows paths may not be valid as URLs.
|
||||
*/
|
||||
exports.FS_PREFIX = `/@fs/`;
|
||||
/**
|
||||
* Prefix for resolved Ids that are not valid browser import specifiers
|
||||
*/
|
||||
exports.VALID_ID_PREFIX = `/@id/`;
|
||||
exports.CLIENT_PUBLIC_PATH = `/@vite/client`;
|
||||
exports.ENV_PUBLIC_PATH = `/@vite/env`;
|
||||
const internalPrefixes = [
|
||||
exports.FS_PREFIX,
|
||||
exports.VALID_ID_PREFIX,
|
||||
exports.CLIENT_PUBLIC_PATH,
|
||||
exports.ENV_PUBLIC_PATH,
|
||||
];
|
||||
const InternalPrefixRE = new RegExp(`^(?:${internalPrefixes.join('|')})`);
|
||||
const isInternalRequest = (url) => InternalPrefixRE.test(url);
|
||||
exports.isInternalRequest = isInternalRequest;
|
||||
exports.queryRE = /\?.*$/;
|
||||
exports.hashRE = /#.*$/;
|
||||
const cleanUrl = (url) => url.replace(exports.hashRE, '').replace(exports.queryRE, '');
|
||||
exports.cleanUrl = cleanUrl;
|
||||
function isJsFile(id) {
|
||||
const { filename, query } = parseVueRequest(id);
|
||||
const isJs = constants_1.EXTNAME_JS_RE.test(filename);
|
||||
if (isJs) {
|
||||
return true;
|
||||
}
|
||||
const isVueJs = constants_1.EXTNAME_VUE.includes(path_1.default.extname(filename)) &&
|
||||
(!query.vue ||
|
||||
query.setup ||
|
||||
(0, shared_1.hasOwn)(query, 'lang.ts') ||
|
||||
(0, shared_1.hasOwn)(query, 'lang.js') ||
|
||||
(0, shared_1.hasOwn)(query, 'lang.uts'));
|
||||
if (isVueJs) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
exports.isJsFile = isJsFile;
|
||||
Reference in New Issue
Block a user