121 lines
44 KiB
JavaScript
121 lines
44 KiB
JavaScript
|
var data = [ ["AbstractWorker", "EventListener"], ["AbstractWorker", "Event"], ["AnalyserNode", "AudioNode"], ["AnalyserNode", "Uint8Array"], ["AnalyserNode", "Float32Array"], ["ArrayBuffer", "ArrayBuffer"], ["ArrayBufferView", "ArrayBuffer"], ["Attr", "Node"], ["Attr", "Element"], ["AudioBuffer", "Float32Array"], ["AudioBufferCallback", "AudioBuffer"], ["AudioBufferSourceNode", "AudioSourceNode"], ["AudioBufferSourceNode", "AudioBuffer"], ["AudioBufferSourceNode", "AudioGain"], ["AudioBufferSourceNode", "AudioParam"], ["AudioContext", "AudioDestinationNode"], ["AudioContext", "AudioListener"], ["AudioContext", "EventListener"], ["AudioContext", "AnalyserNode"], ["AudioContext", "BiquadFilterNode"], ["AudioContext", "AudioBuffer"], ["AudioContext", "AudioBufferSourceNode"], ["AudioContext", "ChannelMergerNode"], ["AudioContext", "ChannelSplitterNode"], ["AudioContext", "ConvolverNode"], ["AudioContext", "DelayNode"], ["AudioContext", "DynamicsCompressorNode"], ["AudioContext", "GainNode"], ["AudioContext", "MediaElementAudioSourceNode"], ["AudioContext", "MediaStreamAudioDestinationNode"], ["AudioContext", "MediaStreamAudioSourceNode"], ["AudioContext", "OscillatorNode"], ["AudioContext", "PannerNode"], ["AudioContext", "ScriptProcessorNode"], ["AudioContext", "WaveShaperNode"], ["AudioContext", "WaveTable"], ["AudioContext", "ArrayBuffer"], ["AudioDestinationNode", "AudioNode"], ["AudioGain", "AudioParam"], ["AudioNode", "AudioContext"], ["AudioNode", "AudioNode"], ["AudioNode", "AudioParam"], ["AudioParam", "Float32Array"], ["AudioProcessingEvent", "Event"], ["AudioProcessingEvent", "AudioBuffer"], ["AudioSourceNode", "AudioNode"], ["BatteryManager", "EventListener"], ["BatteryManager", "Event"], ["BeforeLoadEvent", "Event"], ["BiquadFilterNode", "AudioNode"], ["BiquadFilterNode", "AudioParam"], ["BiquadFilterNode", "Float32Array"], ["Blob", "Blob"], ["CanvasRenderingContext", "HTMLCanvasElement"], ["CanvasRenderingContext2D", "CanvasRenderingContext"], ["CanvasRenderingContext2D", "ImageData"], ["CanvasRenderingContext2D", "CanvasGradient"], ["CanvasRenderingContext2D", "CanvasPattern"], ["CanvasRenderingContext2D", "HTMLImageElement"], ["CanvasRenderingContext2D", "HTMLCanvasElement"], ["CanvasRenderingContext2D", "HTMLVideoElement"], ["CanvasRenderingContext2D", "TextMetrics"], ["CDATASection", "Text"], ["ChannelMergerNode", "AudioNode"], ["ChannelSplitterNode", "AudioNode"], ["CharacterData", "Node"], ["ClientRectList", "ClientRect"], ["Clipboard", "FileList"], ["Clipboard", "DataTransferItemList"], ["Clipboard", "HTMLImageElement"], ["CloseEvent", "Event"], ["Comment", "CharacterData"], ["CompositionEvent", "UIEvent"], ["Console", "MemoryInfo"], ["ConvolverNode", "AudioNode"], ["ConvolverNode", "AudioBuffer"], ["Crypto", "ArrayBufferView"], ["CSSCharsetRule", "CSSRule"], ["CSSFontFaceRule", "CSSRule"], ["CSSFontFaceRule", "CSSStyleDeclaration"], ["CSSImportRule", "CSSRule"], ["CSSImportRule", "MediaList"], ["CSSImportRule", "CSSStyleSheet"], ["CSSMediaRule", "CSSRule"], ["CSSMediaRule", "CSSRuleList"], ["CSSMediaRule", "MediaList"], ["CSSPageRule", "CSSRule"], ["CSSPageRule", "CSSStyleDeclaration"], ["CSSPrimitiveValue", "CSSValue"], ["CSSPrimitiveValue", "Counter"], ["CSSPrimitiveValue", "RGBColor"], ["CSSPrimitiveValue", "Rect"], ["CSSRule", "CSSRule"], ["CSSRule", "CSSStyleSheet"], ["CSSRuleList", "CSSRule"], ["CSSStyleDeclaration", "CSSRule"], ["CSSStyleDeclaration", "CSSValue"], ["CSSStyleRule", "CSSRule"], ["CSSStyleRule", "CSSStyleDeclaration"], ["CSSStyleSheet", "StyleSheet"], ["CSSStyleSheet", "CSSRuleList"], ["CSSStyleSheet", "CSSRule"],
|
||
|
|
||
|
var fs = require("fs");
|
||
|
|
||
|
var nodes = [];
|
||
|
var links = [];
|
||
|
var categories = [{
|
||
|
name : 'HTMLElement',
|
||
|
keyword : /^HTML/,
|
||
|
base : 'HTMLElement',
|
||
|
itemStyle : {
|
||
|
normal: {
|
||
|
"brushType": "both",
|
||
|
"color": "#D0D102",
|
||
|
"strokeColor": "#5182ab",
|
||
|
"lineWidth": 2
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
name : 'WebGL',
|
||
|
keyword : /^WebGL/,
|
||
|
base : 'WebGLRenderingContext',
|
||
|
itemStyle : {
|
||
|
normal: {
|
||
|
"brushType": "both",
|
||
|
"color": "#00A1CB",
|
||
|
"strokeColor": "#5182ab",
|
||
|
"lineWidth": 2
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
name : 'SVG',
|
||
|
keyword : /^SVG/,
|
||
|
base : 'SVGElement',
|
||
|
itemStyle : {
|
||
|
normal: {
|
||
|
"brushType": "both",
|
||
|
"color": "#dda0dd",
|
||
|
"strokeColor": "#5182ab",
|
||
|
"lineWidth": 2
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
name : 'CSS',
|
||
|
keyword : /^CSS/,
|
||
|
base : 'CSSRule',
|
||
|
itemStyle : {
|
||
|
normal: {
|
||
|
"brushType": "both",
|
||
|
"color": "#61AE24",
|
||
|
"strokeColor": "#5182ab",
|
||
|
"lineWidth": 2
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
name : 'Other',
|
||
|
keyword : /.*/,
|
||
|
itemStyle : {
|
||
|
normal: {
|
||
|
"brushType": "both",
|
||
|
"strokeColor": "#5182ab",
|
||
|
"lineWidth": 2
|
||
|
}
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
var nodesIdxMap = {};
|
||
|
|
||
|
data.forEach(function (item){
|
||
|
|
||
|
if (item[0] == "Event" || item[0] == "EventListener" ) return;
|
||
|
if (item[1] == "Event" || item[1] == "EventListener" ) return;
|
||
|
if (item[0] == "DOMWindow" || item[1] == "DOMWindow" ) return;
|
||
|
if (item[0] == "Document" || item[1] == "Document" ) return;
|
||
|
if (item[0] == "Blob" || item[1] == "Blob" ) return;
|
||
|
if (item[0].match("Event$") || item[1].match("Event$") ) return;
|
||
|
|
||
|
links.push({
|
||
|
source : getNodeIdx(item[0]),
|
||
|
target : getNodeIdx(item[1])
|
||
|
})
|
||
|
});
|
||
|
|
||
|
function getNodeIdx(name){
|
||
|
if(typeof(nodesIdxMap[name]) === "undefined"){
|
||
|
nodesIdxMap[name] = nodes.length;
|
||
|
|
||
|
nodes.push({
|
||
|
name : name,
|
||
|
value : calculateValue(name),
|
||
|
category : findCategory(name)
|
||
|
});
|
||
|
}
|
||
|
return nodesIdxMap[name];
|
||
|
}
|
||
|
|
||
|
function findCategory(name){
|
||
|
for (var i = 0; i < categories.length; i++) {
|
||
|
if (name.match(categories[i].keyword) ){
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function calculateValue(name){
|
||
|
for (var i = 0; i < categories.length; i++) {
|
||
|
if (name === categories[i].base){
|
||
|
return 3;
|
||
|
}
|
||
|
}
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
var res = {
|
||
|
type : "force",
|
||
|
categories : categories,
|
||
|
nodes : nodes,
|
||
|
links : links
|
||
|
}
|
||
|
|
||
|
fs.writeFile("webkit-dep.js", 'define(' + JSON.stringify(res, null, 4) + ')');
|