working rss feed to nostr publish
This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CredentialsProviderError = void 0;
|
||||
const ProviderError_1 = require("./ProviderError");
|
||||
class CredentialsProviderError extends ProviderError_1.ProviderError {
|
||||
constructor(message, tryNextLink = true) {
|
||||
super(message, tryNextLink);
|
||||
this.tryNextLink = tryNextLink;
|
||||
this.name = "CredentialsProviderError";
|
||||
Object.setPrototypeOf(this, CredentialsProviderError.prototype);
|
||||
}
|
||||
}
|
||||
exports.CredentialsProviderError = CredentialsProviderError;
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ProviderError = void 0;
|
||||
class ProviderError extends Error {
|
||||
constructor(message, tryNextLink = true) {
|
||||
super(message);
|
||||
this.tryNextLink = tryNextLink;
|
||||
this.name = "ProviderError";
|
||||
Object.setPrototypeOf(this, ProviderError.prototype);
|
||||
}
|
||||
static from(error, tryNextLink = true) {
|
||||
return Object.assign(new this(error.message, tryNextLink), error);
|
||||
}
|
||||
}
|
||||
exports.ProviderError = ProviderError;
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TokenProviderError = void 0;
|
||||
const ProviderError_1 = require("./ProviderError");
|
||||
class TokenProviderError extends ProviderError_1.ProviderError {
|
||||
constructor(message, tryNextLink = true) {
|
||||
super(message, tryNextLink);
|
||||
this.tryNextLink = tryNextLink;
|
||||
this.name = "TokenProviderError";
|
||||
Object.setPrototypeOf(this, TokenProviderError.prototype);
|
||||
}
|
||||
}
|
||||
exports.TokenProviderError = TokenProviderError;
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.chain = void 0;
|
||||
const ProviderError_1 = require("./ProviderError");
|
||||
const chain = (...providers) => async () => {
|
||||
if (providers.length === 0) {
|
||||
throw new ProviderError_1.ProviderError("No providers in chain");
|
||||
}
|
||||
let lastProviderError;
|
||||
for (const provider of providers) {
|
||||
try {
|
||||
const credentials = await provider();
|
||||
return credentials;
|
||||
}
|
||||
catch (err) {
|
||||
lastProviderError = err;
|
||||
if (err === null || err === void 0 ? void 0 : err.tryNextLink) {
|
||||
continue;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
throw lastProviderError;
|
||||
};
|
||||
exports.chain = chain;
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.fromStatic = void 0;
|
||||
const fromStatic = (staticValue) => () => Promise.resolve(staticValue);
|
||||
exports.fromStatic = fromStatic;
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("tslib");
|
||||
tslib_1.__exportStar(require("./CredentialsProviderError"), exports);
|
||||
tslib_1.__exportStar(require("./ProviderError"), exports);
|
||||
tslib_1.__exportStar(require("./TokenProviderError"), exports);
|
||||
tslib_1.__exportStar(require("./chain"), exports);
|
||||
tslib_1.__exportStar(require("./fromStatic"), exports);
|
||||
tslib_1.__exportStar(require("./memoize"), exports);
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.memoize = void 0;
|
||||
const memoize = (provider, isExpired, requiresRefresh) => {
|
||||
let resolved;
|
||||
let pending;
|
||||
let hasResult;
|
||||
let isConstant = false;
|
||||
const coalesceProvider = async () => {
|
||||
if (!pending) {
|
||||
pending = provider();
|
||||
}
|
||||
try {
|
||||
resolved = await pending;
|
||||
hasResult = true;
|
||||
isConstant = false;
|
||||
}
|
||||
finally {
|
||||
pending = undefined;
|
||||
}
|
||||
return resolved;
|
||||
};
|
||||
if (isExpired === undefined) {
|
||||
return async (options) => {
|
||||
if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {
|
||||
resolved = await coalesceProvider();
|
||||
}
|
||||
return resolved;
|
||||
};
|
||||
}
|
||||
return async (options) => {
|
||||
if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {
|
||||
resolved = await coalesceProvider();
|
||||
}
|
||||
if (isConstant) {
|
||||
return resolved;
|
||||
}
|
||||
if (requiresRefresh && !requiresRefresh(resolved)) {
|
||||
isConstant = true;
|
||||
return resolved;
|
||||
}
|
||||
if (isExpired(resolved)) {
|
||||
await coalesceProvider();
|
||||
return resolved;
|
||||
}
|
||||
return resolved;
|
||||
};
|
||||
};
|
||||
exports.memoize = memoize;
|
||||
Reference in New Issue
Block a user