@storm-software/cloudflare-tools
Version:
A Nx plugin package that contains various executors, generators, and utilities that assist in managing Cloudflare services.
164 lines (162 loc) • 4.5 kB
JavaScript
import "./chunk-YSCEY447.mjs";
import "./chunk-HUK6LVIA.mjs";
import "./chunk-3J7KBHMJ.mjs";
import {
applicationGenerator,
applicationSchematic
} from "./chunk-U2VC556K.mjs";
import {
initGenerator,
initSchematic
} from "./chunk-R5EXW4CZ.mjs";
import "./chunk-SWYYMID7.mjs";
import "./chunk-7Z5PILRU.mjs";
import {
getEncoding,
getInternalDependencies,
isTextFile,
uploadFile
} from "./chunk-4F6THJ6M.mjs";
import "./chunk-VJL36SFQ.mjs";
import "./chunk-XFDJCBLE.mjs";
import {
ProjectTagConstants,
addProjectTag
} from "./chunk-F5RW4AZL.mjs";
import "./chunk-JOBVIJOH.mjs";
import "./chunk-OBUVLRI3.mjs";
import "./chunk-W6EAOXRO.mjs";
// src/plugins/index.ts
import {
createNodesFromFiles
} from "@nx/devkit";
import defu from "defu";
import { existsSync } from "node:fs";
import { dirname, join } from "node:path";
import { readJsonFile } from "nx/src/utils/fileutils";
var name = "storm-software/cloudflare-tools/cloudflare";
var createNodesV2 = [
"{**/wrangler.toml}",
async (configFiles, options = { includeApps: true }, context) => {
return await createNodesFromFiles(
async (file, options2, context2) => {
try {
const packageJson = createPackageJson(file, context2.workspaceRoot);
if (!packageJson) {
return {};
}
const project = createProjectFromPackageJsonNextToProjectJson(
file,
packageJson
);
const targets = {};
targets["serve"] = {
cache: false,
inputs: ["typescript", "^production"],
dependsOn: ["build"],
executor: "@storm-software/cloudflare-tools:serve",
options: {
port: 4500
}
};
targets["clean-package"] = {
cache: true,
dependsOn: ["build"],
inputs: ["typescript", "^production"],
outputs: ["{workspaceRoot}/dist/{projectRoot}"],
executor: "@storm-software/workspace-tools:clean-package",
options: {
cleanReadMe: true,
cleanComments: true
}
};
targets["nx-release-publish"] = {
cache: false,
inputs: ["typescript", "^production"],
dependsOn: ["clean-package", "^nx-release-publish"],
executor: "@storm-software/cloudflare-tools:cloudflare-publish",
options: {}
};
addProjectTag(
project,
ProjectTagConstants.ProjectType.TAG_ID,
project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
{ overwrite: true }
);
addProjectTag(
project,
ProjectTagConstants.DistStyle.TAG_ID,
ProjectTagConstants.DistStyle.CLEAN,
{ overwrite: true }
);
addProjectTag(
project,
ProjectTagConstants.Provider.TAG_ID,
"cloudflare",
{
overwrite: true
}
);
const projects = {};
const externalNodes = {};
projects[project.root] = defu(
{
targets,
release: {
version: {
versionActions: "@storm-software/workspace-tools/release/js-release-actions"
}
}
},
project
);
return {
projects,
externalNodes
};
} catch (e) {
console.error(e);
return {};
}
},
configFiles,
options,
context
);
}
];
function createProjectFromPackageJsonNextToProjectJson(projectJsonPath, packageJson) {
const { nx, name: name2 } = packageJson;
const root = dirname(projectJsonPath);
return {
...nx,
name: name2,
root,
targets: {}
};
}
function createPackageJson(projectJsonPath, workspaceRoot) {
try {
const root = dirname(projectJsonPath);
const packageJsonPath = join(workspaceRoot, root, "package.json");
if (!existsSync(packageJsonPath)) {
return null;
}
return readJsonFile(packageJsonPath);
} catch (e) {
console.log(e);
return null;
}
}
export {
applicationGenerator,
applicationSchematic,
createNodesV2,
getEncoding,
getInternalDependencies,
initGenerator,
initSchematic,
isTextFile,
name,
uploadFile
};