Add hosted helper fns

This commit is contained in:
Wietse Wind
2023-10-07 00:37:57 +02:00
parent 157edad911
commit 1855b50a49
6 changed files with 2509 additions and 9 deletions

View File

@@ -84,3 +84,27 @@ A health check endpoint lives on `/health`, and returns e.g.:
"txCount": 276
}
```
## Tools (Utils)
This package provides some internal helper functions:
- NPM (backend): https://www.npmjs.com/package/xpopgen
- CDN (browser): https://cdn.jsdelivr.net/npm/xpopgen/npm/browser.min.js
#### JS (backend)
```
import { ledgerIndexToFolders } from 'xpop-utils/npm/utils.mjs'
console.log(ledgerIndexToFolders(123456789))
```
#### JS (browser)
```
<script src="https://cdn.jsdelivr.net/npm/xpopgen/npm/browser.min.js"></script>
<script>
const { ledgerIndexToFolders } = require('xpop-utils')
console.log(ledgerIndexToFolders(123456789))
</script>
```

29
npm/browser.js Normal file
View File

@@ -0,0 +1,29 @@
require=(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ledgerIndexToFolders = void 0;
const ledgerIndexToFolders = ledgerIndex => {
return String(ledgerIndex).split('').reverse().join('') // Reverse
.replace(/([0-9]{3})/g, '$1/').split('').reverse().join('') // Reverse
.replace(/^\//, ''); // Remove prefix slash on i%3
};
exports.ledgerIndexToFolders = ledgerIndexToFolders;
},{}],"xpop-utils":[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "ledgerIndexToFolders", {
enumerable: true,
get: function () {
return _ledgerIndexToFolders.ledgerIndexToFolders;
}
});
var _ledgerIndexToFolders = require("../lib/ledgerIndexToFolders.mjs");
},{"../lib/ledgerIndexToFolders.mjs":1}]},{},[]);

1
npm/browser.min.js vendored Normal file
View File

@@ -0,0 +1 @@
require=function e(r,o,n){function t(l,u){if(!o[l]){if(!r[l]){var d="function"==typeof require&&require;if(!u&&d)return d(l,!0);if(i)return i(l,!0);var s=new Error("Cannot find module '"+l+"'");throw s.code="MODULE_NOT_FOUND",s}var f=o[l]={exports:{}};r[l][0].call(f.exports,(function(e){return t(r[l][1][e]||e)}),f,f.exports,e,r,o,n)}return o[l].exports}for(var i="function"==typeof require&&require,l=0;l<n.length;l++)t(n[l]);return t}({1:[function(e,r,o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.ledgerIndexToFolders=void 0;o.ledgerIndexToFolders=e=>String(e).split("").reverse().join("").replace(/([0-9]{3})/g,"$1/").split("").reverse().join("").replace(/^\//,"")},{}],"xpop-utils":[function(e,r,o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"ledgerIndexToFolders",{enumerable:!0,get:function(){return n.ledgerIndexToFolders}});var n=e("../lib/ledgerIndexToFolders.mjs")},{"../lib/ledgerIndexToFolders.mjs":1}]},{},[]);

5
npm/utils.mjs Normal file
View File

@@ -0,0 +1,5 @@
import { ledgerIndexToFolders } from '../lib/ledgerIndexToFolders.mjs'
export {
ledgerIndexToFolders,
}

2440
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,9 @@
"scripts": {
"dev": "nodemon .",
"xpopdev": "source .env && nodemon --max-old-space-size=40 .",
"serve": "serve ./store/"
"serve": "serve ./store/",
"minify": "cat ./npm/browser.js | terser --compress --mangle > ./npm/browser.min.js",
"browserify": "browserify -p esmify -r ./npm/utils.mjs:xpop-utils -o ./npm/browser.js && npm run minify"
},
"author": "Wietse Wind <w@xrpl-labs.com>",
"license": "MIT",
@@ -16,13 +18,23 @@
"/store/**"
]
},
"repository": {
"type": "git",
"url": "git://github.com:Xahau/Validation-Ledger-Tx-Store-to-xPOP.git"
},
"bugs": {
"url": "https://github.com/Xahau/Validation-Ledger-Tx-Store-to-xPOP/issues"
},
"homepage": "https://github.com/Xahau/Validation-Ledger-Tx-Store-to-xPOP/#readme",
"files": [
"lib/xpop/V1.mjs",
"lib/ledgerIndexToFolders.mjs",
"npm/utils.mjs",
"README.md"
],
"dependencies": {
"buffer": "^6.0.3",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"ed25519": "^0.0.5",
"elliptic": "^6.5.4",
@@ -37,7 +49,10 @@
"xrpl-client": "^2.2.0"
},
"devDependencies": {
"serve": "^14.2.1"
"browserify": "^17.0.0",
"esmify": "^2.1.1",
"serve": "^14.2.1",
"terser": "^5.21.0"
},
"optionalDependencies": {
"bufferutil": "^4.0.7",