isomorfeus-asset-manager 0.15.1 → 0.15.3
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.
- checksums.yaml +4 -4
- data/lib/isomorfeus/asset_manager/version.rb +1 -1
- data/node_modules/.package-lock.json +3 -3
- data/node_modules/esbuild-wasm/esbuild.wasm +0 -0
- data/node_modules/esbuild-wasm/esm/browser.d.ts +2 -0
- data/node_modules/esbuild-wasm/esm/browser.js +602 -676
- data/node_modules/esbuild-wasm/esm/browser.min.js +9 -9
- data/node_modules/esbuild-wasm/lib/browser.d.ts +2 -0
- data/node_modules/esbuild-wasm/lib/browser.js +605 -678
- data/node_modules/esbuild-wasm/lib/browser.min.js +9 -9
- data/node_modules/esbuild-wasm/lib/main.d.ts +2 -0
- data/node_modules/esbuild-wasm/lib/main.js +610 -817
- data/node_modules/esbuild-wasm/package.json +1 -1
- data/package.json +1 -1
- metadata +22 -8
@@ -1,9 +1,7 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __create = Object.create;
|
3
2
|
var __defProp = Object.defineProperty;
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
6
|
var __export = (target, all) => {
|
9
7
|
for (var name in all)
|
@@ -17,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
17
15
|
}
|
18
16
|
return to;
|
19
17
|
};
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
22
|
-
mod
|
23
|
-
));
|
24
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
25
19
|
|
26
20
|
// lib/npm/node.ts
|
@@ -206,6 +200,8 @@ function writeUInt32LE(buffer, value, offset) {
|
|
206
200
|
}
|
207
201
|
|
208
202
|
// lib/shared/common.ts
|
203
|
+
var buildLogLevelDefault = "warning";
|
204
|
+
var transformLogLevelDefault = "silent";
|
209
205
|
function validateTarget(target) {
|
210
206
|
target += "";
|
211
207
|
if (target.indexOf(",") >= 0)
|
@@ -306,6 +302,7 @@ function pushCommonFlags(flags, options, keys) {
|
|
306
302
|
let jsxFragment = getFlag(options, keys, "jsxFragment", mustBeString);
|
307
303
|
let jsxImportSource = getFlag(options, keys, "jsxImportSource", mustBeString);
|
308
304
|
let jsxDev = getFlag(options, keys, "jsxDev", mustBeBoolean);
|
305
|
+
let jsxSideEffects = getFlag(options, keys, "jsxSideEffects", mustBeBoolean);
|
309
306
|
let define = getFlag(options, keys, "define", mustBeObject);
|
310
307
|
let logOverride = getFlag(options, keys, "logOverride", mustBeObject);
|
311
308
|
let supported = getFlag(options, keys, "supported", mustBeObject);
|
@@ -363,6 +360,8 @@ function pushCommonFlags(flags, options, keys) {
|
|
363
360
|
flags.push(`--jsx-import-source=${jsxImportSource}`);
|
364
361
|
if (jsxDev)
|
365
362
|
flags.push(`--jsx-dev`);
|
363
|
+
if (jsxSideEffects)
|
364
|
+
flags.push(`--jsx-side-effects`);
|
366
365
|
if (define) {
|
367
366
|
for (let key in define) {
|
368
367
|
if (key.indexOf("=") >= 0)
|
@@ -616,11 +615,9 @@ function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
|
|
616
615
|
};
|
617
616
|
}
|
618
617
|
function createChannel(streamIn) {
|
619
|
-
|
620
|
-
|
621
|
-
let
|
622
|
-
let serveCallbacks = /* @__PURE__ */ new Map();
|
623
|
-
let closeData = null;
|
618
|
+
const requestCallbacksByKey = {};
|
619
|
+
const closeData = { didClose: false, reason: "" };
|
620
|
+
let responseCallbacks = {};
|
624
621
|
let nextRequestID = 0;
|
625
622
|
let nextBuildKey = 0;
|
626
623
|
let stdout = new Uint8Array(16 * 1024);
|
@@ -650,105 +647,53 @@ function createChannel(streamIn) {
|
|
650
647
|
}
|
651
648
|
};
|
652
649
|
let afterClose = (error) => {
|
653
|
-
closeData =
|
650
|
+
closeData.didClose = true;
|
651
|
+
if (error)
|
652
|
+
closeData.reason = ": " + (error.message || error);
|
654
653
|
const text = "The service was stopped" + closeData.reason;
|
655
|
-
for (let
|
656
|
-
|
654
|
+
for (let id in responseCallbacks) {
|
655
|
+
responseCallbacks[id](text, null);
|
657
656
|
}
|
658
|
-
responseCallbacks
|
659
|
-
for (let callbacks of serveCallbacks.values()) {
|
660
|
-
callbacks.onWait(text);
|
661
|
-
}
|
662
|
-
serveCallbacks.clear();
|
663
|
-
for (let callback of watchCallbacks.values()) {
|
664
|
-
try {
|
665
|
-
callback(new Error(text), null);
|
666
|
-
} catch (e) {
|
667
|
-
console.error(e);
|
668
|
-
}
|
669
|
-
}
|
670
|
-
watchCallbacks.clear();
|
657
|
+
responseCallbacks = {};
|
671
658
|
};
|
672
659
|
let sendRequest = (refs, value, callback) => {
|
673
|
-
if (closeData)
|
660
|
+
if (closeData.didClose)
|
674
661
|
return callback("The service is no longer running" + closeData.reason, null);
|
675
662
|
let id = nextRequestID++;
|
676
|
-
responseCallbacks
|
663
|
+
responseCallbacks[id] = (error, response) => {
|
677
664
|
try {
|
678
665
|
callback(error, response);
|
679
666
|
} finally {
|
680
667
|
if (refs)
|
681
668
|
refs.unref();
|
682
669
|
}
|
683
|
-
}
|
670
|
+
};
|
684
671
|
if (refs)
|
685
672
|
refs.ref();
|
686
673
|
streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));
|
687
674
|
};
|
688
675
|
let sendResponse = (id, value) => {
|
689
|
-
if (closeData)
|
676
|
+
if (closeData.didClose)
|
690
677
|
throw new Error("The service is no longer running" + closeData.reason);
|
691
678
|
streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));
|
692
679
|
};
|
693
680
|
let handleRequest = async (id, request) => {
|
694
681
|
try {
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
break;
|
707
|
-
}
|
708
|
-
case "on-resolve": {
|
709
|
-
let callback = pluginCallbacks.get(request.key);
|
710
|
-
if (!callback)
|
711
|
-
sendResponse(id, {});
|
712
|
-
else
|
713
|
-
sendResponse(id, await callback(request));
|
714
|
-
break;
|
715
|
-
}
|
716
|
-
case "on-load": {
|
717
|
-
let callback = pluginCallbacks.get(request.key);
|
718
|
-
if (!callback)
|
719
|
-
sendResponse(id, {});
|
720
|
-
else
|
721
|
-
sendResponse(id, await callback(request));
|
722
|
-
break;
|
723
|
-
}
|
724
|
-
case "serve-request": {
|
725
|
-
let callbacks = serveCallbacks.get(request.key);
|
726
|
-
if (callbacks && callbacks.onRequest)
|
727
|
-
callbacks.onRequest(request.args);
|
728
|
-
sendResponse(id, {});
|
729
|
-
break;
|
730
|
-
}
|
731
|
-
case "serve-wait": {
|
732
|
-
let callbacks = serveCallbacks.get(request.key);
|
733
|
-
if (callbacks)
|
734
|
-
callbacks.onWait(request.error);
|
735
|
-
sendResponse(id, {});
|
736
|
-
break;
|
737
|
-
}
|
738
|
-
case "watch-rebuild": {
|
739
|
-
let callback = watchCallbacks.get(request.key);
|
740
|
-
try {
|
741
|
-
if (callback)
|
742
|
-
callback(null, request.args);
|
743
|
-
} catch (err) {
|
744
|
-
console.error(err);
|
682
|
+
if (request.command === "ping") {
|
683
|
+
sendResponse(id, {});
|
684
|
+
return;
|
685
|
+
}
|
686
|
+
if (typeof request.key === "number") {
|
687
|
+
const requestCallbacks = requestCallbacksByKey[request.key];
|
688
|
+
if (requestCallbacks) {
|
689
|
+
const callback = requestCallbacks[request.command];
|
690
|
+
if (callback) {
|
691
|
+
await callback(id, request);
|
692
|
+
return;
|
745
693
|
}
|
746
|
-
sendResponse(id, {});
|
747
|
-
break;
|
748
694
|
}
|
749
|
-
default:
|
750
|
-
throw new Error(`Invalid command: ` + request.command);
|
751
695
|
}
|
696
|
+
throw new Error(`Invalid command: ` + request.command);
|
752
697
|
} catch (e) {
|
753
698
|
sendResponse(id, { errors: [extractErrorMessageV8(e, streamIn, null, void 0, "")] });
|
754
699
|
}
|
@@ -758,8 +703,8 @@ function createChannel(streamIn) {
|
|
758
703
|
if (isFirstPacket) {
|
759
704
|
isFirstPacket = false;
|
760
705
|
let binaryVersion = String.fromCharCode(...bytes);
|
761
|
-
if (binaryVersion !== "0.15.
|
762
|
-
throw new Error(`Cannot start service: Host version "${"0.15.
|
706
|
+
if (binaryVersion !== "0.15.8") {
|
707
|
+
throw new Error(`Cannot start service: Host version "${"0.15.8"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
|
763
708
|
}
|
764
709
|
return;
|
765
710
|
}
|
@@ -767,452 +712,259 @@ function createChannel(streamIn) {
|
|
767
712
|
if (packet.isRequest) {
|
768
713
|
handleRequest(packet.id, packet.value);
|
769
714
|
} else {
|
770
|
-
let callback = responseCallbacks
|
771
|
-
responseCallbacks
|
715
|
+
let callback = responseCallbacks[packet.id];
|
716
|
+
delete responseCallbacks[packet.id];
|
772
717
|
if (packet.value.error)
|
773
718
|
callback(packet.value.error, {});
|
774
719
|
else
|
775
720
|
callback(null, packet.value);
|
776
721
|
}
|
777
722
|
};
|
778
|
-
let
|
779
|
-
let
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
723
|
+
let buildOrServe = ({ callName, refs, serveOptions, options, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => {
|
724
|
+
let refCount = 0;
|
725
|
+
const buildKey = nextBuildKey++;
|
726
|
+
const requestCallbacks = {};
|
727
|
+
const buildRefs = {
|
728
|
+
ref() {
|
729
|
+
if (++refCount === 1) {
|
730
|
+
if (refs)
|
731
|
+
refs.ref();
|
732
|
+
}
|
733
|
+
},
|
734
|
+
unref() {
|
735
|
+
if (--refCount === 0) {
|
736
|
+
delete requestCallbacksByKey[buildKey];
|
737
|
+
if (refs)
|
738
|
+
refs.unref();
|
739
|
+
}
|
740
|
+
}
|
741
|
+
};
|
742
|
+
requestCallbacksByKey[buildKey] = requestCallbacks;
|
743
|
+
buildRefs.ref();
|
744
|
+
buildOrServeImpl(
|
745
|
+
callName,
|
746
|
+
buildKey,
|
747
|
+
sendRequest,
|
748
|
+
sendResponse,
|
749
|
+
buildRefs,
|
750
|
+
streamIn,
|
751
|
+
requestCallbacks,
|
752
|
+
options,
|
753
|
+
serveOptions,
|
754
|
+
isTTY2,
|
755
|
+
defaultWD2,
|
756
|
+
closeData,
|
757
|
+
(err, res) => {
|
758
|
+
try {
|
759
|
+
callback(err, res);
|
760
|
+
} finally {
|
761
|
+
buildRefs.unref();
|
762
|
+
}
|
763
|
+
}
|
764
|
+
);
|
765
|
+
};
|
766
|
+
let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {
|
767
|
+
const details = createObjectStash();
|
768
|
+
let start = (inputPath) => {
|
795
769
|
try {
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
if (!isSetupDone)
|
808
|
-
throw new Error('Cannot call "resolve" before plugin setup has completed');
|
809
|
-
if (typeof path3 !== "string")
|
810
|
-
throw new Error(`The path to resolve must be a string`);
|
811
|
-
let keys2 = /* @__PURE__ */ Object.create(null);
|
812
|
-
let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
|
813
|
-
let importer = getFlag(options, keys2, "importer", mustBeString);
|
814
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
815
|
-
let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
|
816
|
-
let kind = getFlag(options, keys2, "kind", mustBeString);
|
817
|
-
let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
|
818
|
-
checkForInvalidFlags(options, keys2, "in resolve() call");
|
819
|
-
return new Promise((resolve2, reject) => {
|
820
|
-
const request = {
|
821
|
-
command: "resolve",
|
822
|
-
path: path3,
|
823
|
-
key: buildKey,
|
824
|
-
pluginName: name
|
825
|
-
};
|
826
|
-
if (pluginName != null)
|
827
|
-
request.pluginName = pluginName;
|
828
|
-
if (importer != null)
|
829
|
-
request.importer = importer;
|
830
|
-
if (namespace != null)
|
831
|
-
request.namespace = namespace;
|
832
|
-
if (resolveDir != null)
|
833
|
-
request.resolveDir = resolveDir;
|
834
|
-
if (kind != null)
|
835
|
-
request.kind = kind;
|
836
|
-
if (pluginData != null)
|
837
|
-
request.pluginData = stash.store(pluginData);
|
838
|
-
sendRequest(refs, request, (error, response) => {
|
839
|
-
if (error !== null)
|
840
|
-
reject(new Error(error));
|
841
|
-
else
|
842
|
-
resolve2({
|
843
|
-
errors: replaceDetailsInMessages(response.errors, stash),
|
844
|
-
warnings: replaceDetailsInMessages(response.warnings, stash),
|
845
|
-
path: response.path,
|
846
|
-
external: response.external,
|
847
|
-
sideEffects: response.sideEffects,
|
848
|
-
namespace: response.namespace,
|
849
|
-
suffix: response.suffix,
|
850
|
-
pluginData: stash.load(response.pluginData)
|
851
|
-
});
|
852
|
-
});
|
853
|
-
});
|
770
|
+
if (typeof input !== "string" && !(input instanceof Uint8Array))
|
771
|
+
throw new Error('The input to "transform" must be a string or a Uint8Array');
|
772
|
+
let {
|
773
|
+
flags,
|
774
|
+
mangleCache
|
775
|
+
} = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
|
776
|
+
let request = {
|
777
|
+
command: "transform",
|
778
|
+
flags,
|
779
|
+
inputFS: inputPath !== null,
|
780
|
+
input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input
|
854
781
|
};
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
let registeredText = `This error came from the "onResolve" callback registered here:`;
|
870
|
-
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
|
871
|
-
let keys2 = {};
|
872
|
-
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
873
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
874
|
-
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
|
875
|
-
if (filter == null)
|
876
|
-
throw new Error(`onResolve() call is missing a filter`);
|
877
|
-
let id = nextCallbackID++;
|
878
|
-
onResolveCallbacks[id] = { name, callback: callback2, note: registeredNote };
|
879
|
-
plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
|
880
|
-
},
|
881
|
-
onLoad(options, callback2) {
|
882
|
-
let registeredText = `This error came from the "onLoad" callback registered here:`;
|
883
|
-
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
|
884
|
-
let keys2 = {};
|
885
|
-
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
886
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
887
|
-
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
|
888
|
-
if (filter == null)
|
889
|
-
throw new Error(`onLoad() call is missing a filter`);
|
890
|
-
let id = nextCallbackID++;
|
891
|
-
onLoadCallbacks[id] = { name, callback: callback2, note: registeredNote };
|
892
|
-
plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
|
893
|
-
},
|
894
|
-
esbuild: streamIn.esbuild
|
895
|
-
});
|
896
|
-
if (promise)
|
897
|
-
await promise;
|
898
|
-
requestPlugins.push(plugin);
|
899
|
-
} catch (e) {
|
900
|
-
return { ok: false, error: e, pluginName: name };
|
901
|
-
}
|
902
|
-
}
|
903
|
-
const callback = async (request) => {
|
904
|
-
switch (request.command) {
|
905
|
-
case "on-start": {
|
906
|
-
let response = { errors: [], warnings: [] };
|
907
|
-
await Promise.all(onStartCallbacks.map(async ({ name, callback: callback2, note }) => {
|
908
|
-
try {
|
909
|
-
let result = await callback2();
|
910
|
-
if (result != null) {
|
911
|
-
if (typeof result !== "object")
|
912
|
-
throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
|
913
|
-
let keys = {};
|
914
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
915
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
916
|
-
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
|
917
|
-
if (errors != null)
|
918
|
-
response.errors.push(...sanitizeMessages(errors, "errors", stash, name));
|
919
|
-
if (warnings != null)
|
920
|
-
response.warnings.push(...sanitizeMessages(warnings, "warnings", stash, name));
|
921
|
-
}
|
922
|
-
} catch (e) {
|
923
|
-
response.errors.push(extractErrorMessageV8(e, streamIn, stash, note && note(), name));
|
782
|
+
if (mangleCache)
|
783
|
+
request.mangleCache = mangleCache;
|
784
|
+
sendRequest(refs, request, (error, response) => {
|
785
|
+
if (error)
|
786
|
+
return callback(new Error(error), null);
|
787
|
+
let errors = replaceDetailsInMessages(response.errors, details);
|
788
|
+
let warnings = replaceDetailsInMessages(response.warnings, details);
|
789
|
+
let outstanding = 1;
|
790
|
+
let next = () => {
|
791
|
+
if (--outstanding === 0) {
|
792
|
+
let result = { warnings, code: response.code, map: response.map };
|
793
|
+
if (response.mangleCache)
|
794
|
+
result.mangleCache = response == null ? void 0 : response.mangleCache;
|
795
|
+
callback(null, result);
|
924
796
|
}
|
925
|
-
}
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
namespace: request.namespace,
|
937
|
-
resolveDir: request.resolveDir,
|
938
|
-
kind: request.kind,
|
939
|
-
pluginData: stash.load(request.pluginData)
|
940
|
-
});
|
941
|
-
if (result != null) {
|
942
|
-
if (typeof result !== "object")
|
943
|
-
throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
|
944
|
-
let keys = {};
|
945
|
-
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
946
|
-
let path3 = getFlag(result, keys, "path", mustBeString);
|
947
|
-
let namespace = getFlag(result, keys, "namespace", mustBeString);
|
948
|
-
let suffix = getFlag(result, keys, "suffix", mustBeString);
|
949
|
-
let external = getFlag(result, keys, "external", mustBeBoolean);
|
950
|
-
let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
|
951
|
-
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
952
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
953
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
954
|
-
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
955
|
-
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
956
|
-
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
|
957
|
-
response.id = id;
|
958
|
-
if (pluginName != null)
|
959
|
-
response.pluginName = pluginName;
|
960
|
-
if (path3 != null)
|
961
|
-
response.path = path3;
|
962
|
-
if (namespace != null)
|
963
|
-
response.namespace = namespace;
|
964
|
-
if (suffix != null)
|
965
|
-
response.suffix = suffix;
|
966
|
-
if (external != null)
|
967
|
-
response.external = external;
|
968
|
-
if (sideEffects != null)
|
969
|
-
response.sideEffects = sideEffects;
|
970
|
-
if (pluginData != null)
|
971
|
-
response.pluginData = stash.store(pluginData);
|
972
|
-
if (errors != null)
|
973
|
-
response.errors = sanitizeMessages(errors, "errors", stash, name);
|
974
|
-
if (warnings != null)
|
975
|
-
response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
|
976
|
-
if (watchFiles != null)
|
977
|
-
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
978
|
-
if (watchDirs != null)
|
979
|
-
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
980
|
-
break;
|
797
|
+
};
|
798
|
+
if (errors.length > 0)
|
799
|
+
return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
|
800
|
+
if (response.codeFS) {
|
801
|
+
outstanding++;
|
802
|
+
fs3.readFile(response.code, (err, contents) => {
|
803
|
+
if (err !== null) {
|
804
|
+
callback(err, null);
|
805
|
+
} else {
|
806
|
+
response.code = contents;
|
807
|
+
next();
|
981
808
|
}
|
982
|
-
}
|
983
|
-
return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
|
984
|
-
}
|
809
|
+
});
|
985
810
|
}
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
path: request.path,
|
995
|
-
namespace: request.namespace,
|
996
|
-
suffix: request.suffix,
|
997
|
-
pluginData: stash.load(request.pluginData)
|
998
|
-
});
|
999
|
-
if (result != null) {
|
1000
|
-
if (typeof result !== "object")
|
1001
|
-
throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1002
|
-
let keys = {};
|
1003
|
-
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1004
|
-
let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
|
1005
|
-
let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
|
1006
|
-
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1007
|
-
let loader = getFlag(result, keys, "loader", mustBeString);
|
1008
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1009
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1010
|
-
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1011
|
-
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1012
|
-
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
|
1013
|
-
response.id = id;
|
1014
|
-
if (pluginName != null)
|
1015
|
-
response.pluginName = pluginName;
|
1016
|
-
if (contents instanceof Uint8Array)
|
1017
|
-
response.contents = contents;
|
1018
|
-
else if (contents != null)
|
1019
|
-
response.contents = encodeUTF8(contents);
|
1020
|
-
if (resolveDir != null)
|
1021
|
-
response.resolveDir = resolveDir;
|
1022
|
-
if (pluginData != null)
|
1023
|
-
response.pluginData = stash.store(pluginData);
|
1024
|
-
if (loader != null)
|
1025
|
-
response.loader = loader;
|
1026
|
-
if (errors != null)
|
1027
|
-
response.errors = sanitizeMessages(errors, "errors", stash, name);
|
1028
|
-
if (warnings != null)
|
1029
|
-
response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
|
1030
|
-
if (watchFiles != null)
|
1031
|
-
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1032
|
-
if (watchDirs != null)
|
1033
|
-
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1034
|
-
break;
|
811
|
+
if (response.mapFS) {
|
812
|
+
outstanding++;
|
813
|
+
fs3.readFile(response.map, (err, contents) => {
|
814
|
+
if (err !== null) {
|
815
|
+
callback(err, null);
|
816
|
+
} else {
|
817
|
+
response.map = contents;
|
818
|
+
next();
|
1035
819
|
}
|
1036
|
-
}
|
1037
|
-
return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
|
1038
|
-
}
|
820
|
+
});
|
1039
821
|
}
|
1040
|
-
|
822
|
+
next();
|
823
|
+
});
|
824
|
+
} catch (e) {
|
825
|
+
let flags = [];
|
826
|
+
try {
|
827
|
+
pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);
|
828
|
+
} catch {
|
1041
829
|
}
|
1042
|
-
|
1043
|
-
|
830
|
+
const error = extractErrorMessageV8(e, streamIn, details, void 0, "");
|
831
|
+
sendRequest(refs, { command: "error", flags, error }, () => {
|
832
|
+
error.detail = details.load(error.detail);
|
833
|
+
callback(failureErrorWithLog("Transform failed", [error], []), null);
|
834
|
+
});
|
1044
835
|
}
|
1045
836
|
};
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
(async () => {
|
1050
|
-
for (const { name, callback: callback2, note } of onEndCallbacks) {
|
1051
|
-
try {
|
1052
|
-
await callback2(result);
|
1053
|
-
} catch (e) {
|
1054
|
-
result.errors.push(await new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
|
1055
|
-
}
|
1056
|
-
}
|
1057
|
-
})().then(done);
|
1058
|
-
};
|
837
|
+
if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
|
838
|
+
let next = start;
|
839
|
+
start = () => fs3.writeFile(input, next);
|
1059
840
|
}
|
1060
|
-
|
1061
|
-
let refCount = 0;
|
1062
|
-
return {
|
1063
|
-
ok: true,
|
1064
|
-
requestPlugins,
|
1065
|
-
runOnEndCallbacks,
|
1066
|
-
pluginRefs: {
|
1067
|
-
ref() {
|
1068
|
-
if (++refCount === 1)
|
1069
|
-
pluginCallbacks.set(buildKey, callback);
|
1070
|
-
},
|
1071
|
-
unref() {
|
1072
|
-
if (--refCount === 0)
|
1073
|
-
pluginCallbacks.delete(buildKey);
|
1074
|
-
}
|
1075
|
-
}
|
1076
|
-
};
|
841
|
+
start(null);
|
1077
842
|
};
|
1078
|
-
let
|
843
|
+
let formatMessages2 = ({ callName, refs, messages, options, callback }) => {
|
844
|
+
let result = sanitizeMessages(messages, "messages", null, "");
|
845
|
+
if (!options)
|
846
|
+
throw new Error(`Missing second argument in ${callName}() call`);
|
1079
847
|
let keys = {};
|
1080
|
-
let
|
1081
|
-
let
|
1082
|
-
let
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
request.serve.servedir = servedir;
|
1102
|
-
serveCallbacks.set(key, {
|
1103
|
-
onRequest,
|
1104
|
-
onWait
|
848
|
+
let kind = getFlag(options, keys, "kind", mustBeString);
|
849
|
+
let color = getFlag(options, keys, "color", mustBeBoolean);
|
850
|
+
let terminalWidth = getFlag(options, keys, "terminalWidth", mustBeInteger);
|
851
|
+
checkForInvalidFlags(options, keys, `in ${callName}() call`);
|
852
|
+
if (kind === void 0)
|
853
|
+
throw new Error(`Missing "kind" in ${callName}() call`);
|
854
|
+
if (kind !== "error" && kind !== "warning")
|
855
|
+
throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
|
856
|
+
let request = {
|
857
|
+
command: "format-msgs",
|
858
|
+
messages: result,
|
859
|
+
isWarning: kind === "warning"
|
860
|
+
};
|
861
|
+
if (color !== void 0)
|
862
|
+
request.color = color;
|
863
|
+
if (terminalWidth !== void 0)
|
864
|
+
request.terminalWidth = terminalWidth;
|
865
|
+
sendRequest(refs, request, (error, response) => {
|
866
|
+
if (error)
|
867
|
+
return callback(new Error(error), null);
|
868
|
+
callback(null, response.messages);
|
1105
869
|
});
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
870
|
+
};
|
871
|
+
let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
|
872
|
+
if (options === void 0)
|
873
|
+
options = {};
|
874
|
+
let keys = {};
|
875
|
+
let color = getFlag(options, keys, "color", mustBeBoolean);
|
876
|
+
let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
|
877
|
+
checkForInvalidFlags(options, keys, `in ${callName}() call`);
|
878
|
+
let request = {
|
879
|
+
command: "analyze-metafile",
|
880
|
+
metafile
|
1112
881
|
};
|
882
|
+
if (color !== void 0)
|
883
|
+
request.color = color;
|
884
|
+
if (verbose !== void 0)
|
885
|
+
request.verbose = verbose;
|
886
|
+
sendRequest(refs, request, (error, response) => {
|
887
|
+
if (error)
|
888
|
+
return callback(new Error(error), null);
|
889
|
+
callback(null, response.result);
|
890
|
+
});
|
1113
891
|
};
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
let value = options.plugins;
|
1123
|
-
if (value !== void 0) {
|
1124
|
-
if (!Array.isArray(value))
|
1125
|
-
throw new Error(`"plugins" must be an array`);
|
1126
|
-
plugins = value;
|
1127
|
-
}
|
892
|
+
return {
|
893
|
+
readFromStdout,
|
894
|
+
afterClose,
|
895
|
+
service: {
|
896
|
+
buildOrServe,
|
897
|
+
transform: transform2,
|
898
|
+
formatMessages: formatMessages2,
|
899
|
+
analyzeMetafile: analyzeMetafile2
|
1128
900
|
}
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
done(message);
|
1139
|
-
});
|
1140
|
-
};
|
1141
|
-
let handleError = (e, pluginName) => {
|
1142
|
-
logPluginError(e, pluginName, void 0, (error) => {
|
1143
|
-
callback(failureErrorWithLog("Build failed", [error], []), null);
|
1144
|
-
});
|
1145
|
-
};
|
1146
|
-
if (plugins && plugins.length > 0) {
|
1147
|
-
if (streamIn.isSync)
|
1148
|
-
return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
|
1149
|
-
handlePlugins(options, plugins, key, details, refs).then(
|
1150
|
-
(result) => {
|
1151
|
-
if (!result.ok) {
|
1152
|
-
handleError(result.error, result.pluginName);
|
1153
|
-
} else {
|
1154
|
-
try {
|
1155
|
-
buildOrServeContinue({
|
1156
|
-
...args,
|
1157
|
-
key,
|
1158
|
-
details,
|
1159
|
-
logPluginError,
|
1160
|
-
requestPlugins: result.requestPlugins,
|
1161
|
-
runOnEndCallbacks: result.runOnEndCallbacks,
|
1162
|
-
pluginRefs: result.pluginRefs
|
1163
|
-
});
|
1164
|
-
} catch (e) {
|
1165
|
-
handleError(e, "");
|
1166
|
-
}
|
1167
|
-
}
|
1168
|
-
},
|
1169
|
-
(e) => handleError(e, "")
|
1170
|
-
);
|
1171
|
-
} else {
|
1172
|
-
try {
|
1173
|
-
buildOrServeContinue({
|
1174
|
-
...args,
|
1175
|
-
key,
|
1176
|
-
details,
|
1177
|
-
logPluginError,
|
1178
|
-
requestPlugins: null,
|
1179
|
-
runOnEndCallbacks: (result, logPluginError2, done) => done(),
|
1180
|
-
pluginRefs: null
|
1181
|
-
});
|
1182
|
-
} catch (e) {
|
1183
|
-
handleError(e, "");
|
1184
|
-
}
|
901
|
+
};
|
902
|
+
}
|
903
|
+
function buildOrServeImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, serveOptions, isTTY2, defaultWD2, closeData, callback) {
|
904
|
+
const details = createObjectStash();
|
905
|
+
const logPluginError = (e, pluginName, note, done) => {
|
906
|
+
const flags = [];
|
907
|
+
try {
|
908
|
+
pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);
|
909
|
+
} catch {
|
1185
910
|
}
|
911
|
+
const message = extractErrorMessageV8(e, streamIn, details, note, pluginName);
|
912
|
+
sendRequest(refs, { command: "error", flags, error: message }, () => {
|
913
|
+
message.detail = details.load(message.detail);
|
914
|
+
done(message);
|
915
|
+
});
|
1186
916
|
};
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
917
|
+
const handleError = (e, pluginName) => {
|
918
|
+
logPluginError(e, pluginName, void 0, (error) => {
|
919
|
+
callback(failureErrorWithLog("Build failed", [error], []), null);
|
920
|
+
});
|
921
|
+
};
|
922
|
+
let plugins;
|
923
|
+
if (typeof options === "object") {
|
924
|
+
const value = options.plugins;
|
925
|
+
if (value !== void 0) {
|
926
|
+
if (!Array.isArray(value))
|
927
|
+
throw new Error(`"plugins" must be an array`);
|
928
|
+
plugins = value;
|
929
|
+
}
|
930
|
+
}
|
931
|
+
if (plugins && plugins.length > 0) {
|
932
|
+
if (streamIn.isSync) {
|
933
|
+
handleError(new Error("Cannot use plugins in synchronous API calls"), "");
|
934
|
+
return;
|
935
|
+
}
|
936
|
+
handlePlugins(
|
937
|
+
buildKey,
|
938
|
+
sendRequest,
|
939
|
+
sendResponse,
|
940
|
+
refs,
|
941
|
+
streamIn,
|
942
|
+
requestCallbacks,
|
943
|
+
options,
|
944
|
+
plugins,
|
945
|
+
details
|
946
|
+
).then(
|
947
|
+
(result) => {
|
948
|
+
if (!result.ok) {
|
949
|
+
handleError(result.error, result.pluginName);
|
950
|
+
return;
|
951
|
+
}
|
952
|
+
try {
|
953
|
+
buildOrServeContinue(result.requestPlugins, result.runOnEndCallbacks);
|
954
|
+
} catch (e) {
|
955
|
+
handleError(e, "");
|
956
|
+
}
|
1208
957
|
},
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
958
|
+
(e) => handleError(e, "")
|
959
|
+
);
|
960
|
+
return;
|
961
|
+
}
|
962
|
+
try {
|
963
|
+
buildOrServeContinue(null, (result, logPluginError2, done) => done());
|
964
|
+
} catch (e) {
|
965
|
+
handleError(e, "");
|
966
|
+
}
|
967
|
+
function buildOrServeContinue(requestPlugins, runOnEndCallbacks) {
|
1216
968
|
let writeDefault = !streamIn.isWriteUnavailable;
|
1217
969
|
let {
|
1218
970
|
entries,
|
@@ -1228,7 +980,7 @@ function createChannel(streamIn) {
|
|
1228
980
|
} = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);
|
1229
981
|
let request = {
|
1230
982
|
command: "build",
|
1231
|
-
key,
|
983
|
+
key: buildKey,
|
1232
984
|
entries,
|
1233
985
|
flags,
|
1234
986
|
write,
|
@@ -1242,7 +994,7 @@ function createChannel(streamIn) {
|
|
1242
994
|
request.plugins = requestPlugins;
|
1243
995
|
if (mangleCache)
|
1244
996
|
request.mangleCache = mangleCache;
|
1245
|
-
let serve2 = serveOptions && buildServeData(refs, serveOptions, request
|
997
|
+
let serve2 = serveOptions && buildServeData(buildKey, sendRequest, sendResponse, refs, requestCallbacks, serveOptions, request);
|
1246
998
|
let rebuild;
|
1247
999
|
let stop;
|
1248
1000
|
let copyResponseToResult = (response, result) => {
|
@@ -1269,11 +1021,11 @@ function createChannel(streamIn) {
|
|
1269
1021
|
if (!rebuild) {
|
1270
1022
|
let isDisposed = false;
|
1271
1023
|
rebuild = () => new Promise((resolve, reject) => {
|
1272
|
-
if (isDisposed || closeData)
|
1024
|
+
if (isDisposed || closeData.didClose)
|
1273
1025
|
throw new Error("Cannot rebuild");
|
1274
1026
|
sendRequest(
|
1275
1027
|
refs,
|
1276
|
-
{ command: "rebuild", key },
|
1028
|
+
{ command: "rebuild", key: buildKey },
|
1277
1029
|
(error2, response2) => {
|
1278
1030
|
if (error2) {
|
1279
1031
|
const message = { id: "", pluginName: "", text: error2, location: null, notes: [], detail: void 0 };
|
@@ -1293,7 +1045,7 @@ function createChannel(streamIn) {
|
|
1293
1045
|
if (isDisposed)
|
1294
1046
|
return;
|
1295
1047
|
isDisposed = true;
|
1296
|
-
sendRequest(refs, { command: "rebuild-dispose", key }, () => {
|
1048
|
+
sendRequest(refs, { command: "rebuild-dispose", key: buildKey }, () => {
|
1297
1049
|
});
|
1298
1050
|
refs.unref();
|
1299
1051
|
};
|
@@ -1308,36 +1060,35 @@ function createChannel(streamIn) {
|
|
1308
1060
|
if (isStopped)
|
1309
1061
|
return;
|
1310
1062
|
isStopped = true;
|
1311
|
-
|
1312
|
-
sendRequest(refs, { command: "watch-stop", key }, () => {
|
1063
|
+
delete requestCallbacks["watch-rebuild"];
|
1064
|
+
sendRequest(refs, { command: "watch-stop", key: buildKey }, () => {
|
1313
1065
|
});
|
1314
1066
|
refs.unref();
|
1315
1067
|
};
|
1316
1068
|
if (watch) {
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1069
|
+
requestCallbacks["watch-rebuild"] = (id, request2) => {
|
1070
|
+
try {
|
1071
|
+
let watchResponse = request2.args;
|
1072
|
+
let result2 = {
|
1073
|
+
errors: replaceDetailsInMessages(watchResponse.errors, details),
|
1074
|
+
warnings: replaceDetailsInMessages(watchResponse.warnings, details)
|
1075
|
+
};
|
1076
|
+
copyResponseToResult(watchResponse, result2);
|
1077
|
+
runOnEndCallbacks(result2, logPluginError, () => {
|
1078
|
+
if (result2.errors.length > 0) {
|
1079
|
+
if (watch.onRebuild)
|
1080
|
+
watch.onRebuild(failureErrorWithLog("Build failed", result2.errors, result2.warnings), null);
|
1081
|
+
return;
|
1082
|
+
}
|
1083
|
+
result2.stop = stop;
|
1330
1084
|
if (watch.onRebuild)
|
1331
|
-
watch.onRebuild(
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
watch.onRebuild(null, result2);
|
1339
|
-
});
|
1340
|
-
});
|
1085
|
+
watch.onRebuild(null, result2);
|
1086
|
+
});
|
1087
|
+
} catch (err) {
|
1088
|
+
console.error(err);
|
1089
|
+
}
|
1090
|
+
sendResponse(id, {});
|
1091
|
+
};
|
1341
1092
|
}
|
1342
1093
|
}
|
1343
1094
|
result.stop = stop;
|
@@ -1376,144 +1127,329 @@ function createChannel(streamIn) {
|
|
1376
1127
|
}
|
1377
1128
|
return buildResponseToResult(response, callback);
|
1378
1129
|
});
|
1130
|
+
}
|
1131
|
+
}
|
1132
|
+
var buildServeData = (buildKey, sendRequest, sendResponse, refs, requestCallbacks, options, request) => {
|
1133
|
+
let keys = {};
|
1134
|
+
let port = getFlag(options, keys, "port", mustBeInteger);
|
1135
|
+
let host = getFlag(options, keys, "host", mustBeString);
|
1136
|
+
let servedir = getFlag(options, keys, "servedir", mustBeString);
|
1137
|
+
let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
|
1138
|
+
let wait = new Promise((resolve, reject) => {
|
1139
|
+
requestCallbacks["serve-wait"] = (id, request2) => {
|
1140
|
+
if (request2.error !== null)
|
1141
|
+
reject(new Error(request2.error));
|
1142
|
+
else
|
1143
|
+
resolve();
|
1144
|
+
sendResponse(id, {});
|
1145
|
+
};
|
1146
|
+
});
|
1147
|
+
request.serve = {};
|
1148
|
+
checkForInvalidFlags(options, keys, `in serve() call`);
|
1149
|
+
if (port !== void 0)
|
1150
|
+
request.serve.port = port;
|
1151
|
+
if (host !== void 0)
|
1152
|
+
request.serve.host = host;
|
1153
|
+
if (servedir !== void 0)
|
1154
|
+
request.serve.servedir = servedir;
|
1155
|
+
requestCallbacks["serve-request"] = (id, request2) => {
|
1156
|
+
if (onRequest)
|
1157
|
+
onRequest(request2.args);
|
1158
|
+
sendResponse(id, {});
|
1379
1159
|
};
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1160
|
+
return {
|
1161
|
+
wait,
|
1162
|
+
stop() {
|
1163
|
+
sendRequest(refs, { command: "serve-stop", key: buildKey }, () => {
|
1164
|
+
});
|
1165
|
+
}
|
1166
|
+
};
|
1167
|
+
};
|
1168
|
+
var handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => {
|
1169
|
+
let onStartCallbacks = [];
|
1170
|
+
let onEndCallbacks = [];
|
1171
|
+
let onResolveCallbacks = {};
|
1172
|
+
let onLoadCallbacks = {};
|
1173
|
+
let nextCallbackID = 0;
|
1174
|
+
let i = 0;
|
1175
|
+
let requestPlugins = [];
|
1176
|
+
let isSetupDone = false;
|
1177
|
+
plugins = [...plugins];
|
1178
|
+
for (let item of plugins) {
|
1179
|
+
let keys = {};
|
1180
|
+
if (typeof item !== "object")
|
1181
|
+
throw new Error(`Plugin at index ${i} must be an object`);
|
1182
|
+
const name = getFlag(item, keys, "name", mustBeString);
|
1183
|
+
if (typeof name !== "string" || name === "")
|
1184
|
+
throw new Error(`Plugin at index ${i} is missing a name`);
|
1185
|
+
try {
|
1186
|
+
let setup = getFlag(item, keys, "setup", mustBeFunction);
|
1187
|
+
if (typeof setup !== "function")
|
1188
|
+
throw new Error(`Plugin is missing a setup function`);
|
1189
|
+
checkForInvalidFlags(item, keys, `on plugin ${JSON.stringify(name)}`);
|
1190
|
+
let plugin = {
|
1191
|
+
name,
|
1192
|
+
onResolve: [],
|
1193
|
+
onLoad: []
|
1194
|
+
};
|
1195
|
+
i++;
|
1196
|
+
let resolve = (path3, options = {}) => {
|
1197
|
+
if (!isSetupDone)
|
1198
|
+
throw new Error('Cannot call "resolve" before plugin setup has completed');
|
1199
|
+
if (typeof path3 !== "string")
|
1200
|
+
throw new Error(`The path to resolve must be a string`);
|
1201
|
+
let keys2 = /* @__PURE__ */ Object.create(null);
|
1202
|
+
let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
|
1203
|
+
let importer = getFlag(options, keys2, "importer", mustBeString);
|
1204
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1205
|
+
let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
|
1206
|
+
let kind = getFlag(options, keys2, "kind", mustBeString);
|
1207
|
+
let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
|
1208
|
+
checkForInvalidFlags(options, keys2, "in resolve() call");
|
1209
|
+
return new Promise((resolve2, reject) => {
|
1210
|
+
const request = {
|
1211
|
+
command: "resolve",
|
1212
|
+
path: path3,
|
1213
|
+
key: buildKey,
|
1214
|
+
pluginName: name
|
1411
1215
|
};
|
1412
|
-
if (
|
1413
|
-
|
1414
|
-
if (
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
response.
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1216
|
+
if (pluginName != null)
|
1217
|
+
request.pluginName = pluginName;
|
1218
|
+
if (importer != null)
|
1219
|
+
request.importer = importer;
|
1220
|
+
if (namespace != null)
|
1221
|
+
request.namespace = namespace;
|
1222
|
+
if (resolveDir != null)
|
1223
|
+
request.resolveDir = resolveDir;
|
1224
|
+
if (kind != null)
|
1225
|
+
request.kind = kind;
|
1226
|
+
if (pluginData != null)
|
1227
|
+
request.pluginData = details.store(pluginData);
|
1228
|
+
sendRequest(refs, request, (error, response) => {
|
1229
|
+
if (error !== null)
|
1230
|
+
reject(new Error(error));
|
1231
|
+
else
|
1232
|
+
resolve2({
|
1233
|
+
errors: replaceDetailsInMessages(response.errors, details),
|
1234
|
+
warnings: replaceDetailsInMessages(response.warnings, details),
|
1235
|
+
path: response.path,
|
1236
|
+
external: response.external,
|
1237
|
+
sideEffects: response.sideEffects,
|
1238
|
+
namespace: response.namespace,
|
1239
|
+
suffix: response.suffix,
|
1240
|
+
pluginData: details.load(response.pluginData)
|
1241
|
+
});
|
1242
|
+
});
|
1437
1243
|
});
|
1438
|
-
}
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1244
|
+
};
|
1245
|
+
let promise = setup({
|
1246
|
+
initialOptions,
|
1247
|
+
resolve,
|
1248
|
+
onStart(callback) {
|
1249
|
+
let registeredText = `This error came from the "onStart" callback registered here:`;
|
1250
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
|
1251
|
+
onStartCallbacks.push({ name, callback, note: registeredNote });
|
1252
|
+
},
|
1253
|
+
onEnd(callback) {
|
1254
|
+
let registeredText = `This error came from the "onEnd" callback registered here:`;
|
1255
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd");
|
1256
|
+
onEndCallbacks.push({ name, callback, note: registeredNote });
|
1257
|
+
},
|
1258
|
+
onResolve(options, callback) {
|
1259
|
+
let registeredText = `This error came from the "onResolve" callback registered here:`;
|
1260
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
|
1261
|
+
let keys2 = {};
|
1262
|
+
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1263
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1264
|
+
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
|
1265
|
+
if (filter == null)
|
1266
|
+
throw new Error(`onResolve() call is missing a filter`);
|
1267
|
+
let id = nextCallbackID++;
|
1268
|
+
onResolveCallbacks[id] = { name, callback, note: registeredNote };
|
1269
|
+
plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
|
1270
|
+
},
|
1271
|
+
onLoad(options, callback) {
|
1272
|
+
let registeredText = `This error came from the "onLoad" callback registered here:`;
|
1273
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
|
1274
|
+
let keys2 = {};
|
1275
|
+
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1276
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1277
|
+
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
|
1278
|
+
if (filter == null)
|
1279
|
+
throw new Error(`onLoad() call is missing a filter`);
|
1280
|
+
let id = nextCallbackID++;
|
1281
|
+
onLoadCallbacks[id] = { name, callback, note: registeredNote };
|
1282
|
+
plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
|
1283
|
+
},
|
1284
|
+
esbuild: streamIn.esbuild
|
1285
|
+
});
|
1286
|
+
if (promise)
|
1287
|
+
await promise;
|
1288
|
+
requestPlugins.push(plugin);
|
1289
|
+
} catch (e) {
|
1290
|
+
return { ok: false, error: e, pluginName: name };
|
1291
|
+
}
|
1292
|
+
}
|
1293
|
+
requestCallbacks["on-start"] = async (id, request) => {
|
1294
|
+
let response = { errors: [], warnings: [] };
|
1295
|
+
await Promise.all(onStartCallbacks.map(async ({ name, callback, note }) => {
|
1296
|
+
try {
|
1297
|
+
let result = await callback();
|
1298
|
+
if (result != null) {
|
1299
|
+
if (typeof result !== "object")
|
1300
|
+
throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1301
|
+
let keys = {};
|
1302
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1303
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1304
|
+
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
|
1305
|
+
if (errors != null)
|
1306
|
+
response.errors.push(...sanitizeMessages(errors, "errors", details, name));
|
1307
|
+
if (warnings != null)
|
1308
|
+
response.warnings.push(...sanitizeMessages(warnings, "warnings", details, name));
|
1443
1309
|
}
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1310
|
+
} catch (e) {
|
1311
|
+
response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));
|
1312
|
+
}
|
1313
|
+
}));
|
1314
|
+
sendResponse(id, response);
|
1315
|
+
};
|
1316
|
+
requestCallbacks["on-resolve"] = async (id, request) => {
|
1317
|
+
let response = {}, name = "", callback, note;
|
1318
|
+
for (let id2 of request.ids) {
|
1319
|
+
try {
|
1320
|
+
({ name, callback, note } = onResolveCallbacks[id2]);
|
1321
|
+
let result = await callback({
|
1322
|
+
path: request.path,
|
1323
|
+
importer: request.importer,
|
1324
|
+
namespace: request.namespace,
|
1325
|
+
resolveDir: request.resolveDir,
|
1326
|
+
kind: request.kind,
|
1327
|
+
pluginData: details.load(request.pluginData)
|
1448
1328
|
});
|
1329
|
+
if (result != null) {
|
1330
|
+
if (typeof result !== "object")
|
1331
|
+
throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1332
|
+
let keys = {};
|
1333
|
+
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1334
|
+
let path3 = getFlag(result, keys, "path", mustBeString);
|
1335
|
+
let namespace = getFlag(result, keys, "namespace", mustBeString);
|
1336
|
+
let suffix = getFlag(result, keys, "suffix", mustBeString);
|
1337
|
+
let external = getFlag(result, keys, "external", mustBeBoolean);
|
1338
|
+
let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
|
1339
|
+
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1340
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1341
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1342
|
+
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1343
|
+
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1344
|
+
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
|
1345
|
+
response.id = id2;
|
1346
|
+
if (pluginName != null)
|
1347
|
+
response.pluginName = pluginName;
|
1348
|
+
if (path3 != null)
|
1349
|
+
response.path = path3;
|
1350
|
+
if (namespace != null)
|
1351
|
+
response.namespace = namespace;
|
1352
|
+
if (suffix != null)
|
1353
|
+
response.suffix = suffix;
|
1354
|
+
if (external != null)
|
1355
|
+
response.external = external;
|
1356
|
+
if (sideEffects != null)
|
1357
|
+
response.sideEffects = sideEffects;
|
1358
|
+
if (pluginData != null)
|
1359
|
+
response.pluginData = details.store(pluginData);
|
1360
|
+
if (errors != null)
|
1361
|
+
response.errors = sanitizeMessages(errors, "errors", details, name);
|
1362
|
+
if (warnings != null)
|
1363
|
+
response.warnings = sanitizeMessages(warnings, "warnings", details, name);
|
1364
|
+
if (watchFiles != null)
|
1365
|
+
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1366
|
+
if (watchDirs != null)
|
1367
|
+
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1368
|
+
break;
|
1369
|
+
}
|
1370
|
+
} catch (e) {
|
1371
|
+
response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
|
1372
|
+
break;
|
1449
1373
|
}
|
1450
|
-
};
|
1451
|
-
if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
|
1452
|
-
let next = start;
|
1453
|
-
start = () => fs3.writeFile(input, next);
|
1454
1374
|
}
|
1455
|
-
|
1375
|
+
sendResponse(id, response);
|
1456
1376
|
};
|
1457
|
-
|
1458
|
-
let
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1377
|
+
requestCallbacks["on-load"] = async (id, request) => {
|
1378
|
+
let response = {}, name = "", callback, note;
|
1379
|
+
for (let id2 of request.ids) {
|
1380
|
+
try {
|
1381
|
+
({ name, callback, note } = onLoadCallbacks[id2]);
|
1382
|
+
let result = await callback({
|
1383
|
+
path: request.path,
|
1384
|
+
namespace: request.namespace,
|
1385
|
+
suffix: request.suffix,
|
1386
|
+
pluginData: details.load(request.pluginData)
|
1387
|
+
});
|
1388
|
+
if (result != null) {
|
1389
|
+
if (typeof result !== "object")
|
1390
|
+
throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1391
|
+
let keys = {};
|
1392
|
+
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1393
|
+
let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
|
1394
|
+
let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
|
1395
|
+
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1396
|
+
let loader = getFlag(result, keys, "loader", mustBeString);
|
1397
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1398
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1399
|
+
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1400
|
+
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1401
|
+
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
|
1402
|
+
response.id = id2;
|
1403
|
+
if (pluginName != null)
|
1404
|
+
response.pluginName = pluginName;
|
1405
|
+
if (contents instanceof Uint8Array)
|
1406
|
+
response.contents = contents;
|
1407
|
+
else if (contents != null)
|
1408
|
+
response.contents = encodeUTF8(contents);
|
1409
|
+
if (resolveDir != null)
|
1410
|
+
response.resolveDir = resolveDir;
|
1411
|
+
if (pluginData != null)
|
1412
|
+
response.pluginData = details.store(pluginData);
|
1413
|
+
if (loader != null)
|
1414
|
+
response.loader = loader;
|
1415
|
+
if (errors != null)
|
1416
|
+
response.errors = sanitizeMessages(errors, "errors", details, name);
|
1417
|
+
if (warnings != null)
|
1418
|
+
response.warnings = sanitizeMessages(warnings, "warnings", details, name);
|
1419
|
+
if (watchFiles != null)
|
1420
|
+
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1421
|
+
if (watchDirs != null)
|
1422
|
+
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1423
|
+
break;
|
1424
|
+
}
|
1425
|
+
} catch (e) {
|
1426
|
+
response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
|
1427
|
+
break;
|
1428
|
+
}
|
1429
|
+
}
|
1430
|
+
sendResponse(id, response);
|
1484
1431
|
};
|
1485
|
-
let
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1432
|
+
let runOnEndCallbacks = (result, logPluginError, done) => done();
|
1433
|
+
if (onEndCallbacks.length > 0) {
|
1434
|
+
runOnEndCallbacks = (result, logPluginError, done) => {
|
1435
|
+
(async () => {
|
1436
|
+
for (const { name, callback, note } of onEndCallbacks) {
|
1437
|
+
try {
|
1438
|
+
await callback(result);
|
1439
|
+
} catch (e) {
|
1440
|
+
result.errors.push(await new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
|
1441
|
+
}
|
1442
|
+
}
|
1443
|
+
})().then(done);
|
1495
1444
|
};
|
1496
|
-
|
1497
|
-
|
1498
|
-
if (verbose !== void 0)
|
1499
|
-
request.verbose = verbose;
|
1500
|
-
sendRequest(refs, request, (error, response) => {
|
1501
|
-
if (error)
|
1502
|
-
return callback(new Error(error), null);
|
1503
|
-
callback(null, response.result);
|
1504
|
-
});
|
1505
|
-
};
|
1445
|
+
}
|
1446
|
+
isSetupDone = true;
|
1506
1447
|
return {
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
buildOrServe,
|
1511
|
-
transform: transform2,
|
1512
|
-
formatMessages: formatMessages2,
|
1513
|
-
analyzeMetafile: analyzeMetafile2
|
1514
|
-
}
|
1448
|
+
ok: true,
|
1449
|
+
requestPlugins,
|
1450
|
+
runOnEndCallbacks
|
1515
1451
|
};
|
1516
|
-
}
|
1452
|
+
};
|
1517
1453
|
function createObjectStash() {
|
1518
1454
|
const map = /* @__PURE__ */ new Map();
|
1519
1455
|
let nextID = 0;
|
@@ -1722,150 +1658,6 @@ var fs = require("fs");
|
|
1722
1658
|
var os = require("os");
|
1723
1659
|
var path = require("path");
|
1724
1660
|
var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
|
1725
|
-
var knownWindowsPackages = {
|
1726
|
-
"win32 arm64 LE": "esbuild-windows-arm64",
|
1727
|
-
"win32 ia32 LE": "esbuild-windows-32",
|
1728
|
-
"win32 x64 LE": "esbuild-windows-64"
|
1729
|
-
};
|
1730
|
-
var knownUnixlikePackages = {
|
1731
|
-
"android arm64 LE": "esbuild-android-arm64",
|
1732
|
-
"darwin arm64 LE": "esbuild-darwin-arm64",
|
1733
|
-
"darwin x64 LE": "esbuild-darwin-64",
|
1734
|
-
"freebsd arm64 LE": "esbuild-freebsd-arm64",
|
1735
|
-
"freebsd x64 LE": "esbuild-freebsd-64",
|
1736
|
-
"linux arm LE": "esbuild-linux-arm",
|
1737
|
-
"linux arm64 LE": "esbuild-linux-arm64",
|
1738
|
-
"linux ia32 LE": "esbuild-linux-32",
|
1739
|
-
"linux mips64el LE": "esbuild-linux-mips64le",
|
1740
|
-
"linux ppc64 LE": "esbuild-linux-ppc64le",
|
1741
|
-
"linux riscv64 LE": "esbuild-linux-riscv64",
|
1742
|
-
"linux s390x BE": "esbuild-linux-s390x",
|
1743
|
-
"linux x64 LE": "esbuild-linux-64",
|
1744
|
-
"linux loong64 LE": "@esbuild/linux-loong64",
|
1745
|
-
"netbsd x64 LE": "esbuild-netbsd-64",
|
1746
|
-
"openbsd x64 LE": "esbuild-openbsd-64",
|
1747
|
-
"sunos x64 LE": "esbuild-sunos-64"
|
1748
|
-
};
|
1749
|
-
var knownWebAssemblyFallbackPackages = {
|
1750
|
-
"android x64 LE": "esbuild-android-64"
|
1751
|
-
};
|
1752
|
-
function pkgAndSubpathForCurrentPlatform() {
|
1753
|
-
let pkg;
|
1754
|
-
let subpath;
|
1755
|
-
let isWASM = false;
|
1756
|
-
let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
|
1757
|
-
if (platformKey in knownWindowsPackages) {
|
1758
|
-
pkg = knownWindowsPackages[platformKey];
|
1759
|
-
subpath = "esbuild.exe";
|
1760
|
-
} else if (platformKey in knownUnixlikePackages) {
|
1761
|
-
pkg = knownUnixlikePackages[platformKey];
|
1762
|
-
subpath = "bin/esbuild";
|
1763
|
-
} else if (platformKey in knownWebAssemblyFallbackPackages) {
|
1764
|
-
pkg = knownWebAssemblyFallbackPackages[platformKey];
|
1765
|
-
subpath = "bin/esbuild";
|
1766
|
-
isWASM = true;
|
1767
|
-
} else {
|
1768
|
-
throw new Error(`Unsupported platform: ${platformKey}`);
|
1769
|
-
}
|
1770
|
-
return { pkg, subpath, isWASM };
|
1771
|
-
}
|
1772
|
-
function pkgForSomeOtherPlatform() {
|
1773
|
-
const libMainJS = require.resolve("esbuild");
|
1774
|
-
const nodeModulesDirectory = path.dirname(path.dirname(path.dirname(libMainJS)));
|
1775
|
-
if (path.basename(nodeModulesDirectory) === "node_modules") {
|
1776
|
-
for (const unixKey in knownUnixlikePackages) {
|
1777
|
-
try {
|
1778
|
-
const pkg = knownUnixlikePackages[unixKey];
|
1779
|
-
if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
|
1780
|
-
return pkg;
|
1781
|
-
} catch {
|
1782
|
-
}
|
1783
|
-
}
|
1784
|
-
for (const windowsKey in knownWindowsPackages) {
|
1785
|
-
try {
|
1786
|
-
const pkg = knownWindowsPackages[windowsKey];
|
1787
|
-
if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
|
1788
|
-
return pkg;
|
1789
|
-
} catch {
|
1790
|
-
}
|
1791
|
-
}
|
1792
|
-
}
|
1793
|
-
return null;
|
1794
|
-
}
|
1795
|
-
function downloadedBinPath(pkg, subpath) {
|
1796
|
-
const esbuildLibDir = path.dirname(require.resolve("esbuild"));
|
1797
|
-
return path.join(esbuildLibDir, `downloaded-${pkg}-${path.basename(subpath)}`);
|
1798
|
-
}
|
1799
|
-
function generateBinPath() {
|
1800
|
-
if (ESBUILD_BINARY_PATH) {
|
1801
|
-
return { binPath: ESBUILD_BINARY_PATH, isWASM: false };
|
1802
|
-
}
|
1803
|
-
const { pkg, subpath, isWASM } = pkgAndSubpathForCurrentPlatform();
|
1804
|
-
let binPath;
|
1805
|
-
try {
|
1806
|
-
binPath = require.resolve(`${pkg}/${subpath}`);
|
1807
|
-
} catch (e) {
|
1808
|
-
binPath = downloadedBinPath(pkg, subpath);
|
1809
|
-
if (!fs.existsSync(binPath)) {
|
1810
|
-
try {
|
1811
|
-
require.resolve(pkg);
|
1812
|
-
} catch {
|
1813
|
-
const otherPkg = pkgForSomeOtherPlatform();
|
1814
|
-
if (otherPkg) {
|
1815
|
-
throw new Error(`
|
1816
|
-
You installed esbuild on another platform than the one you're currently using.
|
1817
|
-
This won't work because esbuild is written with native code and needs to
|
1818
|
-
install a platform-specific binary executable.
|
1819
|
-
|
1820
|
-
Specifically the "${otherPkg}" package is present but this platform
|
1821
|
-
needs the "${pkg}" package instead. People often get into this
|
1822
|
-
situation by installing esbuild on Windows or macOS and copying "node_modules"
|
1823
|
-
into a Docker image that runs Linux, or by copying "node_modules" between
|
1824
|
-
Windows and WSL environments.
|
1825
|
-
|
1826
|
-
If you are installing with npm, you can try not copying the "node_modules"
|
1827
|
-
directory when you copy the files over, and running "npm ci" or "npm install"
|
1828
|
-
on the destination platform after the copy. Or you could consider using yarn
|
1829
|
-
instead which has built-in support for installing a package on multiple
|
1830
|
-
platforms simultaneously.
|
1831
|
-
|
1832
|
-
If you are installing with yarn, you can try listing both this platform and the
|
1833
|
-
other platform in your ".yarnrc.yml" file using the "supportedArchitectures"
|
1834
|
-
feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
|
1835
|
-
Keep in mind that this means multiple copies of esbuild will be present.
|
1836
|
-
|
1837
|
-
Another alternative is to use the "esbuild-wasm" package instead, which works
|
1838
|
-
the same way on all platforms. But it comes with a heavy performance cost and
|
1839
|
-
can sometimes be 10x slower than the "esbuild" package, so you may also not
|
1840
|
-
want to do that.
|
1841
|
-
`);
|
1842
|
-
}
|
1843
|
-
throw new Error(`The package "${pkg}" could not be found, and is needed by esbuild.
|
1844
|
-
|
1845
|
-
If you are installing esbuild with npm, make sure that you don't specify the
|
1846
|
-
"--no-optional" flag. The "optionalDependencies" package.json feature is used
|
1847
|
-
by esbuild to install the correct binary executable for your current platform.`);
|
1848
|
-
}
|
1849
|
-
throw e;
|
1850
|
-
}
|
1851
|
-
}
|
1852
|
-
let isYarnPnP = false;
|
1853
|
-
try {
|
1854
|
-
require("pnpapi");
|
1855
|
-
isYarnPnP = true;
|
1856
|
-
} catch (e) {
|
1857
|
-
}
|
1858
|
-
if (isYarnPnP) {
|
1859
|
-
const esbuildLibDir = path.dirname(require.resolve("esbuild"));
|
1860
|
-
const binTargetPath = path.join(esbuildLibDir, `pnpapi-${pkg}-${path.basename(subpath)}`);
|
1861
|
-
if (!fs.existsSync(binTargetPath)) {
|
1862
|
-
fs.copyFileSync(binPath, binTargetPath);
|
1863
|
-
fs.chmodSync(binTargetPath, 493);
|
1864
|
-
}
|
1865
|
-
return { binPath: binTargetPath, isWASM };
|
1866
|
-
}
|
1867
|
-
return { binPath, isWASM };
|
1868
|
-
}
|
1869
1661
|
|
1870
1662
|
// lib/npm/node.ts
|
1871
1663
|
var child_process = require("child_process");
|
@@ -1886,7 +1678,7 @@ if (process.env.ESBUILD_WORKER_THREADS !== "0") {
|
|
1886
1678
|
}
|
1887
1679
|
}
|
1888
1680
|
var _a;
|
1889
|
-
var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.15.
|
1681
|
+
var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.15.8";
|
1890
1682
|
var esbuildCommandAndArgs = () => {
|
1891
1683
|
if ((!ESBUILD_BINARY_PATH || true) && (path2.basename(__filename) !== "main.js" || path2.basename(__dirname) !== "lib")) {
|
1892
1684
|
throw new Error(
|
@@ -1897,12 +1689,13 @@ More information: The file containing the code for esbuild's JavaScript API (${_
|
|
1897
1689
|
}
|
1898
1690
|
if (true) {
|
1899
1691
|
return ["node", [path2.join(__dirname, "..", "bin", "esbuild")]];
|
1900
|
-
}
|
1901
|
-
const { binPath, isWASM } = generateBinPath();
|
1902
|
-
if (isWASM) {
|
1903
|
-
return ["node", [binPath]];
|
1904
1692
|
} else {
|
1905
|
-
|
1693
|
+
const { binPath, isWASM } = generateBinPath();
|
1694
|
+
if (isWASM) {
|
1695
|
+
return ["node", [binPath]];
|
1696
|
+
} else {
|
1697
|
+
return [binPath, []];
|
1698
|
+
}
|
1906
1699
|
}
|
1907
1700
|
};
|
1908
1701
|
var isTTY = () => tty.isatty(2);
|
@@ -1952,7 +1745,7 @@ var fsAsync = {
|
|
1952
1745
|
}
|
1953
1746
|
}
|
1954
1747
|
};
|
1955
|
-
var version = "0.15.
|
1748
|
+
var version = "0.15.8";
|
1956
1749
|
var build = (options) => ensureServiceIsRunning().build(options);
|
1957
1750
|
var serve = (serveOptions, buildOptions) => ensureServiceIsRunning().serve(serveOptions, buildOptions);
|
1958
1751
|
var transform = (input, options) => ensureServiceIsRunning().transform(input, options);
|
@@ -2063,7 +1856,7 @@ var ensureServiceIsRunning = () => {
|
|
2063
1856
|
if (longLivedService)
|
2064
1857
|
return longLivedService;
|
2065
1858
|
let [command, args] = esbuildCommandAndArgs();
|
2066
|
-
let child = child_process.spawn(command, args.concat(`--service=${"0.15.
|
1859
|
+
let child = child_process.spawn(command, args.concat(`--service=${"0.15.8"}`, "--ping"), {
|
2067
1860
|
windowsHide: true,
|
2068
1861
|
stdio: ["pipe", "pipe", "inherit"],
|
2069
1862
|
cwd: defaultWD
|
@@ -2177,7 +1970,7 @@ var runServiceSync = (callback) => {
|
|
2177
1970
|
esbuild: node_exports
|
2178
1971
|
});
|
2179
1972
|
callback(service);
|
2180
|
-
let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.15.
|
1973
|
+
let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.15.8"}`), {
|
2181
1974
|
cwd: defaultWD,
|
2182
1975
|
windowsHide: true,
|
2183
1976
|
input: stdin,
|
@@ -2193,7 +1986,7 @@ var workerThreadService = null;
|
|
2193
1986
|
var startWorkerThreadService = (worker_threads2) => {
|
2194
1987
|
let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();
|
2195
1988
|
let worker = new worker_threads2.Worker(__filename, {
|
2196
|
-
workerData: { workerPort, defaultWD, esbuildVersion: "0.15.
|
1989
|
+
workerData: { workerPort, defaultWD, esbuildVersion: "0.15.8" },
|
2197
1990
|
transferList: [workerPort],
|
2198
1991
|
execArgv: []
|
2199
1992
|
});
|