Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zeroing-pack
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
劳工
zeroing-pack
Commits
2eb0fe6d
You need to sign in or sign up before continuing.
Commit
2eb0fe6d
authored
Dec 10, 2019
by
rockyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复内联过程代码没有抽离的问题
parent
4e592f36
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
63 additions
and
63 deletions
+63
-63
index.es.js
dist/index.es.js
+15
-15
index.es.js.map
dist/index.es.js.map
+1
-1
index.js
dist/index.js
+15
-15
index.js.map
dist/index.js.map
+1
-1
index.umd.js
dist/index.umd.js
+15
-15
index.umd.js.map
dist/index.umd.js.map
+1
-1
ProcessManager.js
src/ProcessManager.js
+7
-8
index.js
src/index.js
+8
-7
No files found.
dist/index.es.js
View file @
2eb0fe6d
...
...
@@ -56,10 +56,7 @@ class ProcessManager {
}
if
(
process
.
metas
)
{
for
(
let
subProcess
of
process
.
metas
)
{
let
hash
=
this
.
put
(
subProcess
);
if
(
hash
)
{
subProcess
.
script
=
'link://'
+
hash
;
}
this
.
deal
(
subProcess
);
}
}
}
...
...
@@ -83,7 +80,9 @@ class ProcessManager {
let
scripts
=
''
;
for
(
let
hash
in
this
.
pool
)
{
let
{
script
,
ids
}
=
this
.
pool
[
hash
];
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
scripts
+=
`
exports['
${
hash
}
'] = function(args, props, target, global, vm){
return new Promise(function(resolve, reject){
...
...
@@ -100,11 +99,11 @@ ${script}
this
.
pool
=
{};
}
async
compile
(){
async
compile
()
{
try
{
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
this
.
scripts
=
code
;
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'编译失败'
,
e
);
}
}
...
...
@@ -348,19 +347,20 @@ async function packData(data, {debug, packedAssets, getProcesses, getScripts, ge
}
const
unusedFields
=
[
'design'
];
function
deleteUnusedData
(
processes
){
for
(
let
process
of
processes
){
if
(
process
.
sub
){
for
(
let
uuid
in
process
.
sub
){
function
deleteUnusedData
(
processes
)
{
for
(
let
process
of
processes
)
{
if
(
process
.
sub
)
{
for
(
let
uuid
in
process
.
sub
)
{
let
subProcess
=
process
.
sub
[
uuid
];
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
delete
subProcess
[
field
];
}
}
}
}
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
deleteUnusedData
(
process
.
metas
);
}
}
...
...
dist/index.es.js.map
View file @
2eb0fe6d
{
"version"
:
3
,
"file"
:
"index.es.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas) {\n
\t\t\t\t
let hash = this.put(subProcess);
\n\t\t\t\t
if (hash) {\n
\t\t\t\t\t
subProcess.script = 'link://' + hash;
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id=>{return `/*== ${id} ==*/`}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile(){\n
\t\t
try {\n
\t\t\t
const {code ,sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
}catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n
function deleteUnusedData(processes){\n
\t
for(let process of processes){\n
\t\t
if(process.sub){\n
\t\t\t
for(let uuid in process.sub){\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for(let field of unusedFields){\n
\t\t\t\t\t
if(subProcess.hasOwnProperty(field)){\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if(process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
";;;;AAAA;;;AAGA,AAEA;AACA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;;AAEtC,AAAO,eAAe,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE;CACpD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE;EACtD,OAAO,EAAE;GACR,CAAC,YAAY,EAAE,EAAE,CAAC;GAClB;EACD,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,KAAK;EACjB,CAAC,CAAC;;CAEH,MAAM,MAAM,GAAG;EACd,IAAI;EACJ,CAAC;CACF,IAAI,GAAG,EAAE;EACR,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC;EAChC;CACD,OAAO,MAAM,CAAC;CACd;;AAED,AAAO,SAAS,MAAM,CAAC,MAAM,CAAC;CAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;EAC5C,CAAC,CAAC;CACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;EACxB,OAAO,YAAY,CAAC,IAAI,CAAC;EACzB;;;AC/BF;;;AAGA,AAGA;AACA,SAAS,GAAG,CAAC,MAAM,EAAE;CACpB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CACtC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CACzC;;AAED,AAAe,MAAM,cAAc,CAAC;CACnC,WAAW,GAAG;EACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;EACf,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EAClB;;CAED,IAAI,CAAC,OAAO,EAAE;EACb,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EAC7B,IAAI,IAAI,EAAE;GACT,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;GAClC;EACD,IAAI,OAAO,CAAC,KAAK,EAAE;GAClB,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE;IACrC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,IAAI,EAAE;KACT,UAAU,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;KACrC;IACD;GACD;EACD;;CAED,GAAG,CAAC,OAAO,EAAE;EACZ,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;EACnC,IAAI,MAAM,EAAE;GACX,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;GACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;IACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KACjB,MAAM;KACN,GAAG,EAAE,EAAE;KACP,CAAC;IACF;GACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;GACrC,OAAO,IAAI,CAAC;GACZ;EACD;;CAED,eAAe,GAAG;EACjB,IAAI,OAAO,GAAG,EAAE,CAAC;EACjB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;GAC3B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACpC,IAAI,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACpE,OAAO,IAAI,CAAC;UACL,EAAE,IAAI,CAAC;;;AAGjB,EAAE,UAAU,CAAC;AACb,EAAE,MAAM,CAAC;;;;;AAKT,CAAC,CAAC;GACC;EACD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;EACxB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;EACf;;CAED,MAAM,OAAO,EAAE;EACd,IAAI;GACH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;GAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;GACpB,OAAO,CAAC,EAAE;GACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;GACvB;EACD;;CAED,QAAQ,GAAG;EACV,IAAI,CAAC,eAAe,EAAE,CAAC;EACvB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;;EAE3B,OAAO,CAAC;;;AAGV,EAAE,OAAO,CAAC;;;;AAIV,CAAC;EACC;CACD;;AC3FD;;;;AAIA,AAAe,MAAM,aAAa,CAAC;CAClC,WAAW,GAAG;EACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;EACf;;CAED,IAAI,CAAC,MAAM,CAAC;EACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvB;;CAED,QAAQ,EAAE;EACT,IAAI,OAAO,GAAG,EAAE,CAAC;EACjB,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;GAC/B,OAAO,IAAI,CAAC;aACF,EAAE,EAAE,CAAC;;AAElB,EAAE,IAAI,CAAC;;;WAGI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;GAC1B;;EAED,OAAO,CAAC;;;AAGV,EAAE,OAAO,CAAC;;AAEV,CAAC,CAAC;EACA;CACD;;AChCD;;;;AAIA,AAAe,MAAM,aAAa,CAAC;CAClC,WAAW,GAAG;EACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;EACf;;CAED,IAAI,CAAC,MAAM,EAAE;EACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvB;;CAED,QAAQ,EAAE;EACT,IAAI,OAAO,GAAG,EAAE,CAAC;EACjB,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;GAC/B,OAAO,IAAI,CAAC;aACF,EAAE,EAAE,CAAC;;;;;AAKlB,EAAE,IAAI,CAAC;;SAEE,EAAE,EAAE,CAAC;WACH,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;GAC1B;;EAED,OAAO,CAAC;;;;;AAKV,EAAE,OAAO,CAAC;;;;;;AAMV,CAAC;EACC;CACD;;ACzCD;;;;;AAKA,AAMA;AACA,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnD,MAAM,GAAG,GAAG,cAAc,CAAC;;AAE3B,AAAO,eAAe,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;CACzC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;CAC5D,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;CAE9C,OAAO;EACN,OAAO;EACP,IAAI,EAAE,OAAO;EACb;CACD;;AAED,AAAO,SAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;CACrC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACvB,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;;CAE9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;CACtB,OAAO,MAAM,CAAC;CACd;;AAED,eAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;CAC1F,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;CAC5C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;CAC1C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;;CAE1C,IAAI,OAAO,GAAG,EAAE,CAAC;CACjB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;CAC/B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B,OAAO,CAAC,MAAM,GAAG,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;CAC7C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;CACvC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;;CAEnC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;CAC3B,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;CAEpC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;;CAG1B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;CAClC,IAAI,UAAU,GAAG,EAAE,CAAC;CACpB,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9C,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;;CAErD,IAAI,WAAW,GAAG,UAAU,CAAC;CAC7B,OAAO,IAAI,EAAE;EACZ,IAAI,OAAO,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;EACrF,WAAW,GAAG,EAAE,CAAC;EACjB,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE;GACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;IAC7B,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB;GACD;EACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;GAC7B,MAAM;GACN;EACD;;CAED,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;EACtC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC7B;;CAED,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;;CAErD,cAAc,CAAC,eAAe,EAAE,CAAC;CACjC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;;CAE/B,KAAK,IAAI,OAAO,IAAI,gBAAgB,EAAE;EACrC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC7B;;CAED,IAAI,oBAAoB,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;;CAErD,IAAI,CAAC,KAAK,EAAE;EACX,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;EACpD;;;;CAID,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;CACjC,IAAI,SAAS,GAAG,EAAE,CAAC;CACnB,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;EAC/B,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK;GAC5B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IAC5C,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;KAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;MAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;MACvB;KACD;IACD;GACD,CAAC,CAAC;EACH;;;;CAID,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;EACzB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;EAC5C,KAAK,IAAI,UAAU,IAAI,OAAO,EAAE;GAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;GAEpC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GAC3B;;EAED;;CAED,IAAI,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;;CAE9C,IAAI,CAAC,KAAK,EAAE;EACX,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;EACxC;;;;CAID,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;;CAEjC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;EAE5C,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI;GAC5C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;;GAErC,EAAC;EACF;CACD,IAAI,mBAAmB,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;;CAEnD,IAAI,CAAC,KAAK,EAAE;EACX,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;EAClD;;;CAGD,OAAO;EACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;EAC7B,oBAAoB;EACpB,cAAc;EACd,mBAAmB;EACnB,CAAC;CACF;;AAED,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAS,gBAAgB,CAAC,SAAS,CAAC;CACnC,IAAI,IAAI,OAAO,IAAI,SAAS,CAAC;EAC5B,GAAG,OAAO,CAAC,GAAG,CAAC;GACd,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAC3B,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI,YAAY,CAAC;KAC7B,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;MACnC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;MACzB;KACD;IACD;GACD;EACD,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;GAC5C,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;GAChC;EACD;CACD;;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;CACnC,IAAI,OAAO,CAAC,GAAG,EAAE;EAChB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;GAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClB;GACD;EACD;CACD;;AAED,SAAS,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;CACxC,KAAK,IAAI,OAAO,IAAI,SAAS,EAAE;EAC9B,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;EAC3B;CACD;;AAED,eAAe,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE;CAC3D,IAAI,OAAO,GAAG,EAAE,CAAC;CACjB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;EACnB,IAAI,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;EACxC,KAAK,IAAI,WAAW,IAAI,SAAS,EAAE;GAClC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;GACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;GACnB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;GAC9B;EACD;CACD,OAAO,OAAO,CAAC;CACf;;AAED,SAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;CAC5C,MAAM,MAAM,GAAG;EACd,OAAO;EACP,CAAC;CACF,KAAK,IAAI,KAAK,IAAI,aAAa,EAAE;EAChC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;EAC/B;CACD,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CAC3C;;AAED,SAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;CAC3C,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;EACzB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;EAChD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;EACtE;;CAED,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;CACrB;;AAED,SAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE;CACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;CACf,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;EAC9C,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;GACpC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;GAClC;EACD;CACD;;;;"
}
\ No newline at end of file
{
"version"
:
3
,
"file"
:
"index.es.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas)
{
\n\t\t\t\tthis.deal(subProcess);\n\t\t\t}\n\t\t}\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id => {\n
\t\t\t\t
return `/*== ${id} ==*/`
\n\t\t\t
}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile() {\n
\t\t
try {\n
\t\t\t
const {code, sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
} catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n\n
function deleteUnusedData(processes) {\n
\t
for (let process of processes) {\n
\t\t
if (process.sub) {\n
\t\t\t
for (let uuid in process.sub) {\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for (let field of unusedFields) {\n
\t\t\t\t\t
if (subProcess.hasOwnProperty(field)) {\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if (process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
"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"
}
\ No newline at end of file
dist/index.js
View file @
2eb0fe6d
...
...
@@ -62,10 +62,7 @@ class ProcessManager {
}
if
(
process
.
metas
)
{
for
(
let
subProcess
of
process
.
metas
)
{
let
hash
=
this
.
put
(
subProcess
);
if
(
hash
)
{
subProcess
.
script
=
'link://'
+
hash
;
}
this
.
deal
(
subProcess
);
}
}
}
...
...
@@ -89,7 +86,9 @@ class ProcessManager {
let
scripts
=
''
;
for
(
let
hash
in
this
.
pool
)
{
let
{
script
,
ids
}
=
this
.
pool
[
hash
];
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
scripts
+=
`
exports['
${
hash
}
'] = function(args, props, target, global, vm){
return new Promise(function(resolve, reject){
...
...
@@ -106,11 +105,11 @@ ${script}
this
.
pool
=
{};
}
async
compile
(){
async
compile
()
{
try
{
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
this
.
scripts
=
code
;
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'编译失败'
,
e
);
}
}
...
...
@@ -354,19 +353,20 @@ async function packData(data, {debug, packedAssets, getProcesses, getScripts, ge
}
const
unusedFields
=
[
'design'
];
function
deleteUnusedData
(
processes
){
for
(
let
process
of
processes
){
if
(
process
.
sub
){
for
(
let
uuid
in
process
.
sub
){
function
deleteUnusedData
(
processes
)
{
for
(
let
process
of
processes
)
{
if
(
process
.
sub
)
{
for
(
let
uuid
in
process
.
sub
)
{
let
subProcess
=
process
.
sub
[
uuid
];
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
delete
subProcess
[
field
];
}
}
}
}
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
deleteUnusedData
(
process
.
metas
);
}
}
...
...
dist/index.js.map
View file @
2eb0fe6d
{
"version"
:
3
,
"file"
:
"index.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas) {\n
\t\t\t\t
let hash = this.put(subProcess);
\n\t\t\t\t
if (hash) {\n
\t\t\t\t\t
subProcess.script = 'link://' + hash;
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id=>{return `/*== ${id} ==*/`}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile(){\n
\t\t
try {\n
\t\t\t
const {code ,sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
}catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n
function deleteUnusedData(processes){\n
\t
for(let process of processes){\n
\t\t
if(process.sub){\n
\t\t\t
for(let uuid in process.sub){\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for(let field of unusedFields){\n
\t\t\t\t\t
if(subProcess.hasOwnProperty(field)){\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if(process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
"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"
}
\ No newline at end of file
{
"version"
:
3
,
"file"
:
"index.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas)
{
\n\t\t\t\tthis.deal(subProcess);\n\t\t\t}\n\t\t}\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id => {\n
\t\t\t\t
return `/*== ${id} ==*/`
\n\t\t\t
}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile() {\n
\t\t
try {\n
\t\t\t
const {code, sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
} catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n\n
function deleteUnusedData(processes) {\n
\t
for (let process of processes) {\n
\t\t
if (process.sub) {\n
\t\t\t
for (let uuid in process.sub) {\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for (let field of unusedFields) {\n
\t\t\t\t\t
if (subProcess.hasOwnProperty(field)) {\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if (process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
"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"
}
\ No newline at end of file
dist/index.umd.js
View file @
2eb0fe6d
...
...
@@ -62,10 +62,7 @@
}
if
(
process
.
metas
)
{
for
(
let
subProcess
of
process
.
metas
)
{
let
hash
=
this
.
put
(
subProcess
);
if
(
hash
)
{
subProcess
.
script
=
'link://'
+
hash
;
}
this
.
deal
(
subProcess
);
}
}
}
...
...
@@ -89,7 +86,9 @@
let
scripts
=
''
;
for
(
let
hash
in
this
.
pool
)
{
let
{
script
,
ids
}
=
this
.
pool
[
hash
];
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
scripts
+=
`
exports['
${
hash
}
'] = function(args, props, target, global, vm){
return new Promise(function(resolve, reject){
...
...
@@ -106,11 +105,11 @@ ${script}
this
.
pool
=
{};
}
async
compile
(){
async
compile
()
{
try
{
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
this
.
scripts
=
code
;
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'编译失败'
,
e
);
}
}
...
...
@@ -354,19 +353,20 @@ ${scripts}
}
const
unusedFields
=
[
'design'
];
function
deleteUnusedData
(
processes
){
for
(
let
process
of
processes
){
if
(
process
.
sub
){
for
(
let
uuid
in
process
.
sub
){
function
deleteUnusedData
(
processes
)
{
for
(
let
process
of
processes
)
{
if
(
process
.
sub
)
{
for
(
let
uuid
in
process
.
sub
)
{
let
subProcess
=
process
.
sub
[
uuid
];
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
delete
subProcess
[
field
];
}
}
}
}
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
deleteUnusedData
(
process
.
metas
);
}
}
...
...
dist/index.umd.js.map
View file @
2eb0fe6d
{
"version"
:
3
,
"file"
:
"index.umd.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas) {\n
\t\t\t\t
let hash = this.put(subProcess);
\n\t\t\t\t
if (hash) {\n
\t\t\t\t\t
subProcess.script = 'link://' + hash;
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id=>{return `/*== ${id} ==*/`}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile(){\n
\t\t
try {\n
\t\t\t
const {code ,sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
}catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n
function deleteUnusedData(processes){\n
\t
for(let process of processes){\n
\t\t
if(process.sub){\n
\t\t\t
for(let uuid in process.sub){\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for(let field of unusedFields){\n
\t\t\t\t\t
if(subProcess.hasOwnProperty(field)){\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if(process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
"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"
}
\ No newline at end of file
{
"version"
:
3
,
"file"
:
"index.umd.js"
,
"sources"
:
[
"../src/code-process.js"
,
"../src/ProcessManager.js"
,
"../src/ScriptManager.js"
,
"../src/CustomManager.js"
,
"../src/index.js"
],
"sourcesContent"
:
[
"/**
\n
* Created by rockyl on 2019-11-30.
\n
*/
\n\n
import babel from '@babel/core';
\n\n
const UglifyJS = require('uglify-js');
\n\n
export async function compile(source, debug = false) {\n
\t
const {code, map} = await babel.transformAsync(source, {\n
\t\t
presets: [
\n\t\t\t
['@babel/env', {}]
\n\t\t
],
\n\t\t
babelrc: false,
\n\t\t
sourceMaps: debug,
\n\t
});
\n\n\t
const result =
{
\n\t\tcode,\n\t
}
;
\n\t
if (map) {\n
\t\t
result.sourcemap = map.mappings;
\n\t
}
\n\t
return result;
\n
}
\n\n
export function uglify(source){\n
\t
const uglifyResult = UglifyJS.minify(source,
{
\n\t
}
);
\n\t
if (!uglifyResult.error) {\n
\t\t
return uglifyResult.code;
\n\t
}
\n
}"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
import crypto from 'crypto'
\n
import
{
compile
}
from
\"
./code-process
\"
;
\n\n
function md5(source) {\n
\t
const hash = crypto.createHash('md5');
\n\t
return hash.update(source).digest('hex');
\n
}
\n\n
export default class ProcessManager {\n
\t
constructor() {\n
\t\t
this.pool = {};
\n\t\t
this.scripts = '';
\n\t
}
\n\n\t
deal(process) {\n
\t\t
let hash = this.put(process);
\n\t\t
if (hash) {\n
\t\t\t
process.script = 'link://' + hash;
\n\t\t
}
\n\t\t
if (process.metas) {\n
\t\t\t
for (let subProcess of process.metas)
{
\n\t\t\t\tthis.deal(subProcess);\n\t\t\t}\n\t\t}\n\t
}
\n\n\t
put(process) {\n
\t\t
const {id, name, script} = process;
\n\t\t
if (script) {\n
\t\t\t
let hash = md5(script);
\n\t\t\t
if (!this.pool.hasOwnProperty(hash)) {\n
\t\t\t\t
this.pool[hash] = {\n
\t\t\t\t\t
script,
\n\t\t\t\t\t
ids: [],
\n\t\t\t\t
};
\n\t\t\t
}
\n\t\t\t
this.pool[hash].ids.push(name || id);
\n\t\t\t
return hash;
\n\t\t
}
\n\t
}
\n\n\t
generateCurrent() {\n
\t\t
let scripts = '';
\n\t\t
for (let hash in this.pool) {\n
\t\t\t
let {script, ids} = this.pool[hash];
\n\t\t\t
let idsComment = ids.map(id => {\n
\t\t\t\t
return `/*== ${id} ==*/`
\n\t\t\t
}).join('
\\
n');
\n\t\t\t
scripts += `
\n\t
exports['${hash}'] = function(args, props, target, global, vm){\n
\t\t
return new Promise(function(resolve, reject)
{
\n\n${idsComment}\n${script
}
\n\n\t\t
function next(type, payload){resolve({type: type, payload: payload})}
\n\t\t
});
\n\t
};
\n
`;
\n\t\t
}
\n\t\t
this.scripts += scripts;
\n\t\t
this.pool =
{
};\n\t
}
\n\n\t
async compile() {\n
\t\t
try {\n
\t\t\t
const {code, sourcemap} = await compile(this.scripts, true);
\n\t\t\t
this.scripts = code;
\n\t\t
} catch (e) {\n
\t\t\t
console.log('编译失败', e);
\n\t\t
}
\n\t
}
\n\n\t
generate() {\n
\t\t
this.generateCurrent();
\n\t\t
let scripts = this.scripts;
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n\n\tengine.setScriptMap(exports);\n})();\n`\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class ScriptManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(script)
{
\n\t\tthis.pool.push(script);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
(function(exports)
{
\n${code}\n
}
)(exports);
\n\t
engine.registerScriptDef(exports.default.id, exports.default);
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports =
{
};\n${scripts}\n})();\n`;\n\t}\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-29.
\n
*/
\n\n
export default class CustomManager {\n
\t
constructor() {\n
\t\t
this.pool = [];
\n\t
}
\n\n\t
deal(custom)
{
\n\t\tthis.pool.push(custom);\n\t
}
\n\n\t
generate(){\n
\t\t
let scripts = '';
\n\t\t
for(let {id, code} of this.pool){\n
\t\t\t
scripts += `
\n
/*=====START ${id} START=====*/
\n
module = {\n
\t
exports:
{
}\n};\n(function(module){\n${code}\n})(module);\nexports['${id
}
'] = module.exports;
\n
/*=====END ${id} END=====*/`;
\n\t\t
}
\n\n\t\t
return `
\n
(function(){\nvar exports = {};
\n
var module;
\n\n
${scripts}
\n\n\t
for(var key in exports){\n
\t\t
engine.registerCustomModule(key, exports[key]);
\n\t
}
\n
})();
\n
`
\n\t
}
\n
}
\n
"
,
"/**
\n
* Created by rockyl on 2019-11-13.
\n
*
\n
* 项目打包
\n
*/
\n\n
import decamelize from 'decamelize'
\n
import ProcessManager from './ProcessManager'
\n
import ScriptManager from './ScriptManager'
\n
import CustomManager from './CustomManager'
\n
import
{
uglify
}
from
\"
./code-process
\"
;
\n\n
const replaceFields = ['pageTitle', 'containerId'];
\n
const TAG = 'zeroing-pack';
\n\n
export async function pack(data, options) {\n
\t
let version = Date.now() + Math.floor(Math.random() * 1000);
\n\t
pageTemplate(data, data.options, version);
\n\t
const newData = await packData(data, options);
\n\n\t
return {\n
\t\t
version,
\n\t\t
data: newData,
\n\t
}
\n
}
\n\n
export function fillTpl(data, params) {\n
\t
const
{
options
}
= data;
\n\t
fillTemplate(options.newTpl, options, params);
\n\n\t
const newTpl = options.newTpl;
\n\t
delete options.newTpl;
\n\t
return newTpl;
\n
}
\n\n
async function packData(data, {debug, packedAssets, getProcesses, getScripts, getCustoms}) {\n
\t
const processManager = new ProcessManager();
\n\t
const scriptManager = new ScriptManager();
\n\t
const customManager = new CustomManager();
\n\n\t
let newData = {};
\n\t
newData.options = data.options;
\n\t
newData.views = data.views;
\n\t
newData.assets = packedAssets || data.assets;
\n\t
newData.dataMapping = data.dataMapping;
\n\t
newData.processes = data.processes;
\n\n\t
delete newData.options.tpl;
\n\t
deleteUnusedData(newData.processes);
\n\n\t
console.log(TAG, 'start');
\n\n\t
/*=====START process =====*/
\n\t
console.log(TAG, 'start process');
\n\t
let processIDs = [];
\n\t
findDepPidsBat(processIDs, newData.processes);
\n\t
let builtinProcesses = newData.builtinProcesses = [];
\n\n\t
let bProcessIDs = processIDs;
\n\t
while (true) {\n
\t\t
let newPids = await addBuiltinProcesses(builtinProcesses, bProcessIDs, getProcesses);
\n\t\t
bProcessIDs = [];
\n\t\t
for (let id of newPids) {\n
\t\t\t
if (!processIDs.includes(id))
{
\n\t\t\t\tbProcessIDs.push(id);\n\t\t\t\tprocessIDs.push(id);\n\t\t\t}\n\t\t
}
\n\t\t
if (bProcessIDs.length === 0)
{
\n\t\t\tbreak;\n\t\t}\n\t
}
\n\n\t
for (let process of newData.processes)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
console.log(TAG, 'processManager.generateCurrent()');
\n\n\t
processManager.generateCurrent();
\n\t
await processManager.compile(); //自定义过程先编译
\n\n\t
for (let process of builtinProcesses)
{
\n\t\tprocessManager.deal(process);\n\t
}
\n\n\t
let processScriptContent = processManager.generate();
\n\t
//console.log(processScriptContent);
\n\t
if (!debug) {\n
\t\t
processScriptContent = uglify(processScriptContent);
\n\t
}
\n\t
/*=====END process =====*/
\n\n\t
/*=====START script =====*/
\n\t
console.log(TAG, 'start script');
\n\t
let scriptIDs = [];
\n\t
for (let view of newData.views) {\n
\t\t
traverseNode(view, (node) => {\n
\t\t\t
if (node.scripts && node.scripts.length > 0) {\n
\t\t\t\t
for (let
{
script
}
of node.scripts) {\n
\t\t\t\t\t
if (!scriptIDs.includes(script))
{
\n\t\t\t\t\t\tscriptIDs.push(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t
}
\n\t
//console.log('scriptIDs:', scriptIDs);
\n\t
//let scriptsContainer = newData.scripts = {};
\n\t
//let scriptsCode = '';
\n\t
if (scriptIDs.length > 0) {\n
\t\t
const scripts = await getScripts(scriptIDs);
\n\t\t
for (let scriptData of scripts) {\n
\t\t\t
let script = JSON.parse(scriptData);
\n\t\t\t
//scriptsContainer[id] = code;
\n\t\t\t
scriptManager.deal(script);
\n\t\t
}
\n\t\t
//console.log('scripts:', scriptsContainer);
\n\t
}
\n\n\t
let scriptsContent = scriptManager.generate();
\n\t
//console.log(scriptsContent);
\n\t
if (!debug) {\n
\t\t
scriptsContent = uglify(scriptsContent);
\n\t
}
\n\t
/*=====END script =====*/
\n\n\t
/*=====START custom =====*/
\n\t
console.log(TAG, 'start custom');
\n\t
//newData.customs = [];
\n\t
if (data.customs && data.customs.length > 0) {\n
\t\t
/*newData.customs = */
\n\t\t
(await getCustoms(data.customs)).map(item => {\n
\t\t\t
customManager.deal(JSON.parse(item));
\n\t\t\t
//return JSON.parse(item);
\n\t\t
})
\n\t
}
\n\t
let customScriptContent = customManager.generate();
\n\t
//console.log(customScriptContent);
\n\t
if (!debug) {\n
\t\t
customScriptContent = uglify(customScriptContent);
\n\t
}
\n\t
/*=====END custom =====*/
\n\n\t
return {\n
\t\t
data: JSON.stringify(newData),
\n\t\t
processScriptContent,
\n\t\t
scriptsContent,
\n\t\t
customScriptContent,
\n\t
};
\n
}
\n\n
const unusedFields = ['design'];
\n\n
function deleteUnusedData(processes) {\n
\t
for (let process of processes) {\n
\t\t
if (process.sub) {\n
\t\t\t
for (let uuid in process.sub) {\n
\t\t\t\t
let subProcess = process.sub[uuid];
\n\t\t\t\t
for (let field of unusedFields) {\n
\t\t\t\t\t
if (subProcess.hasOwnProperty(field)) {\n
\t\t\t\t\t\t
delete subProcess[field];
\n\t\t\t\t\t
}
\n\t\t\t\t
}
\n\t\t\t
}
\n\t\t
}
\n\t\t
if (process.metas && process.metas.length > 0)
{
\n\t\t\tdeleteUnusedData(process.metas);\n\t\t}\n\t}\n
}
\n\n
function findDepPids(list, process) {\n
\t
if (process.sub) {\n
\t\t
for (let key in process.sub) {\n
\t\t\t
let p = process.sub[key];
\n\t\t\t
if (!list.includes(p.meta))
{
\n\t\t\t\tlist.push(p.meta);\n\t\t\t}\n\t\t}\n\t}\n
}
\n\n
function findDepPidsBat(list, processes) {\n
\t
for (let process of processes) {\n
\t\t
findDepPids(list, process);
\n\t
}
\n
}
\n\n
async function addBuiltinProcesses(list, ids, getProcesses) {\n
\t
let newPids = [];
\n\t
if (ids.length > 0) {\n
\t\t
let processes = await getProcesses(ids);
\n\t\t
for (let processData of processes) {\n
\t\t\t
let process = JSON.parse(processData);
\n\t\t\t
list.push(process);
\n\t\t\t
findDepPids(newPids, process);
\n\t\t
}
\n\t
}
\n\t
return newPids;
\n
}
\n\n
function pageTemplate(tpl, options, version) {\n
\t
const params =
{
\n\t\tversion,\n\t
}
;
\n\t
for (let field of replaceFields) {\n
\t\t
params[field] = options[field];
\n\t
}
\n\t
fillTemplate(options.tpl, options, params);
\n
}
\n\n
function fillTemplate(tpl, options, params) {\n
\t
for (let field in params) {\n
\t\t
const pattern = decamelize(field).toUpperCase();
\n\t\t
tpl = tpl.replace(new RegExp(`
\\\\
$${pattern}
\\\\
$`, 'g'), params[field]);
\n\t
}
\n\n\t
options.newTpl = tpl;
\n
}
\n\n
function traverseNode(root, callback) {\n
\t
callback(root);
\n\t
if (root.children && root.children.length > 0) {\n
\t\t
for (let childNode of root.children) {\n
\t\t\t
traverseNode(childNode, callback);
\n\t\t
}
\n\t
}
\n
}
\n
"
],
"names"
:
[],
"mappings"
:
"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"
}
\ No newline at end of file
src/ProcessManager.js
View file @
2eb0fe6d
...
...
@@ -23,10 +23,7 @@ export default class ProcessManager {
}
if
(
process
.
metas
)
{
for
(
let
subProcess
of
process
.
metas
)
{
let
hash
=
this
.
put
(
subProcess
);
if
(
hash
)
{
subProcess
.
script
=
'link://'
+
hash
;
}
this
.
deal
(
subProcess
);
}
}
}
...
...
@@ -50,7 +47,9 @@ export default class ProcessManager {
let
scripts
=
''
;
for
(
let
hash
in
this
.
pool
)
{
let
{
script
,
ids
}
=
this
.
pool
[
hash
];
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
let
idsComment
=
ids
.
map
(
id
=>
{
return
`/*==
${
id
}
==*/`
}).
join
(
'
\
n'
);
scripts
+=
`
exports['
${
hash
}
'] = function(args, props, target, global, vm){
return new Promise(function(resolve, reject){
...
...
@@ -67,11 +66,11 @@ ${script}
this
.
pool
=
{};
}
async
compile
(){
async
compile
()
{
try
{
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
const
{
code
,
sourcemap
}
=
await
compile
(
this
.
scripts
,
true
);
this
.
scripts
=
code
;
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'编译失败'
,
e
);
}
}
...
...
src/index.js
View file @
2eb0fe6d
...
...
@@ -151,19 +151,20 @@ async function packData(data, {debug, packedAssets, getProcesses, getScripts, ge
}
const
unusedFields
=
[
'design'
];
function
deleteUnusedData
(
processes
){
for
(
let
process
of
processes
){
if
(
process
.
sub
){
for
(
let
uuid
in
process
.
sub
){
function
deleteUnusedData
(
processes
)
{
for
(
let
process
of
processes
)
{
if
(
process
.
sub
)
{
for
(
let
uuid
in
process
.
sub
)
{
let
subProcess
=
process
.
sub
[
uuid
];
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
for
(
let
field
of
unusedFields
)
{
if
(
subProcess
.
hasOwnProperty
(
field
))
{
delete
subProcess
[
field
];
}
}
}
}
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
if
(
process
.
metas
&&
process
.
metas
.
length
>
0
)
{
deleteUnusedData
(
process
.
metas
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment