Allow single (non-default) import from dependencies
This commit is contained in:
@@ -111,11 +111,13 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"module": "pixelworks",
|
"module": "pixelworks",
|
||||||
|
"import": "Processor",
|
||||||
"browserify": true
|
"browserify": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"module": "vector-tile",
|
"module": "vector-tile",
|
||||||
"name": "vectortile",
|
"name": "vectortile",
|
||||||
|
"import": "VectorTile",
|
||||||
"browserify": true
|
"browserify": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ goog.provide('ol.format.MVT');
|
|||||||
|
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.ext.PBF');
|
goog.require('ol.ext.PBF');
|
||||||
goog.require('ol.ext.vectortile');
|
goog.require('ol.ext.vectortile.VectorTile');
|
||||||
goog.require('ol.format.Feature');
|
goog.require('ol.format.Feature');
|
||||||
goog.require('ol.format.FormatType');
|
goog.require('ol.format.FormatType');
|
||||||
goog.require('ol.geom.GeometryLayout');
|
goog.require('ol.geom.GeometryLayout');
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ goog.require('ol.dom');
|
|||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.ext.pixelworks');
|
goog.require('ol.ext.pixelworks.Processor');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.layer.Image');
|
goog.require('ol.layer.Image');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ function getExternalModules() {
|
|||||||
module: item.module,
|
module: item.module,
|
||||||
name: item.name !== undefined ? item.name : item.module,
|
name: item.name !== undefined ? item.name : item.module,
|
||||||
main: require.resolve(item.module),
|
main: require.resolve(item.module),
|
||||||
|
import: item.import,
|
||||||
browserify: item.browserify !== undefined ? item.browserify : false
|
browserify: item.browserify !== undefined ? item.browserify : false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -43,10 +44,16 @@ function getExternalModules() {
|
|||||||
* wrapped module.
|
* wrapped module.
|
||||||
*/
|
*/
|
||||||
function wrapModule(mod, callback) {
|
function wrapModule(mod, callback) {
|
||||||
|
var name = 'ol.ext.' + mod.name;
|
||||||
|
var member = 'module.exports';
|
||||||
|
if (mod.import) {
|
||||||
|
name += '.' + mod.import;
|
||||||
|
member += '.' + mod.import;
|
||||||
|
}
|
||||||
var wrap = function(code) {
|
var wrap = function(code) {
|
||||||
return 'goog.provide(\'ol.ext.' + mod.name + '\');\n' +
|
return 'goog.provide(\'' + name + '\');\n' +
|
||||||
'/** @typedef {function(*)} */\n' +
|
'/** @typedef {function(*)} */\n' +
|
||||||
'ol.ext.' + mod.name + ';\n' +
|
name + ';\n' +
|
||||||
'(function() {\n' +
|
'(function() {\n' +
|
||||||
'var exports = {};\n' +
|
'var exports = {};\n' +
|
||||||
'var module = {exports: exports};\n' +
|
'var module = {exports: exports};\n' +
|
||||||
@@ -60,7 +67,7 @@ function wrapModule(mod, callback) {
|
|||||||
'strictModuleDepCheck, suspiciousCode, undefinedNames, ' +
|
'strictModuleDepCheck, suspiciousCode, undefinedNames, ' +
|
||||||
'undefinedVars, unknownDefines, unusedLocalVariables, uselessCode, visibility}\n' +
|
'undefinedVars, unknownDefines, unusedLocalVariables, uselessCode, visibility}\n' +
|
||||||
' */\n' + code + '\n' +
|
' */\n' + code + '\n' +
|
||||||
'ol.ext.' + mod.name + ' = module.exports;\n' +
|
name + ' = ' + member + ';\n' +
|
||||||
'})();\n';
|
'})();\n';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ goog.provide('ol.test.format.MVT');
|
|||||||
|
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.ext.PBF');
|
goog.require('ol.ext.PBF');
|
||||||
goog.require('ol.ext.vectortile');
|
goog.require('ol.ext.vectortile.VectorTile');
|
||||||
goog.require('ol.format.MVT');
|
goog.require('ol.format.MVT');
|
||||||
goog.require('ol.geom.Point');
|
goog.require('ol.geom.Point');
|
||||||
goog.require('ol.render.Feature');
|
goog.require('ol.render.Feature');
|
||||||
|
|||||||
@@ -16,8 +16,10 @@ function resolve(fromName, toName) {
|
|||||||
if (toParts[0] === 'ol' && toParts[1] === 'ext') {
|
if (toParts[0] === 'ol' && toParts[1] === 'ext') {
|
||||||
let name = toParts[2];
|
let name = toParts[2];
|
||||||
let packageName;
|
let packageName;
|
||||||
|
let imported;
|
||||||
for (let i = 0, ii = pkg.ext.length; i < ii; ++i) {
|
for (let i = 0, ii = pkg.ext.length; i < ii; ++i) {
|
||||||
const dependency = pkg.ext[i];
|
const dependency = pkg.ext[i];
|
||||||
|
imported = dependency.import;
|
||||||
if (dependency.module === name) {
|
if (dependency.module === name) {
|
||||||
packageName = name;
|
packageName = name;
|
||||||
break;
|
break;
|
||||||
@@ -29,7 +31,11 @@ function resolve(fromName, toName) {
|
|||||||
if (!packageName) {
|
if (!packageName) {
|
||||||
throw new Error(`Can't find package name for ${toName}`);
|
throw new Error(`Can't find package name for ${toName}`);
|
||||||
}
|
}
|
||||||
return packageName;
|
if (imported) {
|
||||||
|
return [packageName, imported];
|
||||||
|
} else {
|
||||||
|
return packageName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const fromLength = fromParts.length;
|
const fromLength = fromParts.length;
|
||||||
let commonDepth = 1;
|
let commonDepth = 1;
|
||||||
@@ -186,12 +192,18 @@ module.exports = function(info, api) {
|
|||||||
}
|
}
|
||||||
const renamed = rename(name);
|
const renamed = rename(name);
|
||||||
replacements[name] = renamed;
|
replacements[name] = renamed;
|
||||||
imports.push(
|
const resolved = resolve(provide, name);
|
||||||
j.importDeclaration(
|
let specifier, source;
|
||||||
[j.importDefaultSpecifier(j.identifier(renamed))],
|
if (Array.isArray(resolved)) {
|
||||||
j.literal(resolve(provide, name))
|
// import {imported as renamed} from 'source';
|
||||||
)
|
specifier = j.importSpecifier(j.identifier(resolved[1]), j.identifier(renamed));
|
||||||
);
|
source = resolved[0];
|
||||||
|
} else {
|
||||||
|
// import renamed from 'source';
|
||||||
|
specifier = j.importDefaultSpecifier(j.identifier(renamed));
|
||||||
|
source = resolved;
|
||||||
|
}
|
||||||
|
imports.push(j.importDeclaration([specifier], j.literal(source)));
|
||||||
})
|
})
|
||||||
.remove();
|
.remove();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user