import * as child_process from "child_process"; import { transformCodebase } from "../src/bin/tools/transformCodebase"; import { join as pathJoin, sep as pathSep } from "path"; import { assert } from "tsafe/assert"; run("yarn build"); run("npx build-storybook"); const storybookStaticDirPath = "storybook-static"; { let hasPatched = false; transformCodebase({ srcDirPath: storybookStaticDirPath, destDirPath: storybookStaticDirPath, transformSourceCode: ({ fileRelativePath, sourceCode }) => { replace_dot_keycloakify: { if (fileRelativePath.includes(pathSep)) { break replace_dot_keycloakify; } if (!fileRelativePath.endsWith(".js")) { break replace_dot_keycloakify; } const search = `DOT_KEYCLOAKIFY:".keycloakify"`; if (!sourceCode.includes(search)) { break replace_dot_keycloakify; } hasPatched = true; return { modifiedSourceCode: Buffer.from( sourceCode .toString("utf8") .replace(search, `DOT_KEYCLOAKIFY:"dot_keycloakify"`), "utf8" ) }; } return { modifiedSourceCode: sourceCode }; } }); assert(hasPatched); } transformCodebase({ srcDirPath: pathJoin(storybookStaticDirPath, ".keycloakify"), destDirPath: pathJoin(storybookStaticDirPath, "dot_keycloakify") }); function run(command: string, options?: { env?: NodeJS.ProcessEnv }) { console.log(`$ ${command}`); child_process.execSync(command, { stdio: "inherit", ...options }); }