babel-plugin-saykit 0.2.0 → 0.4.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/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  > Babel plugin for [SayKit](https://saykit.js.org).
4
4
 
5
+ [![Coverage](https://codecov.io/gh/k0d13/saykit/graph/badge.svg?flag=plugin-babel)](https://codecov.io/gh/k0d13/saykit?flags%5B0%5D=plugin-babel)
6
+
5
7
  Use this for Next.js (`.babelrc`), React Native, Expo, Metro, or any Babel-driven pipeline. For Vite, Rollup, Webpack, esbuild, and similar bundlers, use [`unplugin-saykit`](https://github.com/k0d13/saykit/tree/main/packages/plugin-unplugin) instead.
6
8
 
7
9
  ## Install
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  let node_fs = require("node:fs");
2
2
  let node_path = require("node:path");
3
3
  let _babel_core = require("@babel/core");
4
+ let _saykit_config_features_catalogue = require("@saykit/config/features/catalogue");
4
5
  let _saykit_config_features_loader = require("@saykit/config/features/loader");
5
- let _saykit_config_features_messages = require("@saykit/config/features/messages");
6
6
  //#region src/index.ts
7
7
  var src_default = (api) => {
8
8
  const config = (0, _saykit_config_features_loader.resolveConfig)();
@@ -25,11 +25,18 @@ var src_default = (api) => {
25
25
  if (!bucket) return;
26
26
  const specifier = path.node.specifiers.find((s) => s.type === "ImportDefaultSpecifier");
27
27
  if (!specifier) throw path.buildCodeFrameError("SayKit inline imports require a default import");
28
- const content = (0, node_fs.readFileSync)(id, "utf8");
29
- try {
30
- api.addExternalDependency(id_);
28
+ const { sources } = (0, _saykit_config_features_catalogue.resolveCatalogueSources)(config, bucket, id);
29
+ const contents = sources.map((source) => {
30
+ try {
31
+ return (0, node_fs.readFileSync)(source, "utf8");
32
+ } catch {
33
+ return "";
34
+ }
35
+ });
36
+ for (const source of sources) try {
37
+ api.addExternalDependency(source);
31
38
  } catch {}
32
- const entries = bucket.formatter.parse(content).map((m) => [m.id || (0, _saykit_config_features_messages.generateHash)(m.message, m.context), m.translation || m.message]);
39
+ const entries = Object.entries((0, _saykit_config_features_catalogue.assembleCatalogueRecord)(bucket, contents));
33
40
  path.replaceWith(_babel_core.types.variableDeclaration("const", [_babel_core.types.variableDeclarator(_babel_core.types.identifier(specifier.local.name), _babel_core.types.objectExpression(entries.map(([key, value]) => _babel_core.types.objectProperty(_babel_core.types.stringLiteral(key), _babel_core.types.stringLiteral(value)))))]));
34
41
  } }
35
42
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babel-plugin-saykit",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Babel plugin for SayKit",
5
5
  "keywords": [
6
6
  "i18n",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@babel/core": "^7.29.7",
40
- "@saykit/config": "^0.2.0"
40
+ "@saykit/config": "^0.4.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/babel__core": "^7.20.5"