unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
83 lines • 2.6 kB
JavaScript
import { NotFoundError } from '../../lib/error/index.js';
export default class FakePublicSignupStore {
constructor() {
this.tokens = [];
}
async addTokenUser(secret, userId) {
this.get(secret).then((token) => {
if (token !== undefined) {
token.users?.push({ id: userId });
}
});
return Promise.resolve();
}
async get(secret) {
const token = this.tokens.find((t) => t.secret === secret);
if (!token) {
throw new NotFoundError('Could not find token');
}
return Promise.resolve(token);
}
async isValid(secret) {
const token = this.tokens.find((t) => t.secret === secret);
return Promise.resolve(token !== undefined &&
new Date(token.expiresAt) > new Date() &&
token.enabled);
}
async count() {
return Promise.resolve(0);
}
// eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars
async delete(_secret) {
return Promise.resolve(undefined);
}
async getAllActive() {
return Promise.resolve(this.tokens);
}
async create(newToken) {
return this.insert(newToken);
}
async insert(newToken) {
const token = {
secret: 'some-secret',
expiresAt: newToken.expiresAt.toISOString(),
createdAt: new Date().toISOString(),
users: [],
url: 'some=url',
name: newToken.name,
role: {
name: 'Viewer',
type: '',
id: 1,
},
enabled: true,
createdBy: newToken.createdBy,
};
this.tokens.push(token);
return Promise.resolve(token);
}
async update(secret, { expiresAt, enabled }) {
const token = await this.get(secret);
if (expiresAt) {
token.expiresAt = expiresAt.toISOString();
}
if (enabled !== undefined) {
token.enabled = enabled;
}
const index = this.tokens.findIndex((t) => t.secret === secret);
this.tokens[index] = token;
return Promise.resolve(token);
}
async deleteAll() {
return Promise.resolve(undefined);
}
destroy() { }
async exists(key) {
return this.tokens.some((t) => t.secret === key);
}
// eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars
async getAll(_query) {
return Promise.resolve(this.tokens);
}
}
//# sourceMappingURL=fake-public-signup-store.js.map