本文整理汇总了TypeScript中ramda.set函数的典型用法代码示例。如果您正苦于以下问题:TypeScript set函数的具体用法?TypeScript set怎么用?TypeScript set使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了set函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: set
export const setData = <T>(
data: T,
/**
* If a schema is provided, execute its validate method. If the validation fails, the
* errors will be set at L.validationError's path.
*/
schema?: ObjectSchema<T>,
/**
* postValidationTransform will be applied to the data just before it's set on the configuration
* object, after the validation has happened. Use with caution: It was created as a trap door for
* merging IPv4 addresses and ports in the NodeBalancer creation flow.
*/
postValidationTransform?: (v: any) => any
) => {
if (!schema) {
return set(L.data, data);
}
const updatedData =
typeof postValidationTransform === 'function'
? postValidationTransform(data)
: data;
try {
schema.validateSync(data, { abortEarly: false });
return set(L.data, updatedData);
} catch (error) {
return compose(
set(L.data, updatedData),
set(L.validationErrors, convertYupToLinodeErrors(error))
);
}
};
示例2: update
(state: State) => {
const update = R.set(
R.lensPath(['notes', noteId, 'label']),
text
)
return update(state)
})
示例3:
(acc: Array<BookmarkTree>, bookmarkTree) => {
if (!acc.length) return [bookmarkTree]
const prevBookmarkTree = R.last(acc)
if (!prevBookmarkTree) throw new Error('prevBookmarkTree must exist')
const updatedBookmarkTree = R.set(
R.lensPath(['parent', 'parentId']),
prevBookmarkTree.parent.id,
bookmarkTree
)
return [...acc, updatedBookmarkTree]
},
示例4: test
test('should remove tree and its child trees if cannot get that tree', () => {
for (let i = 1; i < correlatedBookmarkTrees.length; i += 1) {
const clonedGenerator = generator.clone()
const partiallyUnrelatedBookmarkTrees = R.set(R.lensIndex(i), null, correlatedBookmarkTrees)
expect(clonedGenerator.next(partiallyUnrelatedBookmarkTrees).value).toEqual(
R.take(i, partiallyUnrelatedBookmarkTrees)
)
expect(clonedGenerator.next().done).toBe(true)
}
})
示例5: Board
export default function Board(sources: Sources,
stateUpdate$: Stream<BootstrapMessage>) {
const {
stream: noteEditStart$,
handler: onNoteEditStart
} = createEventHandler<string>()
const container = sources.DOM.select('.js-container')
const noteDelete$: Stream<string> = container.select('.js-delete-note')
.events('click')
.map(e => (e.target as HTMLButtonElement).getAttribute('data-note'))
const noteEditArea = container.select('.js-note-edit')
const noteMouseDown$: Stream<{id: string}> = (container.select('.js-note')
.events('mousedown') as Stream<MouseEvent>).map((e) => {
return {
id: (e.currentTarget as Element).getAttribute('data-note')
}
})
const mouseMove$ = container
.events('mousemove') as Stream<MouseEvent>
const mouseUp$ = container
.events('mouseup') as Stream<MouseEvent>
const noteEditBlur$ = noteEditArea
.events('blur') as Stream<Event>
const noteSaveText$ = noteEditBlur$
.map(e => ({
noteId: (e.target as HTMLTextAreaElement).getAttribute('data-note'),
text: ((e.target as HTMLTextAreaElement).value || '').trim()
}))
.filter(({ noteId }) => noteId !== null && noteId.length > 0)
const finishEdit$ = Stream.merge(
container.events('click'), noteEditBlur$
).compose(debounce(20))
const addNote$ = sources.DOM.select('.js-add-note')
.events('click') as Stream<MouseEvent>
const noteDrag$: Stream<NoteEvent> = noteMouseDown$.map(({ id }) =>
mouseMove$.map(e => ({
id: id,
x: e.layerX - NOTE_WIDTH / 2,
y: e.layerY - NOTE_HEIGHT / 2
}))
.compose(dropRepeats((a: any, b: any) =>
a.x === b.x && a.y === b.y
))
.endWhen(mouseUp$)
).flatten()
const noteDragMod$ = noteDrag$.map(({ id, x, y }) => (state: State) => {
const update = R.compose<State, State, State>(
R.set(
R.lensPath(['notes', id, 'pos']),
{ x, y } as Position
),
R.assoc('draggingNoteId', id)
)
return update(state)
})
const noteStopDraggingMod$: Stream<(state: State) => State> = mouseUp$.mapTo(
R.set(R.lensProp('draggingNoteId'), null)
)
const noteEditId$ = Stream.merge(noteEditStart$, finishEdit$.mapTo(null))
const noteEditStartMod$ = noteEditId$.map(id => (state: State) => {
if (state.editingNoteId === id) {
return state
}
return R.assoc('editingNoteId', id, state) as State
})
const updateFromBootsrapMessage = (data: BootstrapMessage) =>
R.pipe<State, State, State>(
R.assoc('boards', data.boards),
R.assoc('notes', data.notes)
)
// perform optimistic update
const noteSaveTextMod$ = noteSaveText$.map(({ noteId, text }) =>
(state: State) => {
const update = R.set(
R.lensPath(['notes', noteId, 'label']),
text
)
return update(state)
})
const serverBootstrap$ = sources.websocket.get('bootstrap')
.map((res: any) => res.data as BootstrapMessage).debug('bootstrap$')
const serverBootstrapMod$ =
//.........这里部分代码省略.........
示例6: canSpendMana
const spendManaHandler = (state: Hero, payload: SpendManaPayload) =>
canSpendMana(state, payload.amount)
? R.set(manaLens, state.mana - payload.amount, state)
: state;
示例7:
const restoreManaHandler = (state: Hero) =>
R.set(manaLens, R.view(maximumManaLens, state), state);
示例8: when
export const setHeaders = (headers: any = {}) =>
when(() => isNotEmpty(headers), set(L.headers, headers));