This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
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.
52 lines
1.4 KiB
52 lines
1.4 KiB
/** |
|
* Copyright 2013-present, Facebook, Inc. |
|
* All rights reserved. |
|
* |
|
* This source code is licensed under the BSD-style license found in the |
|
* LICENSE file in the root directory of this source tree. An additional grant |
|
* of patent rights can be found in the PATENTS file in the same directory. |
|
*/ |
|
|
|
'use strict'; |
|
|
|
module.exports = function autoImporter(babel) { |
|
const t = babel.types; |
|
|
|
function getAssignIdent(path, file, state) { |
|
if (!state.id) { |
|
state.id = path.scope.generateUidIdentifier('assign'); |
|
path.scope.getProgramParent().push({ |
|
id: state.id, |
|
init: t.callExpression( |
|
t.identifier('require'), |
|
[t.stringLiteral('object-assign')] |
|
), |
|
}); |
|
} |
|
return state.id; |
|
} |
|
|
|
return { |
|
pre: function() { |
|
// map from module to generated identifier |
|
this.id = null; |
|
}, |
|
|
|
visitor: { |
|
CallExpression: function(path, file) { |
|
if (path.get('callee').matchesPattern('Object.assign')) { |
|
// generate identifier and require if it hasn't been already |
|
var id = getAssignIdent(path, file, this); |
|
path.node.callee = id; |
|
} |
|
}, |
|
|
|
MemberExpression: function(path, file) { |
|
if (path.matchesPattern('Object.assign')) { |
|
var id = getAssignIdent(path, file, this); |
|
path.replaceWith(id); |
|
} |
|
}, |
|
}, |
|
}; |
|
};
|
|
|