autonomous.contact/models/user.ts

37 lines
843 B
TypeScript

import { FSDB_COLLECTION } from 'jsr:@andyburke/fsdb';
import { FSDB_INDEXER_SYMLINKS } from 'jsr:@andyburke/fsdb/indexers';
import { by_character } from 'jsr:@andyburke/fsdb/organizers';
export type USER = {
id: string;
username: string;
timestamps: {
created: string;
updated: string;
};
};
export const USER_STORE = new FSDB_COLLECTION<USER>({
name: 'users',
indexers: {
// email: new FSDB_INDEXER_SYMLINKS<USER>({
// name: 'email',
// field: 'email',
// organize: by_email
// }),
username: new FSDB_INDEXER_SYMLINKS<USER>({
name: 'username',
field: 'username',
organize: by_character
}),
normalized_username: new FSDB_INDEXER_SYMLINKS<USER>({
name: 'normalized_username',
get_values_to_index: (user) => {
return [user.username.toLowerCase()];
},
organize: by_character
})
}
});