lightningcss@1.26.0.patch 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. diff --git a/node/index.js b/node/index.js
  2. index a9f2f6d5f3394329fcf8bc06af549030c01167a5..b92cc804adb694dbb17ee48368f13a03dd729267 100644
  3. --- a/node/index.js
  4. +++ b/node/index.js
  5. @@ -1,27 +1,32 @@
  6. -let parts = [process.platform, process.arch];
  7. -if (process.platform === 'linux') {
  8. - const { MUSL, family } = require('detect-libc');
  9. - if (family === MUSL) {
  10. - parts.push('musl');
  11. - } else if (process.arch === 'arm') {
  12. - parts.push('gnueabihf');
  13. - } else {
  14. - parts.push('gnu');
  15. - }
  16. -} else if (process.platform === 'win32') {
  17. - parts.push('msvc');
  18. -}
  19. +function loadPackage() {
  20. + if (process.platform === "linux") {
  21. + let { MUSL, GLIBC, family, familySync } = require("detect-libc");
  22. + // Bun polyfills `detect-libc` in compiled binaries. We rely on
  23. + // detect-libc@1.0.3 but the polyfilled version is 2.x. In detect-libc@2x
  24. + // there is a `familySync` function that we can use instead.
  25. + if (typeof familySync === 'function') family = familySync()
  26. -if (process.env.CSS_TRANSFORMER_WASM) {
  27. - module.exports = require(`../pkg`);
  28. -} else {
  29. - try {
  30. - module.exports = require(`lightningcss-${parts.join('-')}`);
  31. - } catch (err) {
  32. - module.exports = require(`../lightningcss.${parts.join('-')}.node`);
  33. + if (family === MUSL) {
  34. + return require(`lightningcss-${process.platform}-${process.arch}-musl`);
  35. + } else if (family === GLIBC) {
  36. + if (process.arch === "arm") {
  37. + return require(`lightningcss-${process.platform}-${process.arch}-gnueabihf`);
  38. + } else {
  39. + return require(`lightningcss-${process.platform}-${process.arch}-gnu`);
  40. + }
  41. + } else {
  42. + throw new Error(
  43. + `Unsupported libc on: ${process.platform}-${process.arch}`
  44. + );
  45. + }
  46. + } else if (process.platform === "win32") {
  47. + return require(`lightningcss-${process.platform}-${process.arch}-msvc`);
  48. + } else {
  49. + return require(`lightningcss-${process.platform}-${process.arch}`);
  50. }
  51. }
  52. -module.exports.browserslistToTargets = require('./browserslistToTargets');
  53. -module.exports.composeVisitors = require('./composeVisitors');
  54. -module.exports.Features = require('./flags').Features;
  55. +module.exports = loadPackage();
  56. +module.exports.browserslistToTargets = require("./browserslistToTargets");
  57. +module.exports.composeVisitors = require("./composeVisitors");
  58. +module.exports.Features = require("./flags").Features;