Best JavaScript code snippet using storybook-root
story.resolver.ts
Source:story.resolver.ts
1import { ApolloError, AuthenticationError, GraphQLUpload } from "apollo-server-express";2import { storyService } from "../services/story.service";3import { HttpContext, UploadedFileResponse, UploadFile } from "../types";4import { Arg, Args, ArgsType, Ctx, Field, Mutation, ObjectType, Query, Resolver, UseMiddleware } from "type-graphql";5// import { GraphQLUpload, FileUpload } from 'graphql-upload'6import { Story } from "../models/Story";7import { isAuth } from "../middleware/isAuth";8import { imageService } from "../services/image.service";9@ObjectType()10class DeleteResponse {11 @Field(() => Boolean)12 isDelete: boolean;13 @Field(() => String)14 msg: String15}16@ArgsType()17class FindStoryBy {18 @Field(() => String, { nullable: true })19 id?: string;20 21 @Field(() => String, { nullable: true })22 title?: string;23}24@Resolver()25export class StoryResolver {26 @Query(() => [Story])27 async getAllStories(): Promise<Story[]> {28 try {29 const stories = await storyService.findAllStoriesBy({})30 return stories31 } catch (error) {32 throw new ApolloError('storyResolver error getAllStories')33 }34 }35 36 @Query(() => [Story])37 @UseMiddleware(isAuth)38 async getAllStoriesByUserId(39 @Arg('userId') userId: string,40 @Arg('isPublished', { nullable: true }) isPublished: boolean = false41 ): Promise<Story[]> {42 try {43 let stories = await storyService.findAllStoriesByUserId(userId)44 stories = isPublished ? stories.filter(story => story.isPublished) : stories.filter(story => story.isPublished === false)45 return stories46 } catch (error) {47 throw new ApolloError('storyResolver error getAllStoriesByUserId')48 }49 }50 @Query(() => [Story])51 @UseMiddleware(isAuth)52 async getAllStoriesByMe(53 @Arg('isPublished', { nullable: true }) isPublished: boolean = false,54 @Ctx() { req }: HttpContext55 ) {56 try {57 if (!req.session.userId) {58 return new AuthenticationError('You must be logged in')59 }60 const me = req.session.userId61 let stories = await storyService.findAllStoriesByUserId(me)62 stories = isPublished ? stories.filter(story => story.isPublished) : stories.filter(story => story.isPublished === false)63 return stories64 } catch (error) {65 throw new ApolloError('storyResolver error getAllStoriesByMe')66 }67 }68 @Query(() => Story)69 async getStoryBy(70 @Args() where: FindStoryBy71 ): Promise<Story | Error> {72 try {73 const story = await storyService.findBy(where)74 return story75 } catch (error) {76 throw new ApolloError('storyResolver error getStoryBy' + error)77 }78 }79 @Mutation(() => Story)80 @UseMiddleware(isAuth)81 async createStory(82 @Arg('title') title: string = '',83 @Arg('content') content: string = '',84 @Arg('imgUrl', () => String!, { nullable: true }) imgUrl : string = '',85 @Arg('isPublished') isPublished: boolean = false,86 @Ctx() { req }: HttpContext87 ) {88 const userId = req.session.userId89 try {90 // const { url } = await imageService.createThumbnail(image)91 const story = await storyService.create(title, content, userId, isPublished, imgUrl)92 req.session.storyId = story.id93 return story94 } catch (error) {95 throw new ApolloError('storyResolver error createStory' + error.message)96 }97 }98 @Mutation(() => Story, { nullable: true })99 @UseMiddleware(isAuth)100 async updateStory(101 @Arg('id', () => String) id: string,102 @Arg('title') title: string,103 @Arg('content') content: string,104 @Arg('imgUrl', () => String!, { nullable: true }) imgUrl : string = '',105 @Arg('isPublished') isPublished: boolean = false,106 ) {107 try {108 const story = await storyService.update(id, title, content,isPublished, imgUrl)109 return story.raw[0]110 } catch (error) {111 throw new ApolloError('storyResolver error updatePost ' + error)112 }113 }114 @Mutation(() => DeleteResponse)115 @UseMiddleware(isAuth)116 async deleteStory(117 @Arg('id', () => String) id: string,118 @Ctx() { req }: HttpContext119 ) : Promise<DeleteResponse> {120 try {121 return await storyService.delete({ id, userId: req.session.userId })122 } catch (error) {123 throw new ApolloError('storyResolver error deletePost ' + error)124 }125 }126 @Mutation(() => UploadedFileResponse)127 async createThumnail(128 @Arg('image', () => GraphQLUpload!) image : UploadFile129 ) : Promise<UploadedFileResponse> {130 try {131 return await imageService.createThumbnail(image)132 } catch (error) {133 throw new Error('storyResover error createThumnail ' + error)134 }135 }...
index.js
Source:index.js
1import { storiesOf } from '@storybook/vue'2import './styles.css';3import AspectRatioStories from './aspect-ratio/index'4import BasicStories from './basic/index'5import GridStories from './grid/index'6import ParentStories from './parent/index'7import StylingStories from './styling/index'8import EventsStories from './events/index'9import CallbacksStories from './callbacks/index'10import AdvancedStories from './advanced/index'11import HowToStories from './how-to/index'12for (var story in BasicStories) {13 storiesOf('Basic', module)14 .add(story, BasicStories[story][0], markdownNotes(BasicStories[story][1]))15}16for (var story in GridStories) {17 storiesOf('Grid', module)18 .add(story, GridStories[story][0], markdownNotes(GridStories[story][1]))19}20for (var story in ParentStories) {21 storiesOf('Parent', module)22 .add(story, ParentStories[story][0], markdownNotes(ParentStories[story][1]))23}24for (var story in AspectRatioStories) {25 storiesOf('Aspect Ratio', module)26 .add(story, AspectRatioStories[story][0], markdownNotes(AspectRatioStories[story][1]))27}28for (var story in StylingStories) {29 storiesOf('Styling', module)30 .add(story, StylingStories[story][0], markdownNotes(StylingStories[story][1]))31}32for (var story in EventsStories) {33 storiesOf('Events', module)34 .add(story, EventsStories[story][0], markdownNotes(EventsStories[story][1]))35}36for (var story in CallbacksStories) {37 storiesOf('Callbacks', module)38 .add(story, CallbacksStories[story][0], markdownNotes(CallbacksStories[story][1]))39}40for (var story in AdvancedStories) {41 storiesOf('Advanced', module)42 .add(story, AdvancedStories[story][0], markdownNotes(AdvancedStories[story][1]))43}44for (var story in HowToStories) {45 storiesOf('How To', module)46 .add(story, HowToStories[story][0], markdownNotes(HowToStories[story][1]))47}48/**49 * Render markdown notes, if available50 * @param {String} notes51 * @return {Object}52 */53function markdownNotes(notes) {54 return notes55 ? { notes: { markdown: notes }}56 : {}...
Story.js
Source:Story.js
1import React, { useState, useEffect } from "react";2import { getStory } from "../api/HackerNewsAPI";3import { StoryWrapper, StoryTitle } from "../styles/StoryStyles";4import { mapTime, isLessThan4Hours } from "../components/mapTime";5const Story = ({ storyId }) => {6 const [story, setStory] = useState({});7 useEffect(() => {8 getStory(storyId).then((data) => data && data.url && setStory(data));9 });10 // const filterScore = () => {11 // if (story.score > 70) {12 // return <p>Post score: {story.score}</p>;13 // } else return null;14 // };15 // const filterTime = () => {16 // if (mapTime(story.time) )17 // };18 // const point = story.score.filter((score) => score > 70);19 return story &&20 story.url &&21 story.score > 70 &&22 isLessThan4Hours(story.time) ? (23 <StoryWrapper data-testid="story">24 <StoryTitle>25 <a href={story.url}>{story.title}</a>26 </StoryTitle>27 <p>By: {story.by}</p>28 <p>Score: {story.score}</p>29 <p>Posted: {mapTime(story.time)} ago</p>30 </StoryWrapper>31 ) : null;32};...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!