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

75 lines
2.6 KiB
JavaScript

"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;