0.1.8 • Published 2 years ago

svelte-map-reduce-store v0.1.8

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Svelte Map Reduce Store

import { MapReduce } from 'svelte-map-reduce-store';

export type Folder = {
  _id: 'hello' | 'test' | 'beta';
  server?: string;
  config?: {
    maxsize: {
      MAXSIZE_ACTION: number;
      MAXSIZE_MEMOCNT: number;
      MAXSIZE_MEMOLINE: number;
    };
    path: {
      DIR_LIB: './lib';
      DIR_HTML: './html';
      DIR_RS: './rs';
      DIR_VIL: './data/vil';
      DIR_USER: '../data/user';
    };
  };
};

export const Folders = MapReduce({
  format: () => ({
    list: [] as Folder[],
    sameSites: new Set([location.origin])
  }),
  reduce: (data, doc) => {
    if (doc.server) data.sameSites.add(`http://${doc.server}`);
  },
  order: (data, { sort, group_sort }, mode: 'asc' | 'desc') => {
    data.list = sort(data.list)[mode]((o) => o.server);
  }
});
<script lang="ts">
  import { Folders } from './model';

  Folders.add([
    {
      _id: 'hello',
      server: 'https://localhost/hello-world'
    },
    {
      _id: 'test',
      server: 'https://localhost/testpage'
    }
  ]);

  Folders.deploy({
    hello: {
      server: 'https://localhost/hello-world'
    },
    test: {
      server: 'https://localhost/testpage'
    }
  });

  Folders.find('hello');
  Folders.reduce(['hello', 'test'], (o: { count: number }) => {
    o.count ||= 0;
    o.count++;
  }).asc((o) => o.count);

  Folders.sort('desc');
  Folders.sort('asc');

  $: console.log($Folders.list);
</script>
0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago