You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
5.4 KiB
207 lines
5.4 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getBlockList = exports.createBlockLog = exports.DEFAULT_RESOURCES = exports.getFilesTreeData = exports.getFolderTreeData = void 0;
|
|
|
|
function _react() {
|
|
const data = _interopRequireDefault(require("react"));
|
|
|
|
_react = function _react() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _fs() {
|
|
const data = _interopRequireDefault(require("fs"));
|
|
|
|
_fs = function _fs() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _chalk() {
|
|
const data = _interopRequireDefault(require("chalk"));
|
|
|
|
_chalk = function _chalk() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _path() {
|
|
const data = require("path");
|
|
|
|
_path = function _path() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _umi() {
|
|
const data = require("umi");
|
|
|
|
_umi = function _umi() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _blockSdk() {
|
|
const data = require("@umijs/block-sdk");
|
|
|
|
_blockSdk = function _blockSdk() {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
|
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
|
|
const winPath = _umi().utils.winPath;
|
|
|
|
/**
|
|
* 遍历文件地址
|
|
* @param path
|
|
*/
|
|
const getFolderTreeData = (path, parentPath = '/', depth = 0) => {
|
|
const files = _fs().default.readdirSync(winPath(path));
|
|
|
|
return files.map(fileName => {
|
|
const status = _fs().default.statSync((0, _path().join)(path, fileName)); // 是文件夹 并且不已 . 开头, 且最深三层
|
|
|
|
|
|
if (status.isDirectory() && fileName.indexOf('.') !== 0 && depth < 3) {
|
|
const absPath = winPath((0, _path().join)(path, fileName));
|
|
const absPagePath = winPath((0, _path().join)(parentPath, fileName));
|
|
const children = getFolderTreeData(absPath, absPagePath, depth + 1);
|
|
|
|
if (children && children.length > 0) {
|
|
return {
|
|
key: absPagePath,
|
|
title: fileName,
|
|
value: absPagePath,
|
|
children
|
|
};
|
|
}
|
|
|
|
return {
|
|
title: fileName,
|
|
value: absPagePath,
|
|
key: absPagePath
|
|
};
|
|
}
|
|
|
|
return undefined;
|
|
}).filter(obj => obj);
|
|
};
|
|
/**
|
|
* 遍历文件地址
|
|
* 包含文件
|
|
* @param path
|
|
*/
|
|
|
|
|
|
exports.getFolderTreeData = getFolderTreeData;
|
|
|
|
const getFilesTreeData = (path, parentPath = '/', depth = 0) => {
|
|
const files = _fs().default.readdirSync(winPath(path));
|
|
|
|
return files.map(fileName => {
|
|
const status = _fs().default.statSync((0, _path().join)(path, fileName));
|
|
|
|
const isDirectory = status.isDirectory(); // 是文件夹 并且不已 . 开头, 且最深五层
|
|
|
|
if (fileName.indexOf('.') !== 0 && depth < 5) {
|
|
if (!isDirectory && !fileName.includes('.tsx') && !fileName.includes('.jsx') && !fileName.includes('.js') && !fileName.includes('.ts')) {
|
|
return undefined;
|
|
}
|
|
|
|
const absPath = winPath((0, _path().join)(path, fileName));
|
|
const absPagePath = winPath((0, _path().join)(parentPath, fileName));
|
|
const children = isDirectory ? getFilesTreeData(absPath, absPagePath, depth + 1) : [];
|
|
return {
|
|
selectable: !isDirectory,
|
|
key: absPagePath,
|
|
title: fileName,
|
|
value: absPagePath,
|
|
children
|
|
};
|
|
}
|
|
|
|
return undefined;
|
|
}).filter(obj => obj);
|
|
};
|
|
|
|
exports.getFilesTreeData = getFilesTreeData;
|
|
const DEFAULT_RESOURCES = [{
|
|
id: 'ant-design-pro',
|
|
name: 'Ant Design Pro',
|
|
resourceType: 'custom',
|
|
description: '基于 antd 的中台模板。',
|
|
blockType: 'template',
|
|
icon: 'https://img.alicdn.com/tfs/TB1e8gomAL0gK0jSZFAXXcA9pXa-64-64.png',
|
|
getData: () => (0, _blockSdk().fetchCDNBlocks)({
|
|
pkg: 'pro-blocks',
|
|
summary: 'umi-block.json',
|
|
version: '^1.0.0'
|
|
})
|
|
}, {
|
|
id: 'ant-design-blocks',
|
|
name: 'Ant Design',
|
|
resourceType: 'custom',
|
|
description: '来自 antd 的 Demo 区块',
|
|
blockType: 'block',
|
|
icon: 'https://img.alicdn.com/tfs/TB1e8gomAL0gK0jSZFAXXcA9pXa-64-64.png',
|
|
getData: () => (0, _blockSdk().fetchCDNBlocks)({
|
|
pkg: 'ant-design-blocks',
|
|
summary: 'umi-block.json',
|
|
version: '^1.0.0'
|
|
})
|
|
}]; // 日志带 block 前缀
|
|
|
|
exports.DEFAULT_RESOURCES = DEFAULT_RESOURCES;
|
|
|
|
const createBlockLog = log => (logType, info) => log(logType, `${_chalk().default.hex('#40a9ff')('block:')} ${info}`);
|
|
/**
|
|
* 从 resource 中获取数据源
|
|
*/
|
|
|
|
|
|
exports.createBlockLog = createBlockLog;
|
|
|
|
const getBlockList = /*#__PURE__*/function () {
|
|
var _ref = _asyncToGenerator(function* (resourceId, list) {
|
|
const resource = list.find(item => item.id === resourceId);
|
|
|
|
if (resource) {
|
|
if (resource.resourceType === 'custom') {
|
|
const _yield$resource$getDa = yield resource.getData(),
|
|
data = _yield$resource$getDa.data;
|
|
|
|
return data;
|
|
}
|
|
}
|
|
|
|
return [];
|
|
});
|
|
|
|
return function getBlockList(_x, _x2) {
|
|
return _ref.apply(this, arguments);
|
|
};
|
|
}();
|
|
|
|
exports.getBlockList = getBlockList; |