chore: import upstream snapshot with attribution
CI / E2E Cloudflare (4/8) (push) Failing after 0s
CI / E2E Cloudflare (8/8) (push) Failing after 1s
CI / Lint (push) Failing after 1s
Auto Extract / Extract (push) Failing after 4s
CI / Version Check (push) Failing after 9s
CI / Integration Tests (push) Failing after 1s
CI / E2E tests (1/8) (push) Failing after 1s
CI / E2E tests (2/8) (push) Failing after 2s
CI / E2E tests (3/8) (push) Failing after 2s
CI / Browser Tests (push) Failing after 1s
CI / E2E tests (5/8) (push) Failing after 1s
CI / E2E Cloudflare (2/8) (push) Failing after 2s
CI / Typecheck (push) Failing after 1s
CI / Changeset Validation (push) Failing after 2s
CI / E2E Cloudflare (5/8) (push) Failing after 1s
CI / E2E Cloudflare (6/8) (push) Failing after 1s
CI / E2E Cloudflare (7/8) (push) Failing after 1s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1s
Format / Format (push) Failing after 0s
CodeQL / Analyze (actions) (push) Failing after 4s
CI / E2E tests (4/8) (push) Failing after 1s
CI / E2E tests (6/8) (push) Failing after 1s
CI / E2E tests (7/8) (push) Failing after 2s
CI / E2E tests (8/8) (push) Failing after 1s
CI / E2E Cloudflare (1/8) (push) Failing after 1s
CI / E2E Cloudflare (3/8) (push) Failing after 2s
Preview Releases / Publish Preview (push) Failing after 0s
zizmor / Run zizmor (push) Failing after 1s
Release / Release (push) Failing after 2s
CI / Smoke Tests (push) Failing after 5m36s
CI / Tests (push) Failing after 6m36s
Release / Sync Templates (push) Has been skipped
CI / E2E Tests (push) Has been cancelled
CI / E2E Cloudflare (4/8) (push) Failing after 0s
CI / E2E Cloudflare (8/8) (push) Failing after 1s
CI / Lint (push) Failing after 1s
Auto Extract / Extract (push) Failing after 4s
CI / Version Check (push) Failing after 9s
CI / Integration Tests (push) Failing after 1s
CI / E2E tests (1/8) (push) Failing after 1s
CI / E2E tests (2/8) (push) Failing after 2s
CI / E2E tests (3/8) (push) Failing after 2s
CI / Browser Tests (push) Failing after 1s
CI / E2E tests (5/8) (push) Failing after 1s
CI / E2E Cloudflare (2/8) (push) Failing after 2s
CI / Typecheck (push) Failing after 1s
CI / Changeset Validation (push) Failing after 2s
CI / E2E Cloudflare (5/8) (push) Failing after 1s
CI / E2E Cloudflare (6/8) (push) Failing after 1s
CI / E2E Cloudflare (7/8) (push) Failing after 1s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1s
Format / Format (push) Failing after 0s
CodeQL / Analyze (actions) (push) Failing after 4s
CI / E2E tests (4/8) (push) Failing after 1s
CI / E2E tests (6/8) (push) Failing after 1s
CI / E2E tests (7/8) (push) Failing after 2s
CI / E2E tests (8/8) (push) Failing after 1s
CI / E2E Cloudflare (1/8) (push) Failing after 1s
CI / E2E Cloudflare (3/8) (push) Failing after 2s
Preview Releases / Publish Preview (push) Failing after 0s
zizmor / Run zizmor (push) Failing after 1s
Release / Release (push) Failing after 2s
CI / Smoke Tests (push) Failing after 5m36s
CI / Tests (push) Failing after 6m36s
Release / Sync Templates (push) Has been skipped
CI / E2E Tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* `emdash-plugin build`
|
||||
*
|
||||
* Thin citty wrapper around `buildPlugin` from `./api.js`. Produces the
|
||||
* on-disk dist artifacts for an npm-installed sandboxed plugin:
|
||||
*
|
||||
* - `dist/plugin.mjs` (+ `.d.mts`) — runtime bytes (hooks + routes).
|
||||
* - `dist/index.mjs` (+ `.d.mts`) — descriptor module, bare default export.
|
||||
* - `dist/manifest.json` — normalised manifest, kept in sync.
|
||||
*
|
||||
* Plugin authors run this from their package's `prepublishOnly` (or a
|
||||
* `pnpm build` script that delegates). Bundling for the registry (the
|
||||
* tarball form) is a separate command — see `emdash-plugin bundle`.
|
||||
*/
|
||||
|
||||
import { defineCommand } from "citty";
|
||||
import consola from "consola";
|
||||
import pc from "picocolors";
|
||||
|
||||
import { BuildError, buildPlugin, type BuildLogger } from "./api.js";
|
||||
|
||||
export const buildCommand = defineCommand({
|
||||
meta: {
|
||||
name: "build",
|
||||
description: "Build a sandboxed plugin's npm distribution artifacts",
|
||||
},
|
||||
args: {
|
||||
dir: {
|
||||
type: "string",
|
||||
description: "Plugin directory (default: current directory)",
|
||||
default: process.cwd(),
|
||||
},
|
||||
"out-dir": {
|
||||
type: "string",
|
||||
alias: "o",
|
||||
description: "Output directory (default: ./dist)",
|
||||
default: "dist",
|
||||
},
|
||||
},
|
||||
async run({ args }) {
|
||||
const logger: BuildLogger = {
|
||||
start: (m) => consola.start(m),
|
||||
info: (m) => consola.info(m),
|
||||
success: (m) => consola.success(m),
|
||||
warn: (m) => consola.warn(m),
|
||||
};
|
||||
|
||||
let result;
|
||||
try {
|
||||
result = await buildPlugin({
|
||||
dir: args.dir,
|
||||
outDir: args["out-dir"],
|
||||
logger,
|
||||
});
|
||||
} catch (error) {
|
||||
if (error instanceof BuildError) {
|
||||
consola.error(error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
console.log();
|
||||
consola.info("Output:");
|
||||
console.log(` ${pc.cyan(result.files.descriptor)}`);
|
||||
console.log(` ${pc.cyan(result.files.runtime)}`);
|
||||
console.log(` ${pc.cyan(result.files.manifestJson)}`);
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user