Prepare for publishing

This commit is contained in:
Anton Vakhrushev 2018-06-07 12:10:14 +03:00
parent b84cf6251d
commit 5896a77bc2
7 changed files with 2420 additions and 2371 deletions

1
lib/predictor.js Normal file

File diff suppressed because one or more lines are too long

4718
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,12 @@
{
"name": "app",
"name": "predictor",
"version": "1.0.0",
"description": "",
"main": "index.js",
"module": "lib/predictor.js",
"scripts": {
"test": "jest",
"build": "webpack",
"build:dev": "webpack",
"build": "WEBPACK_ENV=build webpack",
"start:dev": "webpack-dev-server",
"format": "prettier --tab-width=4 --single-quote --trailing-comma es5 --write '{source,tests}/**/*.js'"
},
@ -20,6 +21,7 @@
"babel-preset-env": "^1.6.1",
"bable-loader": "0.0.1-security",
"css-loader": "^0.28.11",
"deepmerge": "^2.1.1",
"jest": "^22.4.4",
"prettier": "^1.12.1",
"sass-loader": "^7.0.1",

View File

@ -2,12 +2,23 @@ import Journal from './Journal';
import Supervisor from './Supervisor';
import Daemon from './Daemon';
const DEFAULT_CONFIG = {
supervisor_epsilon: 0.01,
daemons: [
{ human: 2, robot: 2, epsilon: 0.01 },
{ human: 3, robot: 3, epsilon: 0.01 },
{ human: 4, robot: 4, epsilon: 0.01 },
{ human: 5, robot: 5, epsilon: 0.01 },
{ human: 6, robot: 6, epsilon: 0.01 },
],
};
export default class Predictor {
score;
journal;
supervisor;
constructor(config) {
constructor(config = DEFAULT_CONFIG) {
this.score = 0;
this.journal = new Journal();
const daemons = config.daemons.map(daemonConfig => {
@ -17,7 +28,7 @@ export default class Predictor {
daemonConfig.epsilon || 0.01
);
});
this.supervisor = new Supervisor(daemons, config.epsilon || 0.01);
this.supervisor = new Supervisor(daemons, config.supervisor_epsilon);
}
pass(value) {

3
source/build.js Normal file
View File

@ -0,0 +1,3 @@
import Predictor from './Predictor';
export default Predictor;

View File

@ -5,7 +5,13 @@ import Predictor from './Predictor';
new Vue({
el: '#app',
data: {
predictor: new Predictor(),
predictor: new Predictor({
daemons: [
{ human: 3, robot: 3 },
{ human: 4, robot: 4 },
{ human: 5, robot: 5 },
],
}),
},
methods: {
click(v) {

View File

@ -1,14 +1,7 @@
const path = require('path');
const merge = require('deepmerge');
module.exports = {
mode: 'development',
entry: path.resolve(__dirname, 'source/index.js'),
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'web/dist'),
publicPath: 'dist/',
},
const baseConfig = {
module: {
rules: [
{
@ -24,6 +17,28 @@ module.exports = {
},
]
},
};
const buildConfig = {
mode: 'production',
entry: path.resolve(__dirname, 'source/build.js'),
output: {
filename: 'predictor.js',
path: path.resolve(__dirname, 'lib'),
library: 'predictor',
libraryTarget: 'umd',
umdNamedDefine: true
},
};
const devConfig = {
mode: 'development',
entry: path.resolve(__dirname, 'source/index.js'),
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'web/dist'),
publicPath: 'dist/',
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
@ -36,3 +51,8 @@ module.exports = {
port: 9000,
}
};
module.exports = merge(
baseConfig,
process.env.WEBPACK_ENV === 'build' ? buildConfig : devConfig
);