From d5c78b1cc93f81e4ce2fd277be1ffce6643959d9 Mon Sep 17 00:00:00 2001 From: Julien Date: Thu, 8 Jun 2023 18:44:13 +0200 Subject: [PATCH 1/2] fix: metafiles copying --- package.json | 6 +++--- src/bundler.ts | 2 +- tests/bundler.spec.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 tests/bundler.spec.ts diff --git a/package.json b/package.json index 424b1fe6..c3900dd6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "scripts": { "pretest": "npm run lint", - "test": "cross-env NODE_DEBUG=chokidar:ts c8 npm run vscode:test", + "test": "cross-env NODE_DEBUG=chokidar:ts c8 npm run quick:test", "lint": "eslint . --ext=.ts", "clean": "del-cli build", "compile": "npm run lint && npm run clean && tsc", @@ -28,7 +28,7 @@ "sync-labels": "github-label-sync --labels .github/labels.json adonisjs/assembler", "format": "prettier --write .", "prepublishOnly": "npm run build", - "vscode:test": "node --loader=ts-node/esm bin/test.ts" + "quick:test": "node --loader=ts-node/esm bin/test.ts" }, "keywords": [ "adonisjs", @@ -67,7 +67,7 @@ "@poppinss/chokidar-ts": "^4.1.0-3", "@poppinss/cliui": "^6.1.1-2", "@types/picomatch": "^2.3.0", - "cpy": "^9.0.1", + "cpy": "^8.1.2", "execa": "^7.0.0", "get-port": "^6.1.2", "picomatch": "^2.3.1", diff --git a/src/bundler.ts b/src/bundler.ts index a4116e98..30abad1f 100644 --- a/src/bundler.ts +++ b/src/bundler.ts @@ -101,7 +101,7 @@ export class Bundler { */ async #copyFiles(files: string[], outDir: string) { try { - await copyfiles(files, outDir, { cwd: this.#cwdPath }) + await copyfiles(files, outDir, { parents: true, cwd: this.#cwdPath }) } catch (error) { if (!error.message.includes("the file doesn't exist")) { throw error diff --git a/tests/bundler.spec.ts b/tests/bundler.spec.ts new file mode 100644 index 00000000..4fd1a05c --- /dev/null +++ b/tests/bundler.spec.ts @@ -0,0 +1,41 @@ +import { test } from '@japa/runner' +import { Bundler } from '../index.js' +import ts from 'typescript' + +test.group('Bundler', () => { + test('should copy metafiles to the build directory', async ({ assert, fs }) => { + await Promise.all([ + fs.create('tsconfig.json', JSON.stringify({ compilerOptions: { outDir: 'build' } })), + fs.create('.adonisrc.json', '{}'), + fs.create('package.json', '{}'), + fs.create('package-lock.json', '{}'), + + fs.create('resources/js/app.ts', ''), + fs.create('resources/views/app.edge', ''), + fs.create('resources/views/foo.edge', ''), + fs.create('resources/views/nested/bar.edge', ''), + fs.create('resources/views/nested/baz.edge', ''), + ]) + + const bundler = new Bundler(fs.baseUrl, ts, { + metaFiles: [ + { + pattern: 'resources/views/**/*.edge', + reloadServer: false, + }, + ], + }) + + await bundler.bundle(true, 'npm') + + await Promise.all([ + assert.fileExists('./build/resources/views/app.edge'), + assert.fileExists('./build/resources/views/foo.edge'), + assert.fileExists('./build/resources/views/nested/bar.edge'), + assert.fileExists('./build/resources/views/nested/baz.edge'), + assert.fileExists('./build/.adonisrc.json'), + assert.fileExists('./build/package.json'), + assert.fileExists('./build/package-lock.json'), + ]) + }) +}) From 510882f871e891bb2c86ef4217e82a7d99a5e4a7 Mon Sep 17 00:00:00 2001 From: Julien Date: Thu, 8 Jun 2023 18:54:10 +0200 Subject: [PATCH 2/2] fix: add skipLibCheck in test --- tests/bundler.spec.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/bundler.spec.ts b/tests/bundler.spec.ts index 4fd1a05c..928b8366 100644 --- a/tests/bundler.spec.ts +++ b/tests/bundler.spec.ts @@ -5,7 +5,10 @@ import ts from 'typescript' test.group('Bundler', () => { test('should copy metafiles to the build directory', async ({ assert, fs }) => { await Promise.all([ - fs.create('tsconfig.json', JSON.stringify({ compilerOptions: { outDir: 'build' } })), + fs.create( + 'tsconfig.json', + JSON.stringify({ compilerOptions: { outDir: 'build', skipLibCheck: true } }) + ), fs.create('.adonisrc.json', '{}'), fs.create('package.json', '{}'), fs.create('package-lock.json', '{}'),