MCPcopy Create free account
hub / github.com/BYVoid/OpenCC / patchConfigPaths

Function patchConfigPaths

node/opencc.js:181–206  ·  view source on GitHub ↗

* Patch all relative paths in a config JSON object to absolute paths. * * - segmentation resources + __plugin_library → jieba package * - conversion_chain dict files → main opencc package assets * * @param {Object} config - Parsed config JSON object (modified in-place). * @param {Object} jieba

(config, jieba, mainAssetsDir)

Source from the content-addressed store, hash-verified

179 * @param {string} mainAssetsDir - Main opencc package assets directory.
180 */
181function patchConfigPaths(config, jieba, mainAssetsDir) {
182 // Inject explicit plugin library path (skips dlopen search in C++)
183 if (jieba && config.segmentation) {
184 config.segmentation.__plugin_library = jieba.pluginLibrary;
185 // Absolutify segmentation resource paths (dict_path, model_path, etc.)
186 if (config.segmentation.resources) {
187 const res = config.segmentation.resources;
188 for (const key of Object.keys(res)) {
189 if (!path.isAbsolute(res[key])) {
190 res[key] = path.join(jieba.dataDir, res[key]);
191 }
192 }
193 }
194 }
195 // Absolutify normalization and conversion_chain dict file paths
196 if (Array.isArray(config.normalization)) {
197 for (const step of config.normalization) {
198 patchDictPaths(step.dict, mainAssetsDir);
199 }
200 }
201 if (Array.isArray(config.conversion_chain)) {
202 for (const step of config.conversion_chain) {
203 patchDictPaths(step.dict, mainAssetsDir);
204 }
205 }
206}
207
208function resolveJiebaConfigPath(config, jieba) {
209 if (!jieba || isAbsolutePath(config)) {

Callers 1

opencc.jsFile · 0.85

Calls 3

patchDictPathsFunction · 0.85
keysMethod · 0.80
joinMethod · 0.45

Tested by

no test coverage detected