@rollup-extras/plugin-html 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +24 -31
- package/dist/index.mjs +12 -12
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -7,13 +7,6 @@ var options = require('@rollup-extras/utils/options');
|
|
|
7
7
|
var logger = require('@rollup-extras/utils/logger');
|
|
8
8
|
var mutliConfigPluginBase = require('@rollup-extras/utils/mutli-config-plugin-base');
|
|
9
9
|
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
13
|
-
var oldStyleFs__default = /*#__PURE__*/_interopDefaultLegacy(oldStyleFs);
|
|
14
|
-
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
15
|
-
var logger__default = /*#__PURE__*/_interopDefaultLegacy(logger);
|
|
16
|
-
|
|
17
10
|
const defaultTemplate = '<!DOCTYPE html><html><head></head><body></body></html>';
|
|
18
11
|
const headClosingElement = '</head>';
|
|
19
12
|
const bodyClosingElement = '</body>';
|
|
@@ -28,9 +21,9 @@ const defaults = {
|
|
|
28
21
|
ignore: toAssetPredicate(false),
|
|
29
22
|
templateFactory: ((template, assets, defaultTemplateFactory) => defaultTemplateFactory(template, assets))
|
|
30
23
|
};
|
|
31
|
-
const factories = { logger
|
|
24
|
+
const factories = { logger, injectIntoHead: predicateFactory, ignore: predicateFactory };
|
|
32
25
|
function index (options$1 = {}) {
|
|
33
|
-
const { pluginName, outputFile, template, watch, emitFile, conditionalLoading, logger, useWriteBundle, logLevel, useEmittedTemplate, injectIntoHead, ignore, assetsFactory, templateFactory } = options.getOptionsObject(options$1, Object.assign(Object.assign({}, defaults), { useEmittedTemplate: !('template' in options$1), logLevel: options$1.verbose ? 1 /* info */ : 0 /* verbose */ }), factories), hasCustomTemplateFactory = 'templateFactory' in options$1;
|
|
26
|
+
const { pluginName, outputFile, template, watch, emitFile, conditionalLoading, logger, useWriteBundle, logLevel, useEmittedTemplate, injectIntoHead, ignore, assetsFactory, templateFactory } = options.getOptionsObject(options$1, Object.assign(Object.assign({}, defaults), { useEmittedTemplate: !('template' in options$1), logLevel: options$1.verbose ? 1 /* LogLevel.info */ : 0 /* LogLevel.verbose */ }), factories), hasCustomTemplateFactory = 'templateFactory' in options$1;
|
|
34
27
|
let templateString = defaultTemplate, hasTemplateFile = false;
|
|
35
28
|
if (template) {
|
|
36
29
|
if (isUsableByDefaultTemplateFactory(template)) {
|
|
@@ -40,7 +33,7 @@ function index (options$1 = {}) {
|
|
|
40
33
|
if (watch) {
|
|
41
34
|
try {
|
|
42
35
|
// using sync fs call because we need to return plugin object immidiately
|
|
43
|
-
useNewTemplate(
|
|
36
|
+
useNewTemplate(oldStyleFs.readFileSync(template, { encoding: 'utf8' }));
|
|
44
37
|
hasTemplateFile = true;
|
|
45
38
|
}
|
|
46
39
|
catch (e) {
|
|
@@ -49,7 +42,7 @@ function index (options$1 = {}) {
|
|
|
49
42
|
}
|
|
50
43
|
else {
|
|
51
44
|
templateString = new Promise(resolve => {
|
|
52
|
-
|
|
45
|
+
fs.readFile(template, { encoding: 'utf8' })
|
|
53
46
|
.then((newTemplateString) => {
|
|
54
47
|
if (!isUsableByDefaultTemplateFactory(newTemplateString) && !hasCustomTemplateFactory) {
|
|
55
48
|
warnAboutUsingDefaultTemplate();
|
|
@@ -70,9 +63,9 @@ function index (options$1 = {}) {
|
|
|
70
63
|
const baseRenderStart = instance.renderStart;
|
|
71
64
|
const baseAddInstance = instance.api.addInstance;
|
|
72
65
|
instance.renderStart = function (outputOptions, inputOptions) {
|
|
73
|
-
logger('started collecting information', 0 /* verbose */);
|
|
66
|
+
logger('started collecting information', 0 /* LogLevel.verbose */);
|
|
74
67
|
initialDir = outputOptions.dir || '';
|
|
75
|
-
fileNameInInitialDir =
|
|
68
|
+
fileNameInInitialDir = path.join(initialDir, outputFile);
|
|
76
69
|
return baseRenderStart.call(this, outputOptions, inputOptions);
|
|
77
70
|
};
|
|
78
71
|
instance.api.addInstance = () => {
|
|
@@ -85,7 +78,7 @@ function index (options$1 = {}) {
|
|
|
85
78
|
if (hasTemplateFile && watch) {
|
|
86
79
|
instance.buildStart = async function () {
|
|
87
80
|
try {
|
|
88
|
-
useNewTemplate(await
|
|
81
|
+
useNewTemplate(await fs.readFile(template, { encoding: 'utf8' }));
|
|
89
82
|
}
|
|
90
83
|
catch (e) {
|
|
91
84
|
handleTemplateReadError(e);
|
|
@@ -101,16 +94,16 @@ function index (options$1 = {}) {
|
|
|
101
94
|
.filter(item => item.count)
|
|
102
95
|
.map(({ key, count }) => `${key}: ${count}`)
|
|
103
96
|
.join(', ');
|
|
104
|
-
logger(`assets collected: [${statistics}], remaining: ${remainingOutputsCount} outputs, ${remainingConfigsCount} configs`, 0 /* verbose */);
|
|
105
|
-
const dir = options.dir || '', fileName =
|
|
97
|
+
logger(`assets collected: [${statistics}], remaining: ${remainingOutputsCount} outputs, ${remainingConfigsCount} configs`, 0 /* LogLevel.verbose */);
|
|
98
|
+
const dir = options.dir || '', fileName = path.relative(dir, fileNameInInitialDir);
|
|
106
99
|
if (fileName in bundle) {
|
|
107
100
|
if (useEmittedTemplate) {
|
|
108
|
-
logger(`using exiting emitted ${fileName} as an input for out templateFactory`, 0 /* verbose */);
|
|
101
|
+
logger(`using exiting emitted ${fileName} as an input for out templateFactory`, 0 /* LogLevel.verbose */);
|
|
109
102
|
const source = bundle[fileName].type === 'asset' ? bundle[fileName].source.toString() : bundle[fileName].code;
|
|
110
103
|
useNewTemplate(source);
|
|
111
104
|
}
|
|
112
105
|
else {
|
|
113
|
-
logger(`removing exiting emitted ${fileName}`, 0 /* verbose */);
|
|
106
|
+
logger(`removing exiting emitted ${fileName}`, 0 /* LogLevel.verbose */);
|
|
114
107
|
}
|
|
115
108
|
if (remainingConfigsCount === 0 && emitFile && !useWriteBundle) {
|
|
116
109
|
delete bundle[fileName];
|
|
@@ -135,14 +128,14 @@ function index (options$1 = {}) {
|
|
|
135
128
|
}
|
|
136
129
|
function handleTemplateReadError(e) {
|
|
137
130
|
if ((e === null || e === void 0 ? void 0 : e.code) === 'ENOENT') {
|
|
138
|
-
logger('template nor a file or string', 2 /* warn */, e);
|
|
131
|
+
logger('template nor a file or string', 2 /* LogLevel.warn */, e);
|
|
139
132
|
}
|
|
140
133
|
else {
|
|
141
|
-
logger('error reading template', 2 /* warn */, e);
|
|
134
|
+
logger('error reading template', 2 /* LogLevel.warn */, e);
|
|
142
135
|
}
|
|
143
136
|
}
|
|
144
137
|
function warnAboutUsingDefaultTemplate() {
|
|
145
|
-
logger('template is unusable by default template factory, using default one', 2 /* warn */);
|
|
138
|
+
logger('template is unusable by default template factory, using default one', 2 /* LogLevel.warn */);
|
|
146
139
|
}
|
|
147
140
|
async function buildStart() {
|
|
148
141
|
this.addWatchFile(template);
|
|
@@ -150,14 +143,14 @@ function index (options$1 = {}) {
|
|
|
150
143
|
async function generateBundle(options) {
|
|
151
144
|
logger.start('generating html', logLevel);
|
|
152
145
|
try {
|
|
153
|
-
const dir = options.dir || '', fileName =
|
|
146
|
+
const dir = options.dir || '', fileName = path.relative(dir, fileNameInInitialDir);
|
|
154
147
|
const depromisifiedTemplateString = await templateString, source = await templateFactory(depromisifiedTemplateString, assets, defaultTemplateFactory);
|
|
155
148
|
if (!emitFile || fileName.startsWith('..') || useWriteBundle) {
|
|
156
149
|
if (emitFile && emitFile !== 'auto') {
|
|
157
|
-
logger('cannot emitFile because it is outside of current output.dir, using writeFile instead', 0 /* verbose */);
|
|
150
|
+
logger('cannot emitFile because it is outside of current output.dir, using writeFile instead', 0 /* LogLevel.verbose */);
|
|
158
151
|
}
|
|
159
|
-
await
|
|
160
|
-
await
|
|
152
|
+
await fs.mkdir(path.dirname(fileNameInInitialDir), { recursive: true });
|
|
153
|
+
await fs.writeFile(fileNameInInitialDir, source);
|
|
161
154
|
}
|
|
162
155
|
else {
|
|
163
156
|
this.emitFile({
|
|
@@ -172,13 +165,13 @@ function index (options$1 = {}) {
|
|
|
172
165
|
logger.finish('html file generated');
|
|
173
166
|
}
|
|
174
167
|
catch (e) {
|
|
175
|
-
logger.finish('html generation failed', 3 /* error */, e);
|
|
168
|
+
logger.finish('html generation failed', 3 /* LogLevel.error */, e);
|
|
176
169
|
}
|
|
177
170
|
}
|
|
178
171
|
async function getAssets(options, bundle) {
|
|
179
172
|
const dir = options.dir || '';
|
|
180
173
|
for (const fileName of Object.keys(bundle)) {
|
|
181
|
-
const relativeToRootAssetPath =
|
|
174
|
+
const relativeToRootAssetPath = path.join(dir, fileName);
|
|
182
175
|
if (ignore(relativeToRootAssetPath) || processedFiles.has(relativeToRootAssetPath)) {
|
|
183
176
|
continue;
|
|
184
177
|
}
|
|
@@ -188,7 +181,7 @@ function index (options$1 = {}) {
|
|
|
188
181
|
continue;
|
|
189
182
|
}
|
|
190
183
|
if (fileName.endsWith(cssExtention)) {
|
|
191
|
-
const assetPath =
|
|
184
|
+
const assetPath = path.relative(initialDir, relativeToRootAssetPath);
|
|
192
185
|
assets.asset.push({
|
|
193
186
|
html: getLinkElement(assetPath),
|
|
194
187
|
head: injectIntoHead(relativeToRootAssetPath),
|
|
@@ -204,7 +197,7 @@ function index (options$1 = {}) {
|
|
|
204
197
|
continue;
|
|
205
198
|
}
|
|
206
199
|
if (options.format === 'es' || options.format === 'iife' || options.format === 'umd') {
|
|
207
|
-
const assetPath =
|
|
200
|
+
const assetPath = path.relative(initialDir, relativeToRootAssetPath);
|
|
208
201
|
assets[options.format].push({
|
|
209
202
|
html: (assets) => {
|
|
210
203
|
let useConditionalLoading = conditionalLoading;
|
|
@@ -241,7 +234,7 @@ function index (options$1 = {}) {
|
|
|
241
234
|
}
|
|
242
235
|
}
|
|
243
236
|
catch (e) {
|
|
244
|
-
logger('exception in assetFactory', 2 /* warn */, e);
|
|
237
|
+
logger('exception in assetFactory', 2 /* LogLevel.warn */, e);
|
|
245
238
|
}
|
|
246
239
|
}
|
|
247
240
|
return false;
|
|
@@ -266,7 +259,7 @@ function predicateFactory(options, field) {
|
|
|
266
259
|
return predicate;
|
|
267
260
|
}
|
|
268
261
|
else {
|
|
269
|
-
options.logger && options.logger(`${field} option ignored because it is not a function, RegExp or boolean`, 2 /* warn */);
|
|
262
|
+
options.logger && options.logger(`${field} option ignored because it is not a function, RegExp or boolean`, 2 /* LogLevel.warn */);
|
|
270
263
|
}
|
|
271
264
|
}
|
|
272
265
|
return defaults[field];
|
package/dist/index.mjs
CHANGED
|
@@ -21,7 +21,7 @@ const defaults = {
|
|
|
21
21
|
};
|
|
22
22
|
const factories = { logger, injectIntoHead: predicateFactory, ignore: predicateFactory };
|
|
23
23
|
function index (options = {}) {
|
|
24
|
-
const { pluginName, outputFile, template, watch, emitFile, conditionalLoading, logger, useWriteBundle, logLevel, useEmittedTemplate, injectIntoHead, ignore, assetsFactory, templateFactory } = getOptionsObject(options, Object.assign(Object.assign({}, defaults), { useEmittedTemplate: !('template' in options), logLevel: options.verbose ? 1 /* info */ : 0 /* verbose */ }), factories), hasCustomTemplateFactory = 'templateFactory' in options;
|
|
24
|
+
const { pluginName, outputFile, template, watch, emitFile, conditionalLoading, logger, useWriteBundle, logLevel, useEmittedTemplate, injectIntoHead, ignore, assetsFactory, templateFactory } = getOptionsObject(options, Object.assign(Object.assign({}, defaults), { useEmittedTemplate: !('template' in options), logLevel: options.verbose ? 1 /* LogLevel.info */ : 0 /* LogLevel.verbose */ }), factories), hasCustomTemplateFactory = 'templateFactory' in options;
|
|
25
25
|
let templateString = defaultTemplate, hasTemplateFile = false;
|
|
26
26
|
if (template) {
|
|
27
27
|
if (isUsableByDefaultTemplateFactory(template)) {
|
|
@@ -61,7 +61,7 @@ function index (options = {}) {
|
|
|
61
61
|
const baseRenderStart = instance.renderStart;
|
|
62
62
|
const baseAddInstance = instance.api.addInstance;
|
|
63
63
|
instance.renderStart = function (outputOptions, inputOptions) {
|
|
64
|
-
logger('started collecting information', 0 /* verbose */);
|
|
64
|
+
logger('started collecting information', 0 /* LogLevel.verbose */);
|
|
65
65
|
initialDir = outputOptions.dir || '';
|
|
66
66
|
fileNameInInitialDir = path.join(initialDir, outputFile);
|
|
67
67
|
return baseRenderStart.call(this, outputOptions, inputOptions);
|
|
@@ -92,16 +92,16 @@ function index (options = {}) {
|
|
|
92
92
|
.filter(item => item.count)
|
|
93
93
|
.map(({ key, count }) => `${key}: ${count}`)
|
|
94
94
|
.join(', ');
|
|
95
|
-
logger(`assets collected: [${statistics}], remaining: ${remainingOutputsCount} outputs, ${remainingConfigsCount} configs`, 0 /* verbose */);
|
|
95
|
+
logger(`assets collected: [${statistics}], remaining: ${remainingOutputsCount} outputs, ${remainingConfigsCount} configs`, 0 /* LogLevel.verbose */);
|
|
96
96
|
const dir = options.dir || '', fileName = path.relative(dir, fileNameInInitialDir);
|
|
97
97
|
if (fileName in bundle) {
|
|
98
98
|
if (useEmittedTemplate) {
|
|
99
|
-
logger(`using exiting emitted ${fileName} as an input for out templateFactory`, 0 /* verbose */);
|
|
99
|
+
logger(`using exiting emitted ${fileName} as an input for out templateFactory`, 0 /* LogLevel.verbose */);
|
|
100
100
|
const source = bundle[fileName].type === 'asset' ? bundle[fileName].source.toString() : bundle[fileName].code;
|
|
101
101
|
useNewTemplate(source);
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
|
-
logger(`removing exiting emitted ${fileName}`, 0 /* verbose */);
|
|
104
|
+
logger(`removing exiting emitted ${fileName}`, 0 /* LogLevel.verbose */);
|
|
105
105
|
}
|
|
106
106
|
if (remainingConfigsCount === 0 && emitFile && !useWriteBundle) {
|
|
107
107
|
delete bundle[fileName];
|
|
@@ -126,14 +126,14 @@ function index (options = {}) {
|
|
|
126
126
|
}
|
|
127
127
|
function handleTemplateReadError(e) {
|
|
128
128
|
if ((e === null || e === void 0 ? void 0 : e.code) === 'ENOENT') {
|
|
129
|
-
logger('template nor a file or string', 2 /* warn */, e);
|
|
129
|
+
logger('template nor a file or string', 2 /* LogLevel.warn */, e);
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
|
-
logger('error reading template', 2 /* warn */, e);
|
|
132
|
+
logger('error reading template', 2 /* LogLevel.warn */, e);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
function warnAboutUsingDefaultTemplate() {
|
|
136
|
-
logger('template is unusable by default template factory, using default one', 2 /* warn */);
|
|
136
|
+
logger('template is unusable by default template factory, using default one', 2 /* LogLevel.warn */);
|
|
137
137
|
}
|
|
138
138
|
async function buildStart() {
|
|
139
139
|
this.addWatchFile(template);
|
|
@@ -145,7 +145,7 @@ function index (options = {}) {
|
|
|
145
145
|
const depromisifiedTemplateString = await templateString, source = await templateFactory(depromisifiedTemplateString, assets, defaultTemplateFactory);
|
|
146
146
|
if (!emitFile || fileName.startsWith('..') || useWriteBundle) {
|
|
147
147
|
if (emitFile && emitFile !== 'auto') {
|
|
148
|
-
logger('cannot emitFile because it is outside of current output.dir, using writeFile instead', 0 /* verbose */);
|
|
148
|
+
logger('cannot emitFile because it is outside of current output.dir, using writeFile instead', 0 /* LogLevel.verbose */);
|
|
149
149
|
}
|
|
150
150
|
await fs.mkdir(path.dirname(fileNameInInitialDir), { recursive: true });
|
|
151
151
|
await fs.writeFile(fileNameInInitialDir, source);
|
|
@@ -163,7 +163,7 @@ function index (options = {}) {
|
|
|
163
163
|
logger.finish('html file generated');
|
|
164
164
|
}
|
|
165
165
|
catch (e) {
|
|
166
|
-
logger.finish('html generation failed', 3 /* error */, e);
|
|
166
|
+
logger.finish('html generation failed', 3 /* LogLevel.error */, e);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
async function getAssets(options, bundle) {
|
|
@@ -232,7 +232,7 @@ function index (options = {}) {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
catch (e) {
|
|
235
|
-
logger('exception in assetFactory', 2 /* warn */, e);
|
|
235
|
+
logger('exception in assetFactory', 2 /* LogLevel.warn */, e);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
return false;
|
|
@@ -257,7 +257,7 @@ function predicateFactory(options, field) {
|
|
|
257
257
|
return predicate;
|
|
258
258
|
}
|
|
259
259
|
else {
|
|
260
|
-
options.logger && options.logger(`${field} option ignored because it is not a function, RegExp or boolean`, 2 /* warn */);
|
|
260
|
+
options.logger && options.logger(`${field} option ignored because it is not a function, RegExp or boolean`, 2 /* LogLevel.warn */);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
return defaults[field];
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.3.
|
|
2
|
+
"version": "1.3.2",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "@rollup-extras/plugin-html",
|
|
5
5
|
"author": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"bundle"
|
|
39
39
|
],
|
|
40
40
|
"scripts": {
|
|
41
|
-
"build": "pkgbld",
|
|
41
|
+
"build": "pkgbld-internal",
|
|
42
42
|
"test": "jest --collectCoverage",
|
|
43
43
|
"lint": "eslint ./src",
|
|
44
44
|
"semantic-release": "npx semantic-release"
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"ts-jest": "28.0.2",
|
|
61
61
|
"typescript": "4.6.x",
|
|
62
62
|
"update-monorepo-package-json": "0.2.0",
|
|
63
|
-
"pkgbld": "1.
|
|
63
|
+
"pkgbld-internal": "1.0.3"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"rollup": "^2.60.1 || ^3.0.0"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@niceties/logger": "^1.1.4",
|
|
70
|
-
"@rollup-extras/utils": "^1.3.
|
|
70
|
+
"@rollup-extras/utils": "^1.3.2"
|
|
71
71
|
}
|
|
72
72
|
}
|