@anansi/core
TypeScript icon, indicating that this package has built-in type declarations

0.20.10 • Public • Published

@anansi/core

npm downloads bundle size npm version PRs Welcome

The itsy bitsy spider crawled up the water spout. Down came the rain, and washed the spider out. Out came the sun, and dried up all the rain, and the itsy bitsy spider went up the spout again

Entry

yarn start-anansi./src/index.tsx

This script uses two entry points for client/server.

index.server.tsx
import { useController } from '@data-client/react';
import {
  laySpouts,
  documentSpout,
  dataClientSpout,
  prefetchSpout,
  routerSpout,
  JSONSpout,
  appSpout,
} from '@anansi/core/server';

import app from 'app';

import { createRouter } from './routing';

const spouts = prefetchSpout('controller')(
  documentSpout({ title: 'anansi' })(
    JSONSpout()(
      dataClientSpout()(
        routerSpout({ useResolveWith: useController, createRouter })(
          appSpout(app),
        ),
      ),
    ),
  ),
);

export default laySpouts(spouts);
index.tsx
import { useController } from '@data-client/react';
import {
  floodSpouts,
  documentSpout,
  dataClientSpout,
  routerSpout,
  JSONSpout,
  appSpout,
} from '@anansi/core';

import app from 'app';

import { createRouter } from './routing';

const appSpout = () => Promise.resolve({ app });

const spouts = documentSpout({ title: 'anansi' })(
  JSONSpout()(
    dataClientSpout()(
      routerSpout({ useResolveWith: useController, createRouter })(
        appSpout(app),
      ),
    ),
  ),
);

floodSpouts(spouts);

Anansi can quickly traverse spouts setup by a user.

The server lays the spouts for anansi to travel in. Once delivered to the client, the spouts can be flooded (hydration).

In both cases, we need the route and application data.

Scripts

serve(entry, options?)

import { serve } from '@anansi/core/scripts';

serve('./dist-server/App.js');

serveAssets: boolean

Serves static assets. This is typically useful when validating server builds locally; but you typically want to use a dedicated HTTP server for static assets in production.

serveProxy: boolean

Proxy requested based on webpack config devConfig. Useful for validating server builds locally. In production it is much more performant to use a separate reverse proxy.

Package Sidebar

Install

npm i @anansi/core

Weekly Downloads

161

Version

0.20.10

License

Apache-2.0

Unpacked Size

523 kB

Total Files

139

Last publish

Collaborators

  • ntucker
  • ljharb