urbit/pkg/npm/api/settings/lib.ts

74 lines
1.3 KiB
TypeScript
Raw Normal View History

import { Poke, Scry } from '../lib';
2021-02-25 06:54:00 +03:00
import { PutBucket, Key, Bucket, DelBucket, Value, PutEntry, DelEntry, SettingsUpdate } from './types';
export const action = <T extends SettingsUpdate>(data: T): Poke<T> => ({
app: 'settings-store',
mark: 'settings-event',
json: data
});
export const putBucket = (
desk: string,
2021-02-25 06:54:00 +03:00
key: Key,
bucket: Bucket
): Poke<PutBucket> => action({
'put-bucket': {
desk,
2021-02-25 06:54:00 +03:00
'bucket-key': key,
'bucket': bucket
}
});
export const delBucket = (
desk: string,
2021-02-25 06:54:00 +03:00
key: Key
): Poke<DelBucket> => action({
'del-bucket': {
desk,
2021-02-25 06:54:00 +03:00
'bucket-key': key
}
});
export const putEntry = (
desk: string,
2021-02-25 06:54:00 +03:00
bucket: Key,
key: Key,
value: Value
): Poke<PutEntry> => action({
'put-entry': {
desk,
2021-02-25 06:54:00 +03:00
'bucket-key': bucket,
'entry-key': key,
value: value
}
});
export const delEntry = (
desk: string,
2021-02-25 06:54:00 +03:00
bucket: Key,
key: Key
): Poke<DelEntry> => action({
'del-entry': {
desk,
2021-02-25 06:54:00 +03:00
'bucket-key': bucket,
'entry-key': key
}
});
export const getAll: Scry = {
app: 'settings-store',
path: '/all'
};
export const getBucket = (desk: string, bucket: string) => ({
app: 'settings-store',
path: `/bucket/${bucket}`
});
export const getEntry = (desk: string, bucket: string, entry: string) => ({
app: 'settings-store',
path: `/entry/${desk}/${bucket}/${entry}`
});
export * from './types';