{"library":"sails-build-dictionary","title":"Sails Build Dictionary","description":"sails-build-dictionary is a utility package designed to recursively build a dictionary (plain JavaScript object) of modules from specified directories, leveraging the `include-all` library. It was a foundational component for older versions of the Sails.js framework (prior to v1.0), primarily used for automatically loading application components like models, controllers, and services by convention into a structured object accessible within the Sails application instance. The package's latest version is 0.10.1, with its last publication dating back 12 years (as of March 2014). Since Sails v1.0, this module has been officially deprecated, with the recommendation that developers directly use `include-all@1.x.x` for similar functionality. Consequently, `sails-build-dictionary` is no longer actively maintained and does not receive updates, including security patches or compatibility adjustments for newer Node.js versions.","language":"javascript","status":"deprecated","last_verified":"Sun Apr 19","install":{"commands":["npm install sails-build-dictionary"],"cli":null},"imports":["const buildDictionary = require('sails-build-dictionary');"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const path = require('path');\nconst buildDictionary = require('sails-build-dictionary');\nconst fs = require('fs');\n\n// Create a dummy directory structure for demonstration\nconst appDir = path.join(__dirname, 'temp-app');\nconst modelsDir = path.join(appDir, 'api', 'models');\nconst controllersDir = path.join(appDir, 'api', 'controllers');\n\nfs.mkdirSync(modelsDir, { recursive: true });\nfs.mkdirSync(controllersDir, { recursive: true });\n\nfs.writeFileSync(path.join(modelsDir, 'User.js'), 'module.exports = { attributes: { name: \"string\" } };');\nfs.writeFileSync(path.join(modelsDir, 'Product.js'), 'module.exports = { attributes: { item: \"string\" } };');\nfs.writeFileSync(path.join(controllersDir, 'AuthController.js'), 'module.exports = { login: function() {} };');\n\nconsole.log('Building dictionary from temp-app/api/...');\n\nbuildDictionary.aggregate({ dirname: path.join(appDir, 'api') }, function (err, modules) {\n  if (err) {\n    console.error('Error building dictionary:', err);\n    return;\n  }\n  console.log('Successfully built dictionary:');\n  console.log(JSON.stringify(modules, null, 2));\n\n  // Expected output structure:\n  // {\n  //   \"models\": {\n  //     \"User\": { /* ... User module content ... */ },\n  //     \"Product\": { /* ... Product module content ... */ }\n  //   },\n  //   \"controllers\": {\n  //     \"Auth\": { /* ... AuthController module content ... */ }\n  //   }\n  // }\n\n  // Clean up dummy directories\n  fs.rmSync(appDir, { recursive: true, force: true });\n});","lang":"javascript","description":"This example demonstrates how to use `sails-build-dictionary` to recursively load JavaScript modules from a simulated Sails.js `api` directory structure into a nested dictionary object. It creates dummy model and controller files, then aggregates them into a single object.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}