[js] some refactoring

dev
MITSUNARI Shigeo 7 years ago
parent 18ac8a55d2
commit ee249d839f
  1. 64
      docs/demo/she.js

@ -1,8 +1,10 @@
(function(generator) {
if (typeof exports === 'object') {
exports.mod = require('./she.js')
generator(exports, true)
} else {
let exports = {}
exports.mod = {}
window.she = generator(exports, false)
}
})(function(exports, isNodeJs) {
@ -24,64 +26,48 @@
const SHE_CIPHERTEXT_G2_SIZE = MCLBN_G2_SIZE * 2
const SHE_CIPHERTEXT_GT_SIZE = MCLBN_GT_SIZE * 4
let mod = {}
let capi = {}
let g_callback = null
let g_range = 1024
let g_tryNum = 1024
exports.mod = mod
exports.capi = capi
let g_range = 0
let g_tryNum = 0
if (isNodeJs) {
mod = require('./she.js')
let capi = {}
exports.capi = capi
let mod = exports.mod
exports.init = function(callback) {
console.log('onModuleInit')
g_callback = callback
}
mod.onRuntimeInitialized = function () {
const fs = require('fs')
const json = fs.readFileSync('./exported-she.json')
exportedFuncs = JSON.parse(json)
exportedFuncs.forEach(func => {
capi[func.exportName] = mod.cwrap(func.name, func.returns, func.args)
})
define_extra_functions(mod)
capi.sheInit()
console.log('initializing sheSetRangeForDLP')
let range = 1024
let tryNum = 512
let r = capi.sheSetRangeForDLP(range, tryNum)
console.log('finished ' + r)
if (g_callback) g_callback()
}
} else {
exports.init = function(callback = null, range = 1024, tryNum = 1024) {
console.log('init')
g_callback = callback
g_range = range
g_tryNum = tryNum
if (isNodeJs) {
} else {
fetch('mclshe.wasm')
.then(response => response.arrayBuffer())
.then(buffer => new Uint8Array(buffer))
.then(binary => {
Module(mod)
})
.then(binary => { Module(mod) })
}
}
mod.onRuntimeInitialized = function () {
fetch('exported-she.json')
.then(response => response.json())
.then(json => {
mod.json = json
json.forEach(func => {
const f = function(exportedFuncs) {
exportedFuncs.forEach(func => {
capi[func.exportName] = mod.cwrap(func.name, func.returns, func.args)
})
define_extra_functions(mod)
capi.sheInit()
console.log('initializing sheSetRangeForDLP')
let r = capi.sheSetRangeForDLP(g_range, g_tryNum)
const r = capi.sheSetRangeForDLP(g_range, g_tryNum)
console.log('finished ' + r)
if (g_callback) g_callback()
})
}
if (isNodeJs) {
const fs = require('fs')
const jsonStr = fs.readFileSync('./exported-she.json')
f(JSON.parse(jsonStr))
} else {
fetch('exported-she.json')
.then(response => response.json())
.then(exportedFuncs => f(exportedFuncs))
}
}

Loading…
Cancel
Save