Comparing version 0.1.0 to 0.2.0
@@ -8,4 +8,4 @@ const url = require('url') | ||
// Got file handler | ||
for (let user of options.state.users) { | ||
file = user.files.find(e => e.h === data.n) | ||
for (let [uh, userData] of options.state.users) { | ||
file = userData.files.find(e => e.h === data.n) | ||
if (file) break | ||
@@ -12,0 +12,0 @@ } |
@@ -8,3 +8,3 @@ const micro = require('micro') | ||
const error = options.simulateDownloadError(parsedURL, req, res) | ||
if (error) return error | ||
if (error) throw error | ||
} | ||
@@ -11,0 +11,0 @@ |
@@ -7,3 +7,3 @@ const path = require('path') | ||
const error = options.simulateUploadError(parsedURL, req, res) | ||
if (error) return error | ||
if (error) throw error | ||
} | ||
@@ -10,0 +10,0 @@ |
@@ -1,8 +0,42 @@ | ||
let counter = 0 | ||
function generateIdCounter () { | ||
const buffer = Buffer.alloc(6) | ||
buffer.writeUIntBE(counter++, 0, 6) | ||
return buffer.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '') | ||
function generateIdCounter (state) { | ||
if (state.idCounter == null) state.idCounter = 0 | ||
return function () { | ||
const buffer = Buffer.alloc(5) | ||
buffer.writeUIntBE(state.idCounter, 0, 5) | ||
state.idCounter++ | ||
return base32(buffer) | ||
} | ||
} | ||
// It uses base32 to generate IDs as Windows file system is not case sensitive | ||
function base32 (plain) { | ||
const charTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567' | ||
let shiftIndex = 0 | ||
let digit = 0 | ||
let encoded = '' | ||
for (let i = 0; i < plain.length;) { | ||
let current = plain[i] | ||
if (shiftIndex > 3) { | ||
digit = current & (0xff >> shiftIndex) | ||
shiftIndex = (shiftIndex + 5) % 8 | ||
digit = (digit << shiftIndex) | ( | ||
(i + 1 < plain.length) ? plain[i + 1] : 0 | ||
) >> (8 - shiftIndex) | ||
i++ | ||
} else { | ||
digit = (current >> (8 - (shiftIndex + 5))) & 0x1f | ||
shiftIndex = (shiftIndex + 5) % 8 | ||
if (shiftIndex === 0) i++ | ||
} | ||
encoded += charTable[digit] | ||
} | ||
return encoded | ||
} | ||
exports.generateIdCounter = generateIdCounter | ||
@@ -9,0 +43,0 @@ |
@@ -66,3 +66,3 @@ const visualize = require('micro-visualize') | ||
if (!options.dataFolder) throw Error('dataFolder should be defined') | ||
if (!options.generateId) options.generateId = generateIdCounter | ||
if (!options.generateId) options.generateId = generateIdCounter(options.state) | ||
@@ -69,0 +69,0 @@ const state = options.state |
{ | ||
"name": "mega-mock", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "mega-mock mocks MEGA API servers", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
21280
518