import { promises as fs, readFileSync } from 'fs'; import { posix } from 'path'; import arg from 'arg'; import glob from 'globby'; import tar from 'tar'; const { resolve, dirname, sep, join } = posix; /** @type {import('arg').Spec} */ const spec = { '--tgz': Boolean, }; export default async function copy() { let { _: patterns, ['--tgz']: isCompress } = arg(spec); patterns = patterns.slice(1); if (isCompress) { const files = await glob(patterns, { gitignore: true }); const rootDir = resolveRootDir(files); const destDir = rootDir.replace(/^[^/]+/, 'dist'); const templates = files.reduce((acc, curr) => { const name = curr.replace(rootDir, '').slice(1).split(sep)[0]; if (acc[name]) { acc[name].push(resolve(curr)); } else { acc[name] = [resolve(curr)]; } return acc; }, {}); let meta = {}; return Promise.all( Object.entries(templates).map(([template, files]) => { const cwd = resolve(join(rootDir, template)); const dest = join(destDir, `${template}.tgz`); const metafile = files.find((f) => f.endsWith('meta.json')); if (metafile) { files = files.filter((f) => f !== metafile); meta[template] = JSON.parse(readFileSync(metafile).toString()); } return fs.mkdir(dirname(dest), { recursive: true }).then(() => tar.create( { gzip: true, portable: true, file: dest, cwd, }, files.map((f) => f.replace(cwd, '').slice(1)) ) ); }) ).then(() => { if (Object.keys(meta).length > 0) { return fs.writeFile(resolve(destDir, 'meta.json'), JSON.stringify(meta, null, 2)); } }); } const files = await glob(patterns); await Promise.all( files.map((file) => { const dest = resolve(file.replace(/^[^/]+/, 'dist')); return fs.mkdir(dirname(dest), { recursive: true }).then(() => fs.copyFile(resolve(file), dest)); }) ); } function resolveRootDir(files) { return files .reduce((acc, curr) => { const currParts = curr.split(sep); if (acc.length === 0) return currParts; const result = []; currParts.forEach((part, i) => { if (acc[i] === part) result.push(part); }); return result; }, []) .join(sep); } w-release-teest'>ci/preview-release-teest Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/examples/framework-multiple/.stackblitzrc (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2021-11-19[ci] yarn formatGravatar matthewp 1-1/+1
2021-11-19Fix blog example (#1910)Gravatar Matthew Phillips 1-1/+1
2021-11-19Version Packages (next) (#1907)astro@0.21.0-next.10Gravatar github-actions[bot] 23-21/+28
2021-11-19Remove further dependence on vite package (#1906)Gravatar Matthew Phillips 3-5/+9
2021-11-19Version Packages (next) (#1904)astro@0.21.0-next.9Gravatar github-actions[bot] 23-21/+30
2021-11-19Remove OSX \x00 workaround (#1901)Gravatar Matthew Phillips 2-5/+5
2021-11-19Resolve vite client modules to vendored vite (#1903)Gravatar Matthew Phillips 2-2/+7
2021-11-19[ci] yarn formatGravatar matthewp 1-3/+3
2021-11-19Add Debug tests (#1882)Gravatar Matthew Phillips 4-0/+62
2021-11-19[ci] collect statsGravatar FredKSchott 1-0/+1
2021-11-19Version Packages (next) (#1881)astro@0.21.0-next.8@astrojs/renderer-vue@0.2.0-next.2Gravatar github-actions[bot] 25-23/+42
2021-11-18Improve HMR (#1896)Gravatar Drew Powers 2-10/+18
2021-11-18update depsGravatar Fred K. Schott 5-352/+65
2021-11-18fix #1778Gravatar Fred K. Schott 2-1/+8
2021-11-18Update compiler (#1869)Gravatar Nate Moore 3-11/+6
2021-11-18remove unused remark dependency (#1894)Gravatar Fred K. Schott 2-245/+13
2021-11-18Improve error messages (#1875)Gravatar Drew Powers 39-61/+448
2021-11-18pin astro compiler to older versionGravatar Fred K. Schott 2-5/+5
2021-11-18Update yarn.lock to reflect the state of the package.json files (#1892)Gravatar Jonathan Neal 5-1300/+1000
2021-11-19[ci] yarn formatGravatar FredKSchott 1-5/+3