Skip to content

Commit a454a17

Browse files
Merge pull request #20 from christophersmith262/feature/DC-909-do-not-set-version-by-default
DC-909: Do not set version by default
2 parents 6c87073 + 5cb8d44 commit a454a17

8 files changed

Lines changed: 50 additions & 21 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ module.exports = {
172172
file.content['external'] = {
173173
remote: 'https://external-library.js',
174174
}
175-
return DupalLibrariesPlugin.defaults.prepareFile(file, compiler, compilation)
175+
return DrupalLibrariesPlugin.defaults.prepareFile(file, compiler, compilation)
176176
},
177177
})
178178
],

lib/DrupalLibraryEntryGenerator.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ module.exports = class LibraryEntryGenerator {
1717
const promises = [], library = {}
1818

1919
promises.push(this.versionGenerator(metadata).then(version => {
20-
library['version'] = version
20+
if (version) {
21+
library['version'] = version
22+
}
2123
}))
2224

2325
if (metadata.hasItems('css')) {
@@ -39,17 +41,18 @@ module.exports = class LibraryEntryGenerator {
3941
}
4042

4143
await Promise.all(promises)
42-
44+
4345
return library
4446
}
4547

4648
/**
47-
* Generates the version entry for a Drupal library entry.
49+
* Generate a version for a Drupal library entry. Does nothing by default.
50+
* Use `libraryEntryGenerator` option to set a version number.
4851
*
4952
* @param {DrupalLibraryMetadata} metadata
5053
*/
5154
async versionGenerator(metadata) {
52-
return '1.x'
55+
return false
5356
}
5457

5558

test/async-split.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ test('Tracks a shared synchronous webpack split', async () => {
1616
})).result
1717

1818
expect(result).toEqual({
19-
imports1: { version: '1.x', js: { 'imports1.js': {} } },
20-
imports2: { version: '1.x', js: { 'imports2.js': {} } },
19+
imports1: { js: { 'imports1.js': {} } },
20+
imports2: { js: { 'imports2.js': {} } },
2121
})
2222
})

test/basic.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ test('Tracks a single entrypoint', async () => {
99
})).result
1010

1111
await expect(result).toEqual({
12-
a: { version: '1.x', js: { 'a.js': {} } },
12+
a: { js: { 'a.js': {} } },
1313
})
1414
})
1515

@@ -22,7 +22,7 @@ test('Tracks a multiple entrypoints', async () => {
2222
})).result
2323

2424
await expect(result).toEqual({
25-
a: { version: '1.x', js: { 'a.js': {} } },
26-
b: { version: '1.x', js: { 'b.js': {} } },
25+
a: { js: { 'a.js': {} } },
26+
b: { js: { 'b.js': {} } },
2727
})
2828
})

test/css.test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ test('Adds css assets to libraries', async () => {
2828

2929
expect(result).toEqual({
3030
'css-include': {
31-
version: '1.x',
3231
css: { theme: { 'css-include.css': {} } },
3332
js: { 'css-include.js': {} },
3433
},

test/library-dependency.test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ test('Generates a library entry for @drupal(core/drupal)', async () => {
1313

1414
expect(result).toEqual({
1515
'require-drupal': {
16-
version: '1.x',
1716
js: { 'require-drupal.js': {} },
1817
dependencies: [ 'drupal/core' ],
1918
},
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const path = require('path'),
2+
runWebpack = require('./lib/webpack-wrapper'),
3+
{ DrupalLibraryEntryGenerator } = require('../')
4+
5+
class StaticVersionLibraryGenerator extends DrupalLibraryEntryGenerator {
6+
constructor(version) {
7+
super();
8+
this.version = version
9+
}
10+
11+
async versionGenerator(metadata) {
12+
return this.version
13+
}
14+
}
15+
16+
test('Extend the default library entry with a version number', async () => {
17+
const result = (await runWebpack({
18+
entry: {
19+
'a': path.resolve(__dirname, './fixtures/a.es6.js'),
20+
},
21+
}, {
22+
libraryEntryGenerator: new StaticVersionLibraryGenerator('2.0'),
23+
})).result
24+
25+
await expect(result).toEqual({
26+
a: { version: '2.0', js: { 'a.js': {} } },
27+
})
28+
})

test/sync-split.test.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ test('Tracks a shared synchronous webpack split', async () => {
2222
})).result
2323

2424
expect(result).toEqual({
25-
requires1: { version: '1.x', js: { 'requires1.js': {} }, dependencies: ['commons'] },
26-
requires2: { version: '1.x', js: { 'requires2.js': {} }, dependencies: ['commons'] },
27-
commons: { version: '1.x', js: { 'commons.js': {} } },
25+
requires1: { js: { 'requires1.js': {} }, dependencies: ['commons'] },
26+
requires2: { js: { 'requires2.js': {} }, dependencies: ['commons'] },
27+
commons: { js: { 'commons.js': {} } },
2828
})
2929
})
3030

@@ -49,9 +49,9 @@ test('Tracks a shared synchronous webpack split using importfrom', async () => {
4949
})).result
5050

5151
expect(result).toEqual({
52-
importsfrom1: { version: '1.x', js: { 'importsfrom1.js': {} }, dependencies: ['commons'] },
53-
importsfrom2: { version: '1.x', js: { 'importsfrom2.js': {} }, dependencies: ['commons'] },
54-
commons: { version: '1.x', js: { 'commons.js': {} } },
52+
importsfrom1: { js: { 'importsfrom1.js': {} }, dependencies: ['commons'] },
53+
importsfrom2: { js: { 'importsfrom2.js': {} }, dependencies: ['commons'] },
54+
commons: { js: { 'commons.js': {} } },
5555
})
5656
})
5757

@@ -67,8 +67,8 @@ test('Tracks a shared runtime chunk', async () => {
6767
})).result
6868

6969
expect(result).toEqual({
70-
a: { version: '1.x', js: { 'a.js': {} }, dependencies: ['runtime'] },
71-
b: { version: '1.x', js: { 'b.js': {} }, dependencies: ['runtime'] },
72-
runtime: { version: '1.x', js: { 'runtime.js': {} } }
70+
a: { js: { 'a.js': {} }, dependencies: ['runtime'] },
71+
b: { js: { 'b.js': {} }, dependencies: ['runtime'] },
72+
runtime: { js: { 'runtime.js': {} } }
7373
})
7474
})

0 commit comments

Comments
 (0)