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.

81 lines
2.2 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getTmpFile = void 0;
function _react() {
const data = _interopRequireDefault(require("react"));
_react = function _react() {
return data;
};
return data;
}
var _getProviderContent = _interopRequireDefault(require("./getProviderContent"));
var _getUseModelContent = _interopRequireDefault(require("./getUseModelContent"));
function _os() {
const data = require("os");
_os = function _os() {
return data;
};
return data;
}
function _umi() {
const data = require("umi");
_umi = function _umi() {
return data;
};
return data;
}
var _ = require(".");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const winPath = _umi().utils.winPath;
function getModels(files, absSrcPath) {
const sortedModels = (0, _.genModels)(files, absSrcPath);
return sortedModels.map(ele => `'${ele.namespace.replace(/'/g, "\\'")}': ${ele.importName}`).join(', ');
}
function getExtraModels(models = [], absSrcPath) {
const extraModels = (0, _.genExtraModels)(models, absSrcPath);
return extraModels.map(ele => `'${ele.namespace}': ${ele.exportName || ele.importName}`).join(', ');
}
function getExtraImports(models = [], absSrcPath) {
const extraModels = (0, _.genExtraModels)(models, absSrcPath);
return extraModels.map(ele => {
if (ele.exportName) {
return `import { ${ele.exportName} } from '${winPath(ele.importPath.replace(/'/g, "\\'"))}';`;
}
return `import ${ele.importName} from '${winPath(ele.importPath.replace(/'/g, "\\'"))}';`;
}).join(_os().EOL);
}
const getTmpFile = (files, extra = [], absSrcPath) => {
const imports = (0, _.genImports)(files);
const userModels = getModels(files, absSrcPath);
const extraImports = getExtraImports(extra, absSrcPath);
const extraModels = getExtraModels(extra, absSrcPath);
const enable = Boolean(imports || extraImports);
return {
providerContent: (0, _getProviderContent.default)(imports, userModels, extraImports, extraModels),
useModelContent: enable ? (0, _getUseModelContent.default)() : 'export const useModel = undefined;'
};
};
exports.getTmpFile = getTmpFile;