jose/tools/explode-exports.js
Filip Skokan 357fe0b964 feat: Revised API, No dependencies, Browser Support, Promises
BREAKING CHANGE: Revised, Promise-based API
BREAKING CHANGE: No dependencies
BREAKING CHANGE: Browser support (using [Web Cryptography API](https://www.w3.org/TR/WebCryptoAPI/))
BREAKING CHANGE: Support for verification using a remote JWKS endpoint
BREAKING CHANGE: Experimental Node.js libuv thread pool based runtime (non-blocking 🎉)
2020-11-14 18:26:46 +01:00

48 lines
1.2 KiB
JavaScript
Executable file

const { writeFileSync } = require("fs");
const package = require("../package.json");
const glob = require("glob");
const modules = [
"src/jwe",
"src/jwk",
"src/jwks",
"src/jws",
"src/jwt",
"src/util",
];
const all = modules.map((path) => glob.sync(`${path}/**/*.ts`)).flat(Infinity);
const exp = all.reduce((acc, mod) => {
const len = mod.length;
const foo = mod.substring(4, len - 3);
acc["./" + foo] = {
browser: "./dist/browser/" + foo + ".js",
import: "./dist/node/esm/" + foo + ".js",
require: "./dist/node/cjs/" + foo + ".js",
};
acc["./webcrypto/" + foo] = {
import: "./dist/node/webcrypto/esm/" + foo + ".js",
require: "./dist/node/webcrypto/cjs/" + foo + ".js",
};
return acc;
}, {});
const imp = all.reduce((acc, mod) => {
const len = mod.length;
const foo = mod.substring(4, len - 3);
acc["#dist/" + foo] = {
import: "./dist/node/esm/" + foo + ".js",
require: "./dist/node/cjs/" + foo + ".js",
};
acc["#dist/webcrypto/" + foo] = {
import: "./dist/node/webcrypto/esm/" + foo + ".js",
require: "./dist/node/webcrypto/cjs/" + foo + ".js",
};
return acc;
}, {});
package.imports = imp;
package.exports = exp;
writeFileSync("package.json", JSON.stringify(package, null, 2) + "\n");