angular/aio/tools/transforms/config.js
Derek Cormier 320f521a8c build(bazel): fix regressions for docs-watch
Some earlier refactoring prevented the watchr script from running in
the source tree. There was also a Windows issue where running architect
didn't preserve symlinks causing the app to not be served.
2022-11-22 13:51:16 -07:00

29 lines
1.5 KiB
JavaScript

const { resolve } = require('path');
const { readdirSync } = require('fs');
// If the output path isn't set, we are in a test so output a temporary
// directory (TEST_TMPDIR) that bazel provides for tests.
const BAZEL_OUTPUT_PATH = process.env.BAZEL_DGENI_OUTPUT_PATH || process.env.TEST_TMPDIR;
// During a build the project root resolves to the execroot. During docs-watch,
// we set the project root to the root of the source tree so that we can watch
// changes to docs files.
const PROJECT_ROOT = process.env.BUILD_WORKSPACE_DIRECTORY || resolve('.');
const AIO_PATH = resolve(PROJECT_ROOT, 'aio');
const TEMPLATES_PATH = resolve(AIO_PATH, 'tools/transforms/templates');
const API_TEMPLATES_PATH = resolve(TEMPLATES_PATH, 'api');
const CONTENTS_PATH = resolve(AIO_PATH, 'content');
const GUIDE_EXAMPLES_PATH = resolve(CONTENTS_PATH, 'examples');
const SRC_PATH = resolve(AIO_PATH, 'src');
const OUTPUT_PATH = resolve(BAZEL_OUTPUT_PATH, 'generated');
const DOCS_OUTPUT_PATH = resolve(OUTPUT_PATH, 'docs');
const API_SOURCE_PATH = resolve(PROJECT_ROOT, 'packages');
function requireFolder(dirname, folderPath) {
const absolutePath = resolve(dirname, folderPath);
return readdirSync(absolutePath)
.filter(p => !/[._]spec\.js$/.test(p)) // ignore spec files
.map(p => require(resolve(absolutePath, p)));
}
module.exports = { BAZEL_OUTPUT_PATH, PROJECT_ROOT, AIO_PATH, TEMPLATES_PATH, API_TEMPLATES_PATH, CONTENTS_PATH, GUIDE_EXAMPLES_PATH, SRC_PATH, OUTPUT_PATH, DOCS_OUTPUT_PATH, API_SOURCE_PATH, requireFolder };