ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
61 lines (60 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AntDesignXVueResolver = AntDesignXVueResolver;
/**
* set of components that are contained in the package
* (name after stripping the `AX` prefix from template tags)
*/
var primitiveNames = new Set([
'Actions',
'Attachments',
'Bubble',
'Conversations',
'Prompts',
'Provider',
'Sender',
'Suggestion',
'Think',
'ThoughtChain',
'Sources',
'FileCard',
'Folder',
'CodeHighlighter',
'Mermaid',
'XMarkdown',
'XCard',
'Box',
'Card',
'Welcome',
]);
/**
* Map template suffix → actual named export from the package.
* `<AXProvider>` strips to `Provider`, but the export is `XProvider`.
*/
var exportNameMap = {
Provider: 'XProvider',
};
function isAntdXVueComponent(name) {
return primitiveNames.has(name);
}
function AntDesignXVueResolver(options) {
if (options === void 0) { options = {}; }
var _a = options.prefix, prefix = _a === void 0 ? 'AX' : _a, _b = options.packageName, packageName = _b === void 0 ? 'ant-design-x-vue-next' : _b, _c = options.exclude, exclude = _c === void 0 ? [] : _c;
var resolverInfo = {
type: 'component',
resolve: function (name) {
if (!name.startsWith(prefix))
return;
var componentName = name.slice(prefix.length);
if (!isAntdXVueComponent(componentName) || exclude.includes(componentName))
return;
var exportName = exportNameMap[componentName] || componentName;
return {
name: exportName,
from: packageName,
as: "".concat(prefix).concat(componentName)
};
}
};
return resolverInfo.resolve;
}