@amekusa/util.js 2.1.0 → 2.2.0
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/amekusa.util.cjs +16 -8
- package/dist/amekusa.util.js +20 -12
- package/package.json +1 -1
package/dist/amekusa.util.cjs
CHANGED
|
@@ -604,7 +604,7 @@ class AssetImporter {
|
|
|
604
604
|
for (let i = 0; i < find.length; i++) {
|
|
605
605
|
let r;
|
|
606
606
|
switch (method) {
|
|
607
|
-
case '
|
|
607
|
+
case 'require':
|
|
608
608
|
try {
|
|
609
609
|
r = require.resolve(find[i]);
|
|
610
610
|
} catch (e) {
|
|
@@ -629,8 +629,10 @@ class AssetImporter {
|
|
|
629
629
|
}
|
|
630
630
|
/**
|
|
631
631
|
* Imports all items in the queue at once.
|
|
632
|
+
* @return {Promise}
|
|
632
633
|
*/
|
|
633
634
|
import() {
|
|
635
|
+
let tasks = [];
|
|
634
636
|
let typeMap = {
|
|
635
637
|
'.css': 'style',
|
|
636
638
|
'.js': 'script',
|
|
@@ -665,17 +667,19 @@ class AssetImporter {
|
|
|
665
667
|
let dst = path.join(this.config.dst, url);
|
|
666
668
|
dstDir = path.dirname(dst);
|
|
667
669
|
if (!fs.existsSync(dstDir)) fs.mkdirSync(dstDir, {recursive:true});
|
|
670
|
+
|
|
671
|
+
// create/copy file
|
|
668
672
|
if (create) {
|
|
669
|
-
fs.writeFileSync(dst, src);
|
|
670
673
|
console.log('---- File Creation ----');
|
|
671
674
|
console.log(' type:', type);
|
|
672
675
|
console.log(' dst:', dst);
|
|
676
|
+
tasks.push(fsp.writeFile(dst, src));
|
|
673
677
|
} else {
|
|
674
|
-
fs.copyFileSync(src, dst);
|
|
675
678
|
console.log('---- File Import ----');
|
|
676
679
|
console.log(' type:', type);
|
|
677
680
|
console.log(' src:', src);
|
|
678
681
|
console.log(' dst:', dst);
|
|
682
|
+
tasks.push(fsp.copyFile(src, dst));
|
|
679
683
|
}
|
|
680
684
|
}
|
|
681
685
|
|
|
@@ -684,6 +688,8 @@ class AssetImporter {
|
|
|
684
688
|
this.results[type].push({type, url});
|
|
685
689
|
}
|
|
686
690
|
}
|
|
691
|
+
|
|
692
|
+
return tasks.length ? Promise.all(tasks) : Promise.resolve();
|
|
687
693
|
}
|
|
688
694
|
/**
|
|
689
695
|
* Outputs HTML tags for imported items.
|
|
@@ -695,6 +701,7 @@ class AssetImporter {
|
|
|
695
701
|
if (type) {
|
|
696
702
|
let tmpl = templates[type];
|
|
697
703
|
if (!tmpl) return '';
|
|
704
|
+
if (Array.isArray(tmpl)) tmpl = tmpl.join('\n');
|
|
698
705
|
let items = this.results[type];
|
|
699
706
|
r = new Array(items.length);
|
|
700
707
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -712,14 +719,15 @@ class AssetImporter {
|
|
|
712
719
|
}
|
|
713
720
|
|
|
714
721
|
const templates = {
|
|
715
|
-
|
|
722
|
+
script: [
|
|
716
723
|
`<script src="%s"></script>`,
|
|
717
|
-
|
|
718
|
-
|
|
724
|
+
],
|
|
725
|
+
module: [
|
|
719
726
|
`<script type="module" src="%s"></script>`,
|
|
720
|
-
|
|
721
|
-
|
|
727
|
+
],
|
|
728
|
+
style: [
|
|
722
729
|
`<link rel="stylesheet" href="%s">`,
|
|
730
|
+
],
|
|
723
731
|
};/**
|
|
724
732
|
* Alias of `os.homedir()`.
|
|
725
733
|
* @type {string}
|
package/dist/amekusa.util.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import os from'node:os';import fs
|
|
1
|
+
import os from'node:os';import fs,{existsSync,mkdirSync}from'node:fs';import*as fsp from'node:fs/promises';import {writeFile,copyFile}from'node:fs/promises';import path,{join,basename,dirname}from'node:path';import {Transform}from'node:stream';import {env}from'node:process';import {exec as exec$1}from'node:child_process';import assert from'node:assert';/*!
|
|
2
2
|
* === @amekusa/util.js/gen === *
|
|
3
3
|
* MIT License
|
|
4
4
|
*
|
|
@@ -604,7 +604,7 @@ class AssetImporter {
|
|
|
604
604
|
for (let i = 0; i < find.length; i++) {
|
|
605
605
|
let r;
|
|
606
606
|
switch (method) {
|
|
607
|
-
case '
|
|
607
|
+
case 'require':
|
|
608
608
|
try {
|
|
609
609
|
r = require.resolve(find[i]);
|
|
610
610
|
} catch (e) {
|
|
@@ -614,12 +614,12 @@ class AssetImporter {
|
|
|
614
614
|
return r;
|
|
615
615
|
case 'local':
|
|
616
616
|
r = join(this.config.src, find[i]);
|
|
617
|
-
if (
|
|
617
|
+
if (existsSync(r)) return r;
|
|
618
618
|
break;
|
|
619
619
|
case 'local:absolute':
|
|
620
620
|
case 'local:abs':
|
|
621
621
|
r = find[i];
|
|
622
|
-
if (
|
|
622
|
+
if (existsSync(r)) return r;
|
|
623
623
|
break;
|
|
624
624
|
default:
|
|
625
625
|
throw `invalid resolution method: ${method}`;
|
|
@@ -629,8 +629,10 @@ class AssetImporter {
|
|
|
629
629
|
}
|
|
630
630
|
/**
|
|
631
631
|
* Imports all items in the queue at once.
|
|
632
|
+
* @return {Promise}
|
|
632
633
|
*/
|
|
633
634
|
import() {
|
|
635
|
+
let tasks = [];
|
|
634
636
|
let typeMap = {
|
|
635
637
|
'.css': 'style',
|
|
636
638
|
'.js': 'script',
|
|
@@ -664,18 +666,20 @@ class AssetImporter {
|
|
|
664
666
|
url = join(dstDir, dstFile);
|
|
665
667
|
let dst = join(this.config.dst, url);
|
|
666
668
|
dstDir = dirname(dst);
|
|
667
|
-
if (!
|
|
669
|
+
if (!existsSync(dstDir)) mkdirSync(dstDir, {recursive:true});
|
|
670
|
+
|
|
671
|
+
// create/copy file
|
|
668
672
|
if (create) {
|
|
669
|
-
fs.writeFileSync(dst, src);
|
|
670
673
|
console.log('---- File Creation ----');
|
|
671
674
|
console.log(' type:', type);
|
|
672
675
|
console.log(' dst:', dst);
|
|
676
|
+
tasks.push(writeFile(dst, src));
|
|
673
677
|
} else {
|
|
674
|
-
fs.copyFileSync(src, dst);
|
|
675
678
|
console.log('---- File Import ----');
|
|
676
679
|
console.log(' type:', type);
|
|
677
680
|
console.log(' src:', src);
|
|
678
681
|
console.log(' dst:', dst);
|
|
682
|
+
tasks.push(copyFile(src, dst));
|
|
679
683
|
}
|
|
680
684
|
}
|
|
681
685
|
|
|
@@ -684,6 +688,8 @@ class AssetImporter {
|
|
|
684
688
|
this.results[type].push({type, url});
|
|
685
689
|
}
|
|
686
690
|
}
|
|
691
|
+
|
|
692
|
+
return tasks.length ? Promise.all(tasks) : Promise.resolve();
|
|
687
693
|
}
|
|
688
694
|
/**
|
|
689
695
|
* Outputs HTML tags for imported items.
|
|
@@ -695,6 +701,7 @@ class AssetImporter {
|
|
|
695
701
|
if (type) {
|
|
696
702
|
let tmpl = templates[type];
|
|
697
703
|
if (!tmpl) return '';
|
|
704
|
+
if (Array.isArray(tmpl)) tmpl = tmpl.join('\n');
|
|
698
705
|
let items = this.results[type];
|
|
699
706
|
r = new Array(items.length);
|
|
700
707
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -712,14 +719,15 @@ class AssetImporter {
|
|
|
712
719
|
}
|
|
713
720
|
|
|
714
721
|
const templates = {
|
|
715
|
-
|
|
722
|
+
script: [
|
|
716
723
|
`<script src="%s"></script>`,
|
|
717
|
-
|
|
718
|
-
|
|
724
|
+
],
|
|
725
|
+
module: [
|
|
719
726
|
`<script type="module" src="%s"></script>`,
|
|
720
|
-
|
|
721
|
-
|
|
727
|
+
],
|
|
728
|
+
style: [
|
|
722
729
|
`<link rel="stylesheet" href="%s">`,
|
|
730
|
+
],
|
|
723
731
|
};/**
|
|
724
732
|
* Alias of `os.homedir()`.
|
|
725
733
|
* @type {string}
|