Skip to content

Commit dbda3b7

Browse files
authored
fix: metafiles copying (#60)
1 parent 083db02 commit dbda3b7

File tree

3 files changed

+48
-4
lines changed

3 files changed

+48
-4
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"scripts": {
2020
"pretest": "npm run lint",
21-
"test": "cross-env NODE_DEBUG=chokidar:ts c8 npm run vscode:test",
21+
"test": "cross-env NODE_DEBUG=chokidar:ts c8 npm run quick:test",
2222
"lint": "eslint . --ext=.ts",
2323
"clean": "del-cli build",
2424
"typecheck": "tsc --noEmit",
@@ -29,7 +29,7 @@
2929
"sync-labels": "github-label-sync --labels .github/labels.json adonisjs/assembler",
3030
"format": "prettier --write .",
3131
"prepublishOnly": "npm run build",
32-
"vscode:test": "node --loader=ts-node/esm bin/test.ts"
32+
"quick:test": "node --loader=ts-node/esm bin/test.ts"
3333
},
3434
"keywords": [
3535
"adonisjs",
@@ -66,7 +66,7 @@
6666
"@adonisjs/env": "^4.2.0-3",
6767
"@poppinss/chokidar-ts": "^4.1.0-4",
6868
"@poppinss/cliui": "^6.1.1-3",
69-
"cpy": "^10.1.0",
69+
"cpy": "^8.1.2",
7070
"execa": "^7.0.0",
7171
"get-port": "^7.0.0",
7272
"picomatch": "^2.3.1",

src/bundler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export class Bundler {
101101
*/
102102
async #copyFiles(files: string[], outDir: string) {
103103
try {
104-
await copyfiles(files, outDir, { cwd: this.#cwdPath })
104+
await copyfiles(files, outDir, { parents: true, cwd: this.#cwdPath })
105105
} catch (error) {
106106
if (!error.message.includes("the file doesn't exist")) {
107107
throw error

tests/bundler.spec.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { test } from '@japa/runner'
2+
import { Bundler } from '../index.js'
3+
import ts from 'typescript'
4+
5+
test.group('Bundler', () => {
6+
test('should copy metafiles to the build directory', async ({ assert, fs }) => {
7+
await Promise.all([
8+
fs.create(
9+
'tsconfig.json',
10+
JSON.stringify({ compilerOptions: { outDir: 'build', skipLibCheck: true } })
11+
),
12+
fs.create('.adonisrc.json', '{}'),
13+
fs.create('package.json', '{}'),
14+
fs.create('package-lock.json', '{}'),
15+
16+
fs.create('resources/js/app.ts', ''),
17+
fs.create('resources/views/app.edge', ''),
18+
fs.create('resources/views/foo.edge', ''),
19+
fs.create('resources/views/nested/bar.edge', ''),
20+
fs.create('resources/views/nested/baz.edge', ''),
21+
])
22+
23+
const bundler = new Bundler(fs.baseUrl, ts, {
24+
metaFiles: [
25+
{
26+
pattern: 'resources/views/**/*.edge',
27+
reloadServer: false,
28+
},
29+
],
30+
})
31+
32+
await bundler.bundle(true, 'npm')
33+
34+
await Promise.all([
35+
assert.fileExists('./build/resources/views/app.edge'),
36+
assert.fileExists('./build/resources/views/foo.edge'),
37+
assert.fileExists('./build/resources/views/nested/bar.edge'),
38+
assert.fileExists('./build/resources/views/nested/baz.edge'),
39+
assert.fileExists('./build/.adonisrc.json'),
40+
assert.fileExists('./build/package.json'),
41+
assert.fileExists('./build/package-lock.json'),
42+
])
43+
})
44+
})

0 commit comments

Comments
 (0)