async () => { const adapterAsync = new FileAsync<DbSchema>("test.json"); const dbAsyncPromise = lowfp(adapterAsync); const dbAsync = await dbAsyncPromise; const postsWithDefault = dbAsync("posts", [{ title: "baz" }] as Post[]); const func: Promise<Post[]> = postsWithDefault.write(post => [ ...post, { title: "another" } ]); };
() => { const adapterLS = new LocalStorage<DbSchema>("test.json"); const dbFP = lowfp(adapterLS); // Get posts const postsFP: low.FpReturn<Post[], low.AdapterSync<DbSchema>> = dbFP( "posts" ); // replace posts with a new array resulting from concat // and persist database const write: Post[] = postsFP.write( concat({ title: "lowdb is awesome", views: random(0, 5) }) ); // Find post by id const post: Post = postsFP(find({ id: 1 })); // Find top 5 fives posts const popular: Post[] = postsFP([ sortBy("views") as PostsAction, take(5) as PostsAction ]); const filtered: Post[] = dbFP("posts")(filter({ published: true })); const writeAction: Post[] = dbFP("posts").write(concat({ id: "123" })); const writeAction2: string = dbFP(["user", "name"]).write(set("typicode")); async () => { const adapterAsync = new FileAsync<DbSchema>("test.json"); const dbAsyncPromise = lowfp(adapterAsync); const dbAsync = await dbAsyncPromise; const postsWithDefault: low.FpReturn< Post[], low.AdapterAsync<DbSchema> > = dbAsync("posts", [{ title: "baz" }] as Post[]); const func: Promise<Post[]> = postsWithDefault.write(post => [ ...post, { title: "another" } ]); }; type PostsAction = (posts: Post[]) => Post[]; };