diff options
author | 2021-03-19 17:07:45 -0400 | |
---|---|---|
committer | 2021-03-19 17:07:45 -0400 | |
commit | 17c3c98f07628b43b941b84831e8e1f9bcd7ca46 (patch) | |
tree | 2e2b3c7d6bd67ebaabe6636ae6867ad368ac6c3a /src/config.ts | |
parent | 8ebc077cb0d9f50aae22d2651bd5ef13fe4641d3 (diff) | |
download | astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.gz astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.zst astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.zip |
Initial tests set up (#10)
* Begin debugging
* Initial tests set up
This adds tests using uvu (we can switch if people want) and restructures things a bit so that it's easier to test.
Like in snowpack you set up a little project. In our tests you can say:
```js
const result = await runtime.load('/blog/hello-world')
```
And analyze the result. I included a `test-helpers.js` which has a function that will turn HTML into a cheerio instance, for inspecting the result HTML.
* Add CI
* Remove extra console logs
* Formatting
Diffstat (limited to 'src/config.ts')
-rw-r--r-- | src/config.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 000000000..da58b7a03 --- /dev/null +++ b/src/config.ts @@ -0,0 +1,22 @@ +import type { AstroConfig } from './@types/astro'; +import { join as pathJoin, resolve as pathResolve } from 'path'; +import { existsSync } from 'fs'; + +export async function loadConfig(rawRoot: string | undefined): Promise<AstroConfig | undefined> { + if (typeof rawRoot === 'undefined') { + rawRoot = process.cwd(); + } + + const root = pathResolve(rawRoot); + const fileProtocolRoot = `file://${root}/`; + const astroConfigPath = pathJoin(root, 'astro.config.mjs'); + + if (!existsSync(astroConfigPath)) { + return undefined; + } + + const astroConfig: AstroConfig = (await import(astroConfigPath)).default; + astroConfig.projectRoot = new URL(astroConfig.projectRoot + '/', fileProtocolRoot); + astroConfig.hmxRoot = new URL(astroConfig.hmxRoot + '/', fileProtocolRoot); + return astroConfig; +} |