mirror of
https://github.com/shoelace-style/webawesome.git
synced 2026-01-12 12:09:26 +00:00
* continued ssr work * continued ssr work * prettier * all components now rendering * everything finally works * fix type issues * working on breadcrumb * working on breadcrumb * radio group * convert all tests to ssr * prettier * test suite finally passing * add layout stuff * add changelog * fix TS issue * fix tests * fixing deploy stuff * get QR code displaying * fix tests * fix tests * prettier * condense hydration stuff * prettier * comment out range test * fixing issues * use base fixtures * fixing examples * dont vendor * fix import of hydration support * adding notes * add notesg * add ssr loader * fix build * prettier * add notes * add notes * prettier * fixing bundled stuff * remove cdn * remove cdn * prettier * fiixng tests * prettier * split jobs?? * prettier * fix build stuff * add reset mouse and await aTimeout * prettier * fix improper tests * prettier * bail on first * fix linting * only test form with client * redundancy on ssr-loader?? * maybe this will work * prettier * try callout now * fix form.test.ts * fix form.test.ts * prettier * fix forms * fix forms * try again * prettier * add some awaits * prettier * comment out broken SSR tests * prettier * comment out broken SSR tests * prettier * dont skip in CI * upgrade playwright to beta * prettier * try some trickery * try some trickery * await updateComplete * try to fix form.test.ts * import hydrateable elements 1 time * prettier * fix input defaultValue issues * fix form controls to behave like their native counterpartS * add changelog entry * prettier * fix unexpected behavior with range / button
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
import { dirname, join } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import childProcess from 'child_process';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
// Helpful directories
|
|
export const rootDir = dirname(__dirname);
|
|
export const distDir = join(rootDir, 'dist');
|
|
export const cdnDir = join(rootDir, 'dist-cdn');
|
|
export const docsDir = join(rootDir, 'docs');
|
|
export const siteDir = join(rootDir, '_site');
|
|
|
|
/**
|
|
* Runs a script and returns a promise that resolves with the content of stdout when the script exits or rejects with
|
|
* the content of stderr when the script exits with an error.
|
|
*/
|
|
export function runScript(scriptPath, args = []) {
|
|
return new Promise((resolve, reject) => {
|
|
const child = childProcess.fork(scriptPath, args, { silent: true });
|
|
let wasInvoked = false;
|
|
let stderr = '';
|
|
let stdout = '';
|
|
|
|
child.on('error', err => {
|
|
if (wasInvoked) {
|
|
return;
|
|
}
|
|
|
|
wasInvoked = true;
|
|
|
|
reject(err);
|
|
});
|
|
|
|
// Capture output
|
|
child.stderr.on('data', data => (stderr += data));
|
|
child.stdout.on('data', data => (stdout += data));
|
|
|
|
// execute the callback once the process has finished running
|
|
child.on('exit', code => {
|
|
if (wasInvoked) {
|
|
return;
|
|
}
|
|
|
|
wasInvoked = true;
|
|
|
|
if (code === 0) {
|
|
// The process exited normally
|
|
resolve(stdout.trim());
|
|
} else {
|
|
// An error code was received
|
|
reject(new Error(stderr));
|
|
}
|
|
|
|
child.unref();
|
|
});
|
|
});
|
|
}
|