mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
7f48c67512
* Add `unicorn/prefer-node-protocol` * Fix `unicorn/prefer-node-protocol` ESLint errors * Run `npm run format:fix` * Add sandboxed-module sourceTransformers in mocha setups Fix `no such file or directory, open 'node:fs'` in `sandboxed-module` * Remove `node:` in the SandboxedModule requires * Fix new linting errors with `node:` GitOrigin-RevId: 68f6e31e2191fcff4cb8058dd0a6914c14f59926
23 lines
615 B
JavaScript
23 lines
615 B
JavaScript
const _ = require('lodash')
|
|
const path = require('node:path')
|
|
|
|
//
|
|
// The advice in http://docs.aws.amazon.com/AmazonS3/latest/dev/
|
|
// request-rate-perf-considerations.html is to avoid sequential key prefixes,
|
|
// so we reverse the project ID part of the key as they suggest.
|
|
//
|
|
function format(projectId) {
|
|
const prefix = naiveReverse(pad(projectId))
|
|
return path.join(prefix.slice(0, 3), prefix.slice(3, 6), prefix.slice(6))
|
|
}
|
|
|
|
function pad(number) {
|
|
return _.padStart(number, 9, '0')
|
|
}
|
|
|
|
function naiveReverse(string) {
|
|
return string.split('').reverse().join('')
|
|
}
|
|
|
|
exports.format = format
|
|
exports.pad = pad
|