Orchestr

Creating an App

How to create a new app for use with laioutr

What is an app?

Technically speaking, an app is a nuxt-module bundled as an npm package.

src/module.ts
import { createResolver, defineNuxtModule } from '@nuxt/kit';
import { registerLaioutrApp } from '@laioutr-core/kit';
import type { NuxtModule } from '@nuxt/schema';
import { name, version } from '../package.json';

const module: NuxtModule = defineNuxtModule({
  meta: {
    name,
    version,
    configKey: name,
  },
  async setup(options, nuxt) {
    const { resolve } = createResolver(import.meta.url);
    const resolveRuntimeModule = (path: string) => resolve('./runtime', path);

    nuxt.options.build.transpile.push(resolve('./runtime'));

    await registerLaioutrApp({
      name,
      version,
      orchestrDirs: [resolveRuntimeModule('server/orchestr')],
    });
  },
});

export default module;