123456789101112131415161718192021222324252627282930313233343536 |
- module.exports = function createResolver(alias) {
- if(typeof alias !== "object" || Array.isArray(alias)) {
- return function(url) {
- return url
- };
- }
- alias = Object.keys(alias).map(function(key) {
- var onlyModule = false;
- var obj = alias[key];
- if(/\$$/.test(key)) {
- onlyModule = true;
- key = key.substr(0, key.length - 1);
- }
- if(typeof obj === "string") {
- obj = {
- alias: obj
- };
- }
- obj = Object.assign({
- name: key,
- onlyModule: onlyModule
- }, obj);
- return obj;
- });
- return function(url) {
- alias.forEach(function(obj) {
- var name = obj.name;
- if(url === name || (!obj.onlyModule && url.startsWith(name + "/"))) {
- url = obj.alias + url.substr(name.length);
- }
- });
- return url;
- }
- }
|