UNPKG

@defer/redwood

Version:
82 lines (81 loc) 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateTomlConfig = exports.configureDeferClient = exports.addDeferHelloWorldExampleTask = exports.tasks = void 0; const tslib_1 = require("tslib"); const path_1 = tslib_1.__importDefault(require("path")); const execa_1 = tslib_1.__importDefault(require("execa")); const listr2_1 = require("listr2"); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const cli_helpers_1 = require("@redwoodjs/cli-helpers"); const project_config_1 = require("@redwoodjs/project-config"); const tasks = (options) => { const SRC_DEFER_PATH = path_1.default.join((0, cli_helpers_1.getPaths)().api.src, "jobs", "defer"); const SRC_DEFER_CLIENT_PATH_FILE = path_1.default.join((0, cli_helpers_1.getPaths)().api.src, "jobs", "clients", "defer.ts"); const commandPaths = { SRC_DEFER_PATH, SRC_DEFER_CLIENT_PATH_FILE, }; const existingFiles = options.force ? "OVERWRITE" : "FAIL"; return new listr2_1.Listr([ { title: "Install Defer packages ...", task: () => { execa_1.default.commandSync("yarn workspace api add @defer/client", process.env["RWJS_CWD"] ? { cwd: process.env["RWJS_CWD"], } : {}); }, }, { title: "Adding config to redwood.toml...", task: () => { (0, exports.updateTomlConfig)(); }, }, { title: "Configure Defer client ...", task: () => { (0, exports.configureDeferClient)({ commandPaths, existingFiles }); }, }, { title: "Add Defer helloWorld function example ...", task: () => { (0, exports.addDeferHelloWorldExampleTask)({ commandPaths, existingFiles }); }, }, ], { rendererOptions: {} }); }; exports.tasks = tasks; const addDeferHelloWorldExampleTask = ({ commandPaths, existingFiles, }) => { // save example Defer function in the defer folder fs_extra_1.default.ensureDirSync(commandPaths["SRC_DEFER_PATH"]); const deferHelloWorldTemplate = fs_extra_1.default.readFileSync(path_1.default.resolve(__dirname, "..", "..", "templates", "plugin", "helloWorld.ts.template"), "utf-8"); return (0, cli_helpers_1.writeFile)(path_1.default.join(commandPaths["SRC_DEFER_PATH"], "helloWorld.ts"), deferHelloWorldTemplate, { existingFiles, }); }; exports.addDeferHelloWorldExampleTask = addDeferHelloWorldExampleTask; const configureDeferClient = ({ commandPaths, existingFiles, }) => { const deferHelloWorldTemplate = fs_extra_1.default.readFileSync(path_1.default.resolve(__dirname, "..", "..", "templates", "plugin", "client.ts.template"), "utf-8"); return (0, cli_helpers_1.writeFile)(commandPaths["SRC_DEFER_CLIENT_PATH_FILE"], deferHelloWorldTemplate, { existingFiles, }); }; exports.configureDeferClient = configureDeferClient; const tomlString = ` [experimental.cli] autoInstall = false [[experimental.cli.plugins]] package = "@defer/redwood"`; const updateTomlConfig = () => { const redwoodTomlPath = (0, project_config_1.getConfigPath)(); const configContent = fs_extra_1.default.readFileSync(redwoodTomlPath, "utf-8"); if (!configContent.includes("@defer/redwood")) { (0, cli_helpers_1.writeFile)(redwoodTomlPath, configContent.concat(tomlString), { existingFiles: "OVERWRITE", }); } }; exports.updateTomlConfig = updateTomlConfig;