diff --git a/.gitignore b/.gitignore index dd87e2d73..b5f56d603 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules build +spliting.js diff --git a/@salix/app/dependencies.js b/@salix/app/dependencies.js deleted file mode 100644 index 65b9c87bf..000000000 --- a/@salix/app/dependencies.js +++ /dev/null @@ -1,4 +0,0 @@ -{ - compras: ["crud"], - crud: [] -} diff --git a/@salix/app/src/configroutes.js b/@salix/app/src/configroutes.js index 326f77c7a..54ca22fb5 100644 --- a/@salix/app/src/configroutes.js +++ b/@salix/app/src/configroutes.js @@ -1,26 +1,24 @@ import * as core from '@salix/core'; import * as spliting from './spliting'; -import * as routes from './fake'; +import * as deps from './spliting/deps.json'; function loader(route) { - return function ($ocLazyLoad, $q) { return $q((resolve) => { core.splitingRegister.execute(route.module).then(function (dependencies) { var array = dependencies.map((item) => { return { name: item } }); resolve($ocLazyLoad.load(array)); }); - }); }; - } function config($stateProvider, $urlRouterProvider) { - core.splitingRegister.registerGraph(routes.graphRoutes.graphDependendies); + core.splitingRegister.registerGraph(deps); - - routes.graphRoutes.routes.forEach(function (route) { + for (var file in routes) + routes[file].forEach(function (route) { + console.debug (route); $stateProvider.state(route.state, { url: route.url, template: route.template, @@ -29,7 +27,6 @@ function config($stateProvider, $urlRouterProvider) { } }) }); - } core.module.config(config); diff --git a/@salix/app/src/fake.js b/@salix/app/src/fake.js deleted file mode 100644 index 06d01245e..000000000 --- a/@salix/app/src/fake.js +++ /dev/null @@ -1,17 +0,0 @@ -export const graphRoutes = { - routes: [ - { - url: '/index', - state: 'index', - template: '', - module: 'crud', - description: '', - image: '', - } - ], - - graphDependendies: { - compras: ["crud"], - crud: [] - } -}; \ No newline at end of file diff --git a/@salix/app/src/spliting.js b/@salix/app/src/spliting.js deleted file mode 100644 index 139d4dec5..000000000 --- a/@salix/app/src/spliting.js +++ /dev/null @@ -1,40 +0,0 @@ -import * as core from '@salix/core'; - -export const compras = () => { - return new Promise(resolve => { - require.ensure([], () => { - require('@salix/compras'); - resolve('compras'); - }, "salix.compras"); - }); -}; - -core.splitingRegister.register('compras', compras); - -export const ventas = () => { - require.ensure([], () => { - require('@salix/ventas') - }, "salix.ventas"); -}; - -core.splitingRegister.register('ventas', ventas); - -export const pagos = () => { - require.ensure([], () => { - require('@salix/pagos') - }, "salix.pagos"); -}; - -core.splitingRegister.register('pagos', pagos); - - -export const crud = () => { - return new Promise(resolve => { - require.ensure([], () => { - require('@salix/crud'); - resolve('crud'); - }, "salix.crud"); - }); -}; - -core.splitingRegister.register('crud', crud); \ No newline at end of file diff --git a/@salix/app/src/spliting/deps.json b/@salix/app/src/spliting/deps.json new file mode 100644 index 000000000..33c88e890 --- /dev/null +++ b/@salix/app/src/spliting/deps.json @@ -0,0 +1,5 @@ +{ + "app": ["buys", "crud"], + "buys": ["crud"], + "crud": [] +} diff --git a/@salix/app/src/spliting/import.tpl.js b/@salix/app/src/spliting/import.tpl.js new file mode 100644 index 000000000..9c17e355d --- /dev/null +++ b/@salix/app/src/spliting/import.tpl.js @@ -0,0 +1 @@ +import * as core from '@salix/core'; diff --git a/@salix/app/src/spliting/require.tpl.js b/@salix/app/src/spliting/require.tpl.js new file mode 100644 index 000000000..345fc1685 --- /dev/null +++ b/@salix/app/src/spliting/require.tpl.js @@ -0,0 +1,11 @@ + +export const $module = () => { + return new Promise(resolve => { + require.ensure([], () => { + require('@salix/$module'); + resolve('$module'); + }, "salix.$module"); + }); +}; + +core.splitingRegister.register('$module', $module); diff --git a/@salix/buys/index.js b/@salix/buys/index.js new file mode 100644 index 000000000..af578bfcd --- /dev/null +++ b/@salix/buys/index.js @@ -0,0 +1,2 @@ +export * from './src/buys'; + diff --git a/@salix/compras/src/compras.js b/@salix/buys/src/buys.js similarity index 100% rename from @salix/compras/src/compras.js rename to @salix/buys/src/buys.js diff --git a/@salix/compras/index.js b/@salix/compras/index.js deleted file mode 100644 index deb604b56..000000000 --- a/@salix/compras/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './src/compras'; - diff --git a/@salix/compras/src/spliting.js b/@salix/compras/src/spliting.js deleted file mode 100644 index d55880521..000000000 --- a/@salix/compras/src/spliting.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as core from '@salix/core'; - -export const crud = () => { - return new Promise(resolve => { - require.ensure([], () => { - require('@salix/crud'); - resolve('crud'); - }, "salix.crud"); - }); -}; - -core.splitingRegister.register('crud', crud); \ No newline at end of file diff --git a/@salix/crud/src/crud.js b/@salix/crud/src/crud.js index 90229cbb4..b8e3ce4aa 100644 --- a/@salix/crud/src/crud.js +++ b/@salix/crud/src/crud.js @@ -1,8 +1,8 @@ export * from './module'; export {NAME as CUSTOMER_INDEX, - COMPONENT as CUSTOMER_INDEX_COMPONENT} from './customer/index'; + COMPONENT as CUSTOMER_INDEX_COMPONENT} from './customer/index'; export {NAME as CUSTOMER_ADD, - COMPONENT as CUSTOMER_ADD_COMPONENT} from './customer/index/add'; + COMPONENT as CUSTOMER_ADD_COMPONENT} from './customer/index/add'; export {NAME as CUSTOMER_LIST, - COMPONENT as CUSTOMER_LIST_COMPONENT} from './customer/index/list'; + COMPONENT as CUSTOMER_LIST_COMPONENT} from './customer/index/list'; diff --git a/@salix/crud/src/spliting.js b/@salix/crud/src/spliting.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/@salix/pagos/index.js b/@salix/pagos/index.js deleted file mode 100644 index 83329dc8a..000000000 --- a/@salix/pagos/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import * as core from '@salix/core' -import * as vendors from '@salix/vendor' -import * as crud from '@salix/crud' -import * as ventas from '@salix/ventas' -import * as compras from '@salix/compras' -console.log('pagos') \ No newline at end of file diff --git a/@salix/ventas/index.js b/@salix/ventas/index.js deleted file mode 100644 index 3e815f50d..000000000 --- a/@salix/ventas/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import * as core from '@salix/core' -import * as vendors from '@salix/vendor' -import * as crud from '@salix/crud' -console.log('ventas'); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 901302888..bcd4d2443 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,20 +1,72 @@ var gulp = require ('gulp'); +var wrap = require('gulp-wrap'); var concat = require ('gulp-concat'); -var insert = require ('gulp-insert'); var babel = require ('gulp-babel'); -var wrap = require("gulp-wrap"); +var fs = require ('fs'); -var template = '\n"<%=file.path%>": <%=contents%>'; +// Routes -gulp.task ('default', function () +var fileTpl = '\n"<%=file.path%>": <%=contents%>'; +var globalTpl = 'var routes = {<%=contents%>\n}'; + +gulp.task ('routes', function () { - var js = gulp.src ('./@salix/**/routes.js') - .pipe (wrap (template)) + return gulp.src ('./@salix/**/routes.js') + .pipe (wrap (fileTpl)) .pipe (concat ('salix.routes.js', {newLine: ','})) - .pipe (insert.prepend ('var routes = {')) - .pipe (insert.append ('\n};')) + .pipe (wrap (globalTpl)) .pipe (babel ({presets: ['es2015']})) .pipe (gulp.dest ('./build/private')); }); +// Spliting + +var baseDir = './@salix/app/src/spliting'; +var depsFile = baseDir +'/deps.json'; + +function splitingFunc () +{ + try { + var jsonDeps = fs.readFileSync (depsFile); + var modules = JSON.parse (jsonDeps); + } + catch (e) + { + console.error (e); + return; + } + + var importTpl = fs.readFileSync (baseDir +'/import.tpl.js', 'utf8'); + var requireTpl = fs.readFileSync (baseDir +'/require.tpl.js', 'utf8'); + + for (var modName in modules) + { + var deps = modules[modName]; + var splitFile = './@salix/'+ modName +'/src/spliting.js'; + + try { + fs.unlinkSync (splitFile); + } + catch (e) {} + + fs.appendFileSync (splitFile, importTpl); + + var i = deps.length; + while (i--) + fs.appendFileSync (splitFile, + requireTpl.replace (/\$module/g, deps[i])); + } +} + +gulp.task ('spliting', function () +{ + splitingFunc (); + //gulp.watch (depsFile, splitingFunc); +}); + +// Default + +gulp.task ('default', ['routes', 'spliting']); + + diff --git a/index.html b/index.html index e093cae62..0059fda9a 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,10 @@ edit delete +