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.
101 lines
3.9 KiB
101 lines
3.9 KiB
/** |
|
* Copyright (c) 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'; |
|
|
|
/* eslint-disable indent */ |
|
|
|
module.exports = function(options) { |
|
options = Object.assign({ |
|
autoImport: true, |
|
inlineRequires: process.env.NODE_ENV === 'test', |
|
objectAssign: true, |
|
rewriteModules: null, // {map: ?{[module: string]: string}, prefix: ?string} |
|
stripDEV: false, |
|
target: 'js', |
|
}, options); |
|
|
|
if (options.target !== 'js' && options.target !== 'flow') { |
|
throw new Error('options.target must be one of "js" or "flow".'); |
|
} |
|
|
|
// Always enable these. These will overlap with some transforms (which also |
|
// enable the corresponding syntax, eg Flow), but these are the minimal |
|
// additional syntaxes that need to be enabled so we can minimally transform |
|
// to .js.flow files as well. |
|
let presetSets = [ |
|
[ |
|
require('babel-plugin-syntax-class-properties'), |
|
require('babel-plugin-syntax-flow'), |
|
require('babel-plugin-syntax-jsx'), |
|
require('babel-plugin-syntax-trailing-function-commas'), |
|
require('babel-plugin-syntax-object-rest-spread'), |
|
|
|
options.autoImport ? require('./plugins/auto-importer') : null, |
|
options.rewriteModules ? |
|
[require('./plugins/rewrite-modules'), options.rewriteModules || {}] : |
|
null, |
|
], |
|
[ |
|
options.inlineRequires ? require('./plugins/inline-requires') : null, |
|
options.stripDEV ? require('./plugins/dev-expression') : null, |
|
] |
|
]; |
|
|
|
// We only want to add declarations for flow transforms and not for js. So we |
|
// have to do this separate from above. |
|
if (options.target === 'flow') { |
|
presetSets[0].push(require('./plugins/dev-declaration')); |
|
} |
|
|
|
// Enable everything else for js. |
|
if (options.target === 'js') { |
|
presetSets[0] = presetSets[0].concat([ |
|
require('babel-plugin-transform-es2015-template-literals'), |
|
require('babel-plugin-transform-es2015-literals'), |
|
require('babel-plugin-transform-es2015-function-name'), |
|
require('babel-plugin-transform-es2015-arrow-functions'), |
|
require('babel-plugin-transform-es2015-block-scoped-functions'), |
|
require('babel-plugin-transform-class-properties'), |
|
[require('babel-plugin-transform-es2015-classes'), {loose: true}], |
|
require('babel-plugin-transform-es2015-object-super'), |
|
require('babel-plugin-transform-es2015-shorthand-properties'), |
|
require('babel-plugin-transform-es2015-computed-properties'), |
|
require('babel-plugin-transform-es2015-for-of'), |
|
require('babel-plugin-check-es2015-constants'), |
|
[require('babel-plugin-transform-es2015-spread'), {loose: true}], |
|
require('babel-plugin-transform-es2015-parameters'), |
|
[require('babel-plugin-transform-es2015-destructuring'), {loose: true}], |
|
require('babel-plugin-transform-es2015-block-scoping'), |
|
require('babel-plugin-transform-es2015-modules-commonjs'), |
|
require('babel-plugin-transform-es3-member-expression-literals'), |
|
require('babel-plugin-transform-es3-property-literals'), |
|
require('babel-plugin-transform-flow-strip-types'), |
|
require('babel-plugin-transform-object-rest-spread'), |
|
require('babel-plugin-transform-react-display-name'), |
|
require('babel-plugin-transform-react-jsx'), |
|
// Don't enable this plugin unless we're compiling JS, even if the option is true |
|
options.objectAssign ? require('./plugins/object-assign') : null, |
|
]); |
|
} |
|
|
|
// Use two passes to circumvent bug with auto-importer and inline-requires. |
|
const passPresets = presetSets.map(function(plugins) { |
|
return { |
|
plugins: plugins.filter(function(plugin) { |
|
return plugin != null; |
|
}), |
|
}; |
|
}); |
|
|
|
return { |
|
passPerPreset: true, |
|
presets: passPresets, |
|
}; |
|
};
|
|
|