UNPKG

24.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/bootstrap 85b91f7d81740924f663","webpack:///./src/index.js","webpack:///./node_modules/webassembly/index.js","webpack:///./node_modules/webassembly/src/index.js"],"names":["createCanvas","x","y","width","height","canvas","document","createElement","style","position","left","String","top","zIndex","body","appendChild","clearCanvas","ctx","clearRect","drawVertex","id","color","strokeStyle","r","g","b","a","fillStyle","startAngle","endAngle","Math","PI","beginPath","arc","stroke","fill","drawEdge","x1","y1","x2","y2","moveTo","lineTo","drawTriangle","x3","y3","loadWasm","wasmPath","vertexColor","edgeColor","triangleColor","wasmModule","WebAssembly","load","imports","jsSetInterval","f","n","setInterval","exports","runCallback","jsClearCanvas","jsDrawVertex","jsDrawEdge","jsDrawTriangle","start","options","version","getContext","vertexMinRadius","vertexMaxRadius","vertexMinSpeed","vertexMaxSpeed","drawVertices","drawEdges","drawTriangles","module","require","window","webassembly","getOwnPropertyNames","Object","file","memory","opts","initial","initialMemory","maximumMemory","maximum","Memory","table","Table","element","grow","buf","buffer","U8","Uint8Array","S32","Int32Array","U32","Uint32Array","F32","Float32Array","F64","Float64Array","getInt","ptr","getUint","getFloat","getDouble","getString","bytes","fromCharCode","apply","subarray","env","memoryBase","tableBase","sprintf","base","s","replace","$0","$1","val","console","forEach","key","keys","_abort","Error","errno","_exit","code","_grow","fetch","fetch_node","then","result","arrayBuffer","instantiate","instance","fs","Promise","resolve","reject","eval","readFile","err","data"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 85b91f7d81740924f663","import WebAssembly from 'webassembly';\n\n//\n// Canvas\n//\nconst createCanvas = (x, y, width, height) => {\n // Create canvas\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n // Set css-based location\n canvas.style.position = 'absolute';\n canvas.style.left = String(x);\n canvas.style.top = String(y);\n canvas.style.zIndex = '-1';\n\n // Append canvas to dom and return canvas\n document.body.appendChild(canvas);\n return canvas;\n};\n\n//\n// Drawing function\n// Generally (maybe always?) these will map 1:1 to the WASM-C imports\n//\nconst clearCanvas = (ctx) => {\n const x = 0;\n const y = 0;\n ctx.clearRect(x, y, ctx.canvas.width, ctx.canvas.height);\n};\n\nconst drawVertex = (ctx, id, x, y, color) => {\n ctx.strokeStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`;\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 2})`;\n\n const r = 12;\n const startAngle = 0;\n const endAngle = 2 * Math.PI;\n\n ctx.beginPath();\n ctx.arc(x, y, r, startAngle, endAngle, false);\n ctx.stroke();\n ctx.fill();\n\n // ctx.font = '12px Arial black';\n // ctx.fillStyle = 'black';\n // ctx.textAlign = 'center';\n // ctx.fillText(id, x, y);\n};\n\nconst drawEdge = (ctx, x1, y1, x2, y2, color) => {\n ctx.strokeStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n};\n\nconst drawTriangle = (ctx, x1, y1, x2, y2, x3, y3, color) => {\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x3, y3);\n // ctx.closePath();\n ctx.fill();\n};\n\n//\n// Wasm\n//\nconst loadWasm = async (wasmPath, ctx, vertexColor, edgeColor, triangleColor) => {\n const wasmModule = await WebAssembly.load(wasmPath, {\n imports: {\n jsSetInterval: (f, n) => {\n // setInterval is a JS function that calls the provided function every n milliseconds\n setInterval(() => wasmModule.exports.runCallback(f), n);\n },\n jsClearCanvas: () => clearCanvas(ctx),\n jsDrawVertex: (id, x, y) => drawVertex(ctx, id, x, y, vertexColor),\n jsDrawEdge: (x1, y1, x2, y2) => drawEdge(ctx, x1, y1, x2, y2, edgeColor),\n jsDrawTriangle: (x1, y1, x2, y2, x3, y3) => drawTriangle(ctx, x1, y1, x2, y2, x3, y3, triangleColor),\n },\n });\n\n return wasmModule;\n};\n\n//\n// Start\n//\nexport const start = async (options, version) => {\n // Create the canvas\n const canvas = createCanvas(options.x, options.y, options.width, options.height);\n const ctx = canvas.getContext('2d');\n\n // Start the wasm module\n const wasmPath = `https://unpkg.com/@benwiz/boba.wasm@${version}/dist/boba.wasm`;\n const wasmModule = await loadWasm(\n wasmPath,\n ctx,\n options.vertexColor,\n options.edgeColor,\n options.triangleColor,\n );\n wasmModule.exports.start(\n options.width,\n options.height,\n options.vertexMinRadius,\n options.vertexMaxRadius,\n options.vertexMinSpeed,\n options.vertexMaxSpeed,\n options.drawVertices,\n options.drawEdges,\n options.drawTriangles,\n );\n};\n\n// const options = {\n// // Canvas\n// x: 0,\n// y: 0,\n// width: document.documentElement.scrollWidth,\n// height: document.documentElement.scrollHeight,\n// // Vertices\n// drawVertices: true,\n// vertexMinRadius: 8,\n// vertexMaxRadius: 16,\n// vertexMinSpeed: 0.5,\n// vertexMaxSpeed: 0.8,\n// vertexColor: {\n// r: 30,\n// g: 144,\n// b: 255,\n// a: 0.2,\n// },\n// // Edges\n// drawEdges: true,\n// edgeColor: {\n// r: 30,\n// g: 144,\n// b: 255,\n// a: 0.2,\n// },\n// // Triangles\n// drawTriangles: true,\n// triangleColor: {\n// r: 30,\n// g: 144,\n// b: 255,\n// a: 0.2,\n// },\n// };\n// start(options, version);\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","module.exports = require(\"./src\");\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/webassembly/index.js","\"use strict\";\r\n\r\nif (typeof window !== \"undefined\" && window)\r\n window.webassembly = exports;\r\n\r\n// Common aliases\r\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\r\n\r\n/**\r\n * Describes a module instance as returned by {@link load}.\r\n * @interface IModule\r\n * @property {Object.<string,*>} exports Exports\r\n * @property {Object.<string,*>} imports Imports\r\n * @property {IMemory} memory Memory\r\n * @property {Object.<string,*>} env Environment\r\n */\r\n\r\n/**\r\n * Describes a module memory instance.\r\n * @interface IMemory\r\n * @property {ArrayBuffer} buffer Underlying buffer\r\n * @property {number} initial=1 Specified initial amount of memory in 64k pages\r\n * @property {number} [maximum] If specified, maximum amount of memory in 64k pages\r\n * @property {Uint8Array} U8 Byte-level view\r\n * @property {Uint32Array} U32 Aligned unsigned 32-bit integer view\r\n * @property {Int32Array} S32 Aligned signed 32-bit integer view\r\n * @property {Float32Array} F32 Aligned 32-bit float view\r\n * @property {Float64Array} F64 Aligned 64-bit double view\r\n * @property {GetInt} getInt Reads a 32-bit signed integer starting at the specified memory offset (aligned to 4 bytes)\r\n * @property {GetUint} getUint Reads a 32-bit unsigned integer starting at the specified memory offset (aligned to 4 bytes)\r\n * @property {GetFloat} getFloat Reads a 32-bit float starting at the specified memory offset (aligned to 4 bytes)\r\n * @property {GetDouble} getDouble Reads a 64-bit double starting at the specified memory offset (aligned to 8 bytes)\r\n * @property {GetString} getString Reads the (zero-terminated, exclusive) string starting at the specified memory offset (aligned to 4 bytes)\r\n */\r\n\r\n/**\r\n * Loads a WebAssembly.\r\n * @param {string} file File name\r\n * @param {LoadOptions} [options] Options\r\n * @returns {Promise.<IModule>} Promise resolving to the instantiated module\r\n */\r\nfunction load(file, options) {\r\n\r\n /**\r\n * Options as used by {@link load}.\r\n * @interface LoadOptions\r\n * @property {number} [initialMemory=1] Initial memory in pages of 64k\r\n * @property {number} [maximumMemory] Maximum memory in pages of 64k\r\n * @property {Object.<string,*>} [imports] Imports\r\n */\r\n\r\n options || (options = {});\r\n\r\n var imports = options.imports || {};\r\n\r\n // Initialize memory\r\n\r\n var memory = imports.memory;\r\n if (!memory) {\r\n var opts = { initial: options.initialMemory || 1 };\r\n if (options.maximumMemory)\r\n opts.maximum = options.maximumMemory;\r\n memory = new WebAssembly.Memory(opts);\r\n memory.initial = options.initialMemory || 1;\r\n memory.maximum = options.maximumMemory;\r\n }\r\n\r\n var table = imports.table;\r\n if (!table)\r\n table = new WebAssembly.Table({ initial: 0, element: \"anyfunc\" });\r\n\r\n function grow() {\r\n var buf = memory.buffer;\r\n memory.U8 = new Uint8Array (buf);\r\n memory.S32 = new Int32Array (buf);\r\n memory.U32 = new Uint32Array (buf);\r\n memory.F32 = new Float32Array(buf);\r\n memory.F64 = new Float64Array(buf);\r\n }\r\n\r\n grow();\r\n\r\n // Add utilty to memory\r\n\r\n /**\r\n * Reads a 32-bit signed integer starting at the specified memory offset.\r\n * @typedef GetInt\r\n * @function\r\n * @param {number} ptr Memory offset\r\n * @returns {number} Signed 32-bit integer value\r\n */\r\n function getInt(ptr) {\r\n return memory.S32[ptr >> 2];\r\n }\r\n\r\n memory.getInt = getInt;\r\n\r\n /**\r\n * Reads a 32-bit unsigned integer starting at the specified memory offset.\r\n * @typedef GetUint\r\n * @function\r\n * @param {number} ptr Memory offset\r\n * @returns {number} Unsigned 32-bit integer value\r\n */\r\n function getUint(ptr) {\r\n return memory.U32[ptr >> 2];\r\n }\r\n\r\n memory.getUint = getUint;\r\n\r\n /**\r\n * Reads a 32-bit float starting at the specified memory offset.\r\n * @typedef GetFloat\r\n * @function\r\n * @param {number} ptr Memory offset\r\n * @returns {number} 32-bit float value\r\n */\r\n function getFloat(ptr) {\r\n return memory.F32[ptr >> 2];\r\n }\r\n\r\n memory.getFloat = getFloat;\r\n\r\n /**\r\n * Reads a 64-bit double starting at the specified memory offset.\r\n * @typedef GetDouble\r\n * @function\r\n * @param {number} ptr Memory offset\r\n * @returns {number} 64-bit float value\r\n */\r\n function getDouble(ptr) {\r\n return memory.F64[ptr >> 3];\r\n }\r\n\r\n memory.getDouble = getDouble;\r\n\r\n /**\r\n * Reads a (zero-terminated, exclusive) string starting at the specified memory offset.\r\n * @typedef GetString\r\n * @function\r\n * @param {number} ptr Memory offset\r\n * @returns {string} String value\r\n */\r\n function getString(ptr) {\r\n var start = (ptr >>>= 0);\r\n while (memory.U8[ptr++]);\r\n getString.bytes = ptr - start;\r\n return String.fromCharCode.apply(null, memory.U8.subarray(start, ptr - 1));\r\n }\r\n\r\n memory.getString = getString;\r\n\r\n // Initialize environment\r\n\r\n var env = {};\r\n\r\n env.memoryBase = imports.memoryBase || 0;\r\n env.memory = memory;\r\n env.tableBase = imports.tableBase || 0;\r\n env.table = table;\r\n\r\n // Add console to environment\r\n\r\n function sprintf(ptr, base) {\r\n var s = getString(ptr);\r\n return base\r\n ? s.replace(/%([dfisu]|lf)/g, ($0, $1) => {\r\n var val;\r\n return base +=\r\n $1 === \"u\" ? (val = getUint(base), 4)\r\n : $1 === \"f\" ? (val = getFloat(base), 4)\r\n : $1 === \"s\" ? (val = getString(getUint(base)), 4)\r\n : $1 === \"lf\" ? (val = getDouble(base), 8)\r\n : (val = getInt(base), 4)\r\n , val;\r\n })\r\n : s;\r\n }\r\n\r\n getOwnPropertyNames(console).forEach(key => {\r\n if (typeof console[key] === \"function\") // eslint-disable-line no-console\r\n env[\"console_\" + key] = (ptr, base) => {\r\n console[key](sprintf(ptr, base)); // eslint-disable-line no-console\r\n };\r\n });\r\n\r\n // Add Math to environment\r\n\r\n getOwnPropertyNames(Math).forEach(key => {\r\n if (typeof Math[key] === \"function\")\r\n env[\"Math_\" + key] = Math[key];\r\n });\r\n\r\n // Add imports to environment\r\n\r\n Object.keys(imports).forEach(key => env[key] = imports[key]);\r\n\r\n // Add default exit listeners if not explicitly imported\r\n\r\n if (!env._abort)\r\n env._abort = errno => { throw Error(\"abnormal abort in \" + file + \": \" + errno); };\r\n if (!env._exit)\r\n env._exit = code => { if (code) throw Error(\"abnormal exit in \" + file + \": \" + code); }\r\n\r\n // Finally, fetch the assembly and instantiate it\r\n\r\n env._grow = grow;\r\n\r\n return (typeof fetch === \"function\" && fetch || fetch_node)(file)\r\n .then(result => result.arrayBuffer())\r\n .then(buffer => WebAssembly.instantiate(buffer, { env: env }))\r\n .then(module => {\r\n var instance = module.instance;\r\n instance.imports = imports;\r\n instance.memory = memory;\r\n instance.env = env;\r\n return instance;\r\n });\r\n}\r\n\r\nexports.load = load;\r\n\r\n// Internal fetch API polyfill for node that doesn't trigger webpack\r\nvar fs;\r\nfunction fetch_node(file) {\r\n return new Promise((resolve, reject) => (fs || (fs = eval(\"equire\".replace(/^/, \"r\"))(\"fs\"))).readFile(file, (err, data) => err ? reject(err) : resolve({ arrayBuffer: () => data })));\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/webassembly/src/index.js"],"sourceRoot":""}
\No newline at end of file