Skip to content

Commit

Permalink
add webpack
Browse files Browse the repository at this point in the history
  • Loading branch information
vinicius73 committed Mar 2, 2017
1 parent f1fc303 commit 3034266
Show file tree
Hide file tree
Showing 6 changed files with 1,682 additions and 26 deletions.
1 change: 0 additions & 1 deletion .gitignore
@@ -1,2 +1 @@
node_modules/
.gitignore
152 changes: 152 additions & 0 deletions dist/index.js
@@ -0,0 +1,152 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};

/******/ // The require function
/******/ function __webpack_require__(moduleId) {

/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;

/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };

/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ // Flag the module as loaded
/******/ module.l = true;

/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }


/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;

/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;

/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };

/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };

/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };

/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };

/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";

/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 3);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

module.exports = store;

/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

const store = __webpack_require__(0)

const makeWatchers = (storage, dataKey) => Object.keys((acc, key) => {
const vueKey = `${dataKey}.${key}`
// allow .bind
const handler = function handler (value) {
store.set(key, value)
console.log(`${vueKey} watcher executed...`)
}

return Object.assign({ [vueKey]: { handler } }, acc)
}, {})

module.exports = (storage, dataKey) => ({
data: () => ({
[dataKey]: storage
}),
watch: makeWatchers(storage, dataKey)
})


/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

const store = __webpack_require__(0)

const addActions = storage => Object.assign({
remove (key) {
if (this[key] === undefined) {
console.warn(`${key} not exist in storage`)
return
}

this[key] = null
},
clear () {
const blocked = ['clear', 'remove']
const keys = Object.keys(this).filter(key => blocked.indexOf(key) === -1)
keys.forEach(key => {
this[key] = null
})
}
}, storage)

module.exports = schema => {
const local = store.getAll()
const storage = Object.keys(schema)
.reduce((acc, key) => {
const value = local[key] || new schema[key]()
return Object.assign({ key: value }, acc)
}, {})

return addActions(storage)
}


/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

const makeStorage = __webpack_require__(2)
const makeMixin = __webpack_require__(1)

const install = (Vue, schema, dataKey = 'localStorage') => {
const storage = makeStorage(schema)
Vue.mixin(makeMixin(storage, dataKey))
}

module.exports = { install }


/***/ })
/******/ ]);
4 changes: 3 additions & 1 deletion package.json
Expand Up @@ -5,6 +5,7 @@
"main": "dist/index.js",
"scripts": {
"test": "test",
"build": "webpack --config webpack.config.js",
"lint": "eslint src/*.js"
},
"repository": {
Expand All @@ -30,6 +31,7 @@
"eslint": "^3.16.1",
"eslint-config-standard": "^7.0.0",
"eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^2.0.1"
"eslint-plugin-standard": "^2.0.1",
"webpack": "^2.2.1"
}
}
4 changes: 2 additions & 2 deletions src/index.js
@@ -1,5 +1,5 @@
const makeStorage = require('make-storage')
const makeMixin = require('make-mixin')
const makeStorage = require('./make-storage')
const makeMixin = require('./make-mixin')

const install = (Vue, schema, dataKey = 'localStorage') => {
const storage = makeStorage(schema)
Expand Down
12 changes: 12 additions & 0 deletions webpack.config.js
@@ -0,0 +1,12 @@
const { resolve } = require('path')

module.exports = {
entry: './src/index.js',
output: {
filename: 'index.js',
path: resolve(__dirname, 'dist')
},
externals: {
store: 'store'
}
}

0 comments on commit 3034266

Please sign in to comment.