Socket
Book a DemoInstallSign in
Socket

@okam/directus-node

Package Overview
Dependencies
Maintainers
4
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@okam/directus-node

This library was generated with [Nx](https://nx.dev).

latest
Source
npmnpm
Version
0.6.2
Version published
Maintainers
4
Created
Source

directus-node

This library was generated with Nx.

Building

Run nx build directus-node to build the library.

Running unit tests

Run nx test directus-node to execute the unit tests via Jest.

Redirection

  • Create a fetch-redirect.js file in your next.js folder and require fetchRedirects
/**
 * Usage
 * In apps/contest-nextjs directory
 * npx env-cmd -f ../../.env.local node fetch-redirect.js
 */
const { fetchRedirects, getDefaultConfig } = require('@okam/directus-node')

// getDefaultConfig() will return an object with
// graphqlEndpoint: use environment variable NEXT_PUBLIC_GRAPHQL_URL
// graphqlApiKey: use environment variable NEXT_API_TOKEN_ADMIN
// redirectsFilename
// rewritesFilename
// limit: 2000  (number of redirect or rewrite rules fetched by graphql)
fetchRedirects(getDefaultConfig())
  • In project.json,
  • In targets.build, add "dependsOn": ["fetch-redirect"],
  • In targets:
    "fetch-redirect": {
      "executor": "nx:run-commands",
      "options": {
        "cwd": "{projectRoot}",
        "command": "node fetch-redirect"
      }
    },
  • Don't forget to change the cwd path

  • Create directory redirect

  • Create file redirect/index.js

const redirects = require('./redirects.json')
const rewrites = require('./rewrites.json')

module.exports = {
  redirects: async () => redirects,
  rewrites: async () => rewrites,
}

4.1 or redirect/index.mjs

import redirectsData from './redirects.json' with { type: 'json' }
import rewritesData from './rewrites.json' with { type: 'json' }

export const redirects = async () => redirectsData
export const rewrites = async () => rewritesData
  • Define environments variables
NEXT_REDIRECT_GRAPHQL_URL=http://server.some.url/graphql
NEXT_PUBLIC_GRAPHQL_URL=https://server.external/graphql
NEXT_API_TOKEN_ADMIN=user_token_for_graphql
  • Generate redirect/redirects.json and redirect/rewrites.json using fetch-redirect (or build project with nx)
npx env-cmd -f ../../.env.local node fetch-redirect.js
  • Update nextConfig in next.config.js with
const { rewrites, redirects } = require('./redirect/index')

for next.config.mjs

import { redirects, rewrites } from './redirect/index.mjs'

and

const nextConfig = {
...
  async redirects() {
    const rest = await redirects()
    return [
      // optional i18nrouter should be before
       ...i18nReRouter({locale: false, permanent: true}, 'redirect'),
      // custom redirect should be here
       ...rest,
    ]
    return rest
  },
  async rewrites() {
    const fallback = await rewrites()
    return {
      beforeFiles: [
        // optional i18n router
        ...i18nReRouter({locale: false}, 'rewrite'),
      ],
      afterFiles: [
        // optional i18n router
        ...i18nRewriter({...i18nConfigWithoutLocaleDetector, localeDetector: false}),
      ],
      fallback,
    }
  },
...
}

Warning

In production (build), you can't reload dynamically in next.config.(m?)js in rewrites()/redirects() because it was compiled in .nx/route-manifest.json. Updating the files in redirects/ won't work. In dev mode, both rewrites()/redirects() of next.config.(m?)js are runned on each server start.

FAQs

Package last updated on 24 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts