Skip to content

Need an option to download ICU files even if we're not in small-icu situation #77

Description

@TBG-FR

Hello there !

Issue summary

I can't get an environment in small-icu without pain, and without a such environment, I can't get the files needed to switch to full-icu in another app

Proposal

Could we have an option to still get icudtxxy.dat files downloaded into node-modules/full-icu, even if we are not in small-icu and it will probably be useless ?

Details

I'm facing issues with pkg , that allows to build binaries. It looks like that pkg is built with small-icu, and that causes issues in my app. However, to give the right icu files (i.e. icudt70l.dat), I need to get them, and full-icu won't let me, because the original environment/node isn't in small-icu (Note: Your node was not compiled with the ‘small-icu’ case, so the ICU data is not customizable through this script. Exitting.)

However, since Node is now built in full-icu, I can't get a small-icu, I spent many hours trying, without success 🤯
The icu4c version I need isn't available on npm, and I don't know what to do with Github releases to get the .dat files...
And full-icu seems to be my savior here, it knows how to handle all of these !

Here's a basic example (index.js)

const icu = require('full-icu');
console.log(icu);

const dateKO = new Date('2022-08-14').toLocaleDateString('ko-KR', { day: 'numeric', month: 'short', year: 'numeric' });
console.log(dateKO);

const dateFR = new Date('2022-08-14').toLocaleDateString('fr-FR', { day: 'numeric', month: 'short', year: 'numeric' });
console.log(dateFR);

If I run it inside a node docker (my usual dev environment), I get

{
  nodever: '14.19.1',
  node_maj: '14',
  node_min: '19',
  icu_small: false,
  icuver: '70.1',
  icumaj: '70',
  icuend: 'l',
  icupkg: 'icu4c-data@70l',
  icudat: 'icudt70l.dat',
  haveDat: [Function: haveDat],
  datPath: [Function: datPath]
}
2022 8 14
14 août 2022

But once I package it, I get

{
  nodever: '14.20.0',
  node_maj: '14',
  node_min: '20',
  icu_small: true,
  icuver: '70.1',
  icumaj: '70',
  icuend: 'l',
  icupkg: 'icu4c-data@70l',
  icudat: 'icudt70l.dat',
  haveDat: [Function: haveDat],
  datPath: [Function: datPath]
}
Aug 14, 2022
Aug 14, 2022

Many thanks in advance ! 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions