初始化
This commit is contained in:
248
uni_modules/UniDevTools/node_modules/@dcloudio/uni-cli-shared/dist/uts.js
generated
vendored
Normal file
248
uni_modules/UniDevTools/node_modules/@dcloudio/uni-cli-shared/dist/uts.js
generated
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseUniExtApiNamespacesJsOnce = exports.parseUniExtApiNamespacesOnce = exports.parseSwiftPackageWithPluginId = exports.parseKotlinPackageWithPluginId = exports.initUTSComponents = exports.parseUTSComponent = exports.isUTSComponent = exports.resolveUTSCompiler = exports.resolveUTSModule = exports.resolveUTSAppModule = void 0;
|
||||
const fs_1 = __importDefault(require("fs"));
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const fast_glob_1 = __importDefault(require("fast-glob"));
|
||||
const shared_1 = require("@vue/shared");
|
||||
const hbx_1 = require("./hbx");
|
||||
const utils_1 = require("./utils");
|
||||
const uni_shared_1 = require("@dcloudio/uni-shared");
|
||||
const uni_modules_1 = require("./uni_modules");
|
||||
/**
|
||||
* 解析 app 平台的 uts 插件,任意平台(android|ios)存在即可
|
||||
* @param id
|
||||
* @param importer
|
||||
* @returns
|
||||
*/
|
||||
function resolveUTSAppModule(id, importer, includeUTSSDK = true) {
|
||||
id = path_1.default.resolve(importer, id);
|
||||
if (id.includes('uni_modules') || (includeUTSSDK && id.includes('utssdk'))) {
|
||||
const parts = (0, utils_1.normalizePath)(id).split('/');
|
||||
const parentDir = parts[parts.length - 2];
|
||||
if (parentDir === 'uni_modules' ||
|
||||
(includeUTSSDK && parentDir === 'utssdk')) {
|
||||
const basedir = parentDir === 'uni_modules' ? 'utssdk' : '';
|
||||
if (fs_1.default.existsSync(path_1.default.resolve(id, basedir, 'index.uts'))) {
|
||||
return id;
|
||||
}
|
||||
const resolvePlatformDir = (p) => {
|
||||
return path_1.default.resolve(id, basedir, p);
|
||||
};
|
||||
const extname = ['.uts'];
|
||||
if (resolveUTSFile(resolvePlatformDir('app-android'), extname)) {
|
||||
return id;
|
||||
}
|
||||
if (resolveUTSFile(resolvePlatformDir('app-ios'), extname)) {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.resolveUTSAppModule = resolveUTSAppModule;
|
||||
// 仅限 root/uni_modules/test-plugin | root/utssdk/test-plugin 格式
|
||||
function resolveUTSModule(id, importer, includeUTSSDK = true) {
|
||||
if (process.env.UNI_PLATFORM === 'app' ||
|
||||
process.env.UNI_PLATFORM === 'app-plus') {
|
||||
return resolveUTSAppModule(id, importer);
|
||||
}
|
||||
id = path_1.default.resolve(importer, id);
|
||||
if (id.includes('uni_modules') || (includeUTSSDK && id.includes('utssdk'))) {
|
||||
const parts = (0, utils_1.normalizePath)(id).split('/');
|
||||
const parentDir = parts[parts.length - 2];
|
||||
if (parentDir === 'uni_modules' ||
|
||||
(includeUTSSDK && parentDir === 'utssdk')) {
|
||||
const basedir = parentDir === 'uni_modules' ? 'utssdk' : '';
|
||||
const resolvePlatformDir = (p) => {
|
||||
return path_1.default.resolve(id, basedir, p);
|
||||
};
|
||||
let index = resolveUTSFile(resolvePlatformDir(process.env.UNI_UTS_PLATFORM));
|
||||
if (index) {
|
||||
return index;
|
||||
}
|
||||
index = path_1.default.resolve(id, basedir, 'index.uts');
|
||||
if (fs_1.default.existsSync(index)) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.resolveUTSModule = resolveUTSModule;
|
||||
function resolveUTSFile(dir, extensions = ['.uts', '.ts', '.js']) {
|
||||
for (let i = 0; i < extensions.length; i++) {
|
||||
const indexFile = path_1.default.join(dir, 'index' + extensions[i]);
|
||||
if (fs_1.default.existsSync(indexFile)) {
|
||||
return indexFile;
|
||||
}
|
||||
}
|
||||
}
|
||||
function resolveUTSCompiler() {
|
||||
let compilerPath = '';
|
||||
if ((0, hbx_1.isInHBuilderX)()) {
|
||||
try {
|
||||
compilerPath = require.resolve(path_1.default.resolve(process.env.UNI_HBUILDERX_PLUGINS, 'uniapp-uts-v1'));
|
||||
}
|
||||
catch (e) { }
|
||||
}
|
||||
if (!compilerPath) {
|
||||
try {
|
||||
compilerPath = require.resolve('@dcloudio/uni-uts-v1', {
|
||||
paths: [process.env.UNI_CLI_CONTEXT],
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
let utsCompilerVersion = utils_1.version;
|
||||
if (utils_1.version.startsWith('2.0.')) {
|
||||
utsCompilerVersion = '^3.0.0-alpha-3060920221117001';
|
||||
}
|
||||
console.error((0, utils_1.installDepTips)('devDependencies', '@dcloudio/uni-uts-v1', utsCompilerVersion));
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
return require(compilerPath);
|
||||
}
|
||||
exports.resolveUTSCompiler = resolveUTSCompiler;
|
||||
const utsComponents = new Map();
|
||||
function isUTSComponent(name) {
|
||||
return utsComponents.has(name);
|
||||
}
|
||||
exports.isUTSComponent = isUTSComponent;
|
||||
function parseUTSComponent(name, type) {
|
||||
const meta = utsComponents.get(name);
|
||||
if (meta) {
|
||||
const namespace = meta[type === 'swift' ? 'swiftModule' : 'kotlinPackage'] || '';
|
||||
const className = (0, shared_1.capitalize)((0, shared_1.camelize)(name)) + 'Component';
|
||||
return {
|
||||
className,
|
||||
namespace,
|
||||
source: meta.source,
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.parseUTSComponent = parseUTSComponent;
|
||||
function initUTSComponents(inputDir, platform) {
|
||||
utsComponents.clear();
|
||||
const components = [];
|
||||
if (platform !== 'app' && platform !== 'app-plus') {
|
||||
return components;
|
||||
}
|
||||
const easycomsObj = {};
|
||||
const dirs = resolveUTSComponentDirs(inputDir);
|
||||
dirs.forEach((dir) => {
|
||||
const is_uni_modules_utssdk = dir.endsWith('utssdk');
|
||||
const is_ussdk = !is_uni_modules_utssdk && path_1.default.dirname(dir).endsWith('utssdk');
|
||||
const pluginId = is_uni_modules_utssdk
|
||||
? path_1.default.basename(path_1.default.dirname(dir))
|
||||
: path_1.default.basename(dir);
|
||||
if (is_uni_modules_utssdk || is_ussdk) {
|
||||
fast_glob_1.default
|
||||
.sync('**/*.vue', {
|
||||
cwd: dir,
|
||||
absolute: true,
|
||||
})
|
||||
.forEach((file) => {
|
||||
let name = parseVueComponentName(file);
|
||||
if (!name) {
|
||||
if (file.endsWith('index.vue')) {
|
||||
name = path_1.default.basename(is_uni_modules_utssdk ? path_1.default.dirname(dir) : dir);
|
||||
}
|
||||
}
|
||||
if (name) {
|
||||
const importDir = (0, utils_1.normalizePath)(is_uni_modules_utssdk ? path_1.default.dirname(dir) : dir);
|
||||
easycomsObj[`^${name}$`] = {
|
||||
source: `${importDir}?uts-proxy`,
|
||||
kotlinPackage: parseKotlinPackageWithPluginId(pluginId, is_uni_modules_utssdk),
|
||||
swiftModule: parseSwiftPackageWithPluginId(pluginId, is_uni_modules_utssdk),
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
Object.keys(easycomsObj).forEach((name) => {
|
||||
const obj = easycomsObj[name];
|
||||
const componentName = name.slice(1, -1);
|
||||
components.push({
|
||||
name: componentName,
|
||||
pattern: new RegExp(name),
|
||||
replacement: obj.source,
|
||||
});
|
||||
utsComponents.set(componentName, {
|
||||
source: obj.source,
|
||||
kotlinPackage: obj.kotlinPackage,
|
||||
swiftModule: obj.swiftModule,
|
||||
});
|
||||
});
|
||||
return components;
|
||||
}
|
||||
exports.initUTSComponents = initUTSComponents;
|
||||
function resolveUTSComponentDirs(inputDir) {
|
||||
const utssdkDir = path_1.default.resolve(inputDir, 'utssdk');
|
||||
const uniModulesDir = path_1.default.resolve(inputDir, 'uni_modules');
|
||||
return fast_glob_1.default
|
||||
.sync('*', {
|
||||
cwd: utssdkDir,
|
||||
absolute: true,
|
||||
onlyDirectories: true,
|
||||
})
|
||||
.concat(fast_glob_1.default.sync('*/utssdk', {
|
||||
cwd: uniModulesDir,
|
||||
absolute: true,
|
||||
onlyDirectories: true,
|
||||
}));
|
||||
}
|
||||
const nameRE = /name\s*:\s*['|"](.*)['|"]/;
|
||||
function parseVueComponentName(file) {
|
||||
const content = fs_1.default.readFileSync(file, 'utf8');
|
||||
const matches = content.match(nameRE);
|
||||
if (matches) {
|
||||
return matches[1];
|
||||
}
|
||||
}
|
||||
function prefix(id) {
|
||||
if (process.env.UNI_UTS_MODULE_PREFIX &&
|
||||
!id.startsWith(process.env.UNI_UTS_MODULE_PREFIX)) {
|
||||
return process.env.UNI_UTS_MODULE_PREFIX + '-' + id;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
function parseKotlinPackageWithPluginId(id, is_uni_modules) {
|
||||
return 'uts.sdk.' + (is_uni_modules ? 'modules.' : '') + (0, shared_1.camelize)(prefix(id));
|
||||
}
|
||||
exports.parseKotlinPackageWithPluginId = parseKotlinPackageWithPluginId;
|
||||
function parseSwiftPackageWithPluginId(id, is_uni_modules) {
|
||||
return ('UTSSDK' +
|
||||
(is_uni_modules ? 'Modules' : '') +
|
||||
(0, shared_1.capitalize)((0, shared_1.camelize)(prefix(id))));
|
||||
}
|
||||
exports.parseSwiftPackageWithPluginId = parseSwiftPackageWithPluginId;
|
||||
exports.parseUniExtApiNamespacesOnce = (0, uni_shared_1.once)((platform, language) => {
|
||||
const extApis = (0, exports.parseUniExtApiNamespacesJsOnce)(platform, language);
|
||||
const namespaces = {};
|
||||
Object.keys(extApis).forEach((name) => {
|
||||
const options = extApis[name];
|
||||
let source = options[0];
|
||||
const pluginId = path_1.default.basename(options[0]);
|
||||
if (language === 'kotlin') {
|
||||
source = parseKotlinPackageWithPluginId(pluginId, true);
|
||||
}
|
||||
else if (language === 'swift') {
|
||||
source = parseSwiftPackageWithPluginId(pluginId, true);
|
||||
}
|
||||
namespaces[name] = [source, options[1]];
|
||||
});
|
||||
return namespaces;
|
||||
});
|
||||
exports.parseUniExtApiNamespacesJsOnce = (0, uni_shared_1.once)((platform, language) => {
|
||||
const extApis = (0, uni_modules_1.parseUniExtApis)(true, platform, language);
|
||||
const namespaces = {};
|
||||
Object.keys(extApis).forEach((name) => {
|
||||
const options = extApis[name];
|
||||
if ((0, shared_1.isArray)(options) && options.length >= 2) {
|
||||
namespaces[name.replace('uni.', '')] = [options[0], options[1]];
|
||||
}
|
||||
});
|
||||
return namespaces;
|
||||
});
|
||||
Reference in New Issue
Block a user