Socket
Book a DemoInstallSign in
Socket

@dmno/cloudflare-platform

Package Overview
Dependencies
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dmno/cloudflare-platform

Tools and data-types to use DMNO with Cloudflare

latest
Source
npmnpm
Version
0.0.4
Version published
Maintainers
0
Created
Source

Check out the docs for more information on how to use DMNO with Cloudflare.

If you have any questions, please reach out to us on Discord.

@dmno/cloudflare-platform npm

Installation

npm add @dmno/cloudflare-platform

Example Usage

import { CloudflareWranglerEnvSchema, DmnoWranglerEnvSchema } from '@dmno/cloudflare-platform';
import { OnePasswordDmnoPlugin } from '@dmno/1password-plugin';
import {
  DmnoBaseTypes, defineDmnoService, pickFromSchemaObject, switchBy,
} from 'dmno';

// initialize our 1Password plugin
const opSecrets = new OnePasswordDmnoPlugin('1pass', {
  fallbackToCliBasedAuth: true,
});

export default defineDmnoService({
  schema: {
    // config that affects wrangler directly
    ...pickFromSchemaObject(CloudflareWranglerEnvSchema, {
      CLOUDFLARE_ACCOUNT_ID: {
        value: opSecrets.itemByReference('op://Shared/Cloudflare/account id'),
      },
      CLOUDFLARE_API_TOKEN: {
        value: opSecrets.itemByReference('op://Shared/Cloudflare/workers api token'),
      },
    }),

    // special config that controls wrangler via `dwrangler` cli wrapper (all optional)
    ...pickFromSchemaObject(DmnoWranglerEnvSchema, {
      WRANGLER_ENV: {}, // passed as --env
      WRANGLER_DEV_IP: { value: 'custom.host.local' }, // passed as --ip
      WRANGLER_DEV_PORT: { value: 8881 }, // passed as --port
      WRANGLER_DEV_URL: {}, // will be populated with full dev URL
      WRANGLER_LIVE_RELOAD: { value: true }, // passed as `--live-reload`
      WRANGLER_DEV_ACTIVE: {}, // true when running `dwrangler dev` or `dwrangler pages dev`
      WRANGLER_BUILD_ACTIVE: {}, // true when dwrangler is performing a build for deployment
    }),

    // ... rest of your app config
    SOME_VAR: {
      value: switchBy('WRANGLER_DEV_ACTIVE', { // use info from wrangler to affect other config
        _default: 'dev value',
        false: 'prod value',
      }),
    },
  },
});

dwrangler wrapper

Our Cloudflare platform integration also provides a thin wrapper called dwrangler that injects the config into the wrangler cli. In most cases, you can just use dwrangler in your package.json scripts instead of wrangler.

{
  "scripts": {
    "dev": "dwrangler dev",
    "deploy": "dwrangler deploy"
  }
}

Read more about the dwrangler wrapper and all the additional features DMNO unlocks in the docs.

Keywords

dmno

FAQs

Package last updated on 19 Feb 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