* feat: v5 BREAKING CHANGE: Mergely is no longer a jQuery plugin. BREAKING CHANGE: Removed `options.autoresize` BREAKING CHANGE: Removed `options.editor_width` BREAKING CHANGE: Removed `options.editor_height` BREAKING CHANGE: Removed `options.fadein` BREAKING CHANGE: Removed `options.fgcolor` BREAKING CHANGE: Removed `options.resize` BREAKING CHANGE: Removed `options.width` BREAKING CHANGE: Removed `options.height` BREAKING CHANGE: Removed `options.loaded` callback BREAKING CHANGE: Removed `options.resized` callback BREAKING CHANGE: Removed styles `.mergely-resizer`, `.mergely-full-screen-0`, and `.mergely-full-screen-8` BREAKING CHANGE: Changed default for `options.change_timeout` changed from `150` to `50`. BREAKING CHANGE: No longer automatically scrolls to first change. feat: CodeMirror is now an explicit dependency. feat: No longer necessary to separately require codemirror/addon/search/searchcursor feat: No longer necessary to separately require codemirror/addon/selection/mark-selection feat: `mergely.js` is now unminimized, and added new minimized version `mergely.min.js` feat: Gutter click now scrolls to any line feat: Mergely now emits `resize` event on resize feat: The UI is now non-blocking as diff now runs in background feat: Added support to provide `options.lhs` and `options.rhs` as strings feat: #16 added titles to editor.mergely.com fix: #165 block of changes at end of file are now distinguishable fix: #140 fixed performance issue with large files fix: Fixed issue where canvas markup was not rendered when `viewport` enabled fix: Fixed timing issue where swap sides may not work as expected. fix: Fixed issue where unmarkup did not emit an updated event. fix: Fixed documentation issue where `merge` incorrectly stated: from the specified `side` to the opposite side. fix: Fixed performance issue scrolling fix: Fixed issue where initial render scrolled to first change, showing it at the bottom (as opposed to middle as expected) fix: Fixed issue where line-diffs failed to diff non-alphanumeric characters * chore: tweaked no-start/end styles * feat: dark mode * chore: updated examples * chore(ci): updated webpack * chore(ci): alpha, beta, next branches * chore(ci): test * chore(ci): package-lock.json * chore(ci): ignore alpha, beta, next on branch * fix: fixes firefox scroll-linked effect issue * fix: fixes firefox scroll-linked effect issue * chore: fix css * chore: debug
108 lines
2.3 KiB
JavaScript
108 lines
2.3 KiB
JavaScript
const os = require('os');
|
|
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const webpackConfig = require('./webpack.dev.js');
|
|
|
|
const ENTROPY_SIZE = 1000000;
|
|
const outputPath = `${path.join(os.tmpdir(), "_karma_webpack_")}${Math.floor(Math.random() * ENTROPY_SIZE)}`;
|
|
|
|
module.exports = function(config) {
|
|
config.set({
|
|
restartOnFileChange: true,
|
|
|
|
browsers: [ 'MyHeadlessChrome' ],
|
|
|
|
customLaunchers: {
|
|
MyHeadlessChrome: {
|
|
base: 'ChromeHeadless',
|
|
flags: [ '--no-sandbox' ]
|
|
}
|
|
},
|
|
|
|
frameworks: [
|
|
'webpack',
|
|
'mocha',
|
|
'chai'
|
|
],
|
|
|
|
plugins: [
|
|
'karma-webpack',
|
|
'karma-mocha',
|
|
'karma-chai',
|
|
'karma-chrome-launcher',
|
|
'karma-sourcemap-loader',
|
|
'karma-mocha-reporter',
|
|
'karma-coverage-istanbul-reporter',
|
|
// 'karma-coverage-istanbul-instrumenter'
|
|
],
|
|
|
|
files: [
|
|
'node_modules/codemirror/lib/codemirror.css',
|
|
'src/mergely.css',
|
|
'src/*.js',
|
|
'test/**/*.spec.js'
|
|
],
|
|
|
|
preprocessors: {
|
|
'node_modules/codemirror/lib/codemirror.js': [ 'webpack' ],
|
|
'test/*.spec.js': [ 'webpack' ],
|
|
// 'src/*.js': [ 'webpack', 'sourcemap', 'karma-coverage-istanbul-instrumenter' ]
|
|
'src/*.js': [ 'webpack', 'sourcemap' ]
|
|
},
|
|
|
|
reporters: [ 'mocha', 'coverage-istanbul' ],
|
|
|
|
coverageIstanbulReporter: {
|
|
reports: [ 'html', 'lcov', 'text-summary' ],
|
|
dir: path.join(__dirname, 'coverage'),
|
|
fixWebpackSourcePaths: false,
|
|
esModules: false,
|
|
// enforce percentage thresholds
|
|
// anything under these percentages will cause karma to fail
|
|
// with an exit code of 1 if not running in watch mode
|
|
thresholds: {
|
|
// set to `true` to not fail the test command when thresholds are not met
|
|
emitWarning: true,
|
|
global: { // thresholds for all files
|
|
statements: 94.09,
|
|
branches: 89.92,
|
|
functions: 92.67,
|
|
lines: 94.33
|
|
}
|
|
}
|
|
},
|
|
|
|
colors: true,
|
|
|
|
logLevel: config.LOG_DEBUG,
|
|
|
|
singleRun: true,
|
|
|
|
webpack: tweakWebpack(webpackConfig),
|
|
});
|
|
}
|
|
|
|
function tweakWebpack(webpackConfig) {
|
|
const config = {
|
|
...webpackConfig,
|
|
output: {
|
|
// https://github.com/scottohara/tvmanager/issues/99
|
|
path: outputPath
|
|
},
|
|
externals: {
|
|
CodeMirror: 'CodeMirror'
|
|
}
|
|
};
|
|
if (!config.plugins) {
|
|
config.plugins = [];
|
|
}
|
|
config.plugins.push(
|
|
new webpack.ProvidePlugin({
|
|
CodeMirror: 'codemirror'
|
|
})
|
|
);
|
|
config.devtool = 'inline-source-map';
|
|
|
|
return config;
|
|
}
|