{"id":42154,"library":"turbodepot-node","title":"TurboDepot","description":"TurboDepot is a general-purpose multi-storage library for Node.js (10.0.0) that integrates ORM, log management, user management, file operations, and caching into a single, centralized API. It is part of the TurboFramework ecosystem, designed to be cross-language (PHP, JS/TS, MySQL/MariaDB) with identical APIs across languages. Release cadence is irregular; major versions may introduce breaking changes. Key differentiators: single JSON configuration, automatic table/column creation, human-readable storage, and support for multiple isolated depot instances.","status":"active","version":"10.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/edertone/TurboDepot","tags":["javascript","general","purpose","orm","typescript"],"install":[{"cmd":"npm install turbodepot-node","lang":"bash","label":"npm"},{"cmd":"yarn add turbodepot-node","lang":"bash","label":"yarn"},{"cmd":"pnpm add turbodepot-node","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for base classes and utilities","package":"turbocommons","optional":false}],"imports":[{"note":"Package is ESM-only since v10. Use import syntax. CommonJS require is not supported.","wrong":"const FilesManager = require('turbodepot-node').FilesManager;","symbol":"FilesManager","correct":"import { FilesManager } from 'turbodepot-node';"},{"note":"Named export, not default export.","wrong":"import UsersManager from 'turbodepot-node';","symbol":"UsersManager","correct":"import { UsersManager } from 'turbodepot-node';"},{"note":"TypeScript types are included. No require or default import.","wrong":"","symbol":"LogsManager","correct":"import { LogsManager } from 'turbodepot-node';"}],"quickstart":{"code":"import { FilesManager } from 'turbodepot-node';\n\nconst filesManager = new FilesManager();\nfilesManager.mirrorDirectory('path/to/source', 'path/to/destination');\n\nimport { UsersManager } from 'turbodepot-node';\n\nconst usersManager = new UsersManager();\nconst user = usersManager.createUser({\n  login: 'admin',\n  password: 'secret123',\n  email: 'admin@example.com'\n});\nconsole.log('User created:', user);\n\nimport { OrmManager } from 'turbodepot-node';\n\nconst ormManager = new OrmManager();\nconst saved = ormManager.save({ name: 'test', value: 42 });\nconsole.log('Object saved:', saved);","lang":"typescript","description":"Demonstrates creating FilesManager, UsersManager, and OrmManager with ESM imports and TypeScript types."},"warnings":[{"fix":"Migrate from require() to import syntax. Use dynamic import() if needed.","message":"v10.0.0 dropped CommonJS support; package is now ESM-only.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Update imports to use named exports: import { ClassName } from 'turbodepot-node';","message":"v10.0.0 removed the default export; all classes are now named exports.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Ensure the JSON file path is correct or omit it to use defaults.","message":"Configuration via JSON file is optional but if provided, it must be accessible at runtime. No error is thrown if file not found, the library uses defaults silently.","severity":"gotcha","affected_versions":"*"},{"fix":"Grant ALTER/CREATE permissions to the database user or configure a separate schema.","message":"Automatic table/column creation may not be desired in production with strict permissions. The library assumes it has DDL privileges.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"search_vec":"'10.0.0':14 'across':50 'api':30,49 'automat':67 'break':60 'cach':25 'cadenc':53 'central':29 'chang':61 'configur':66 'creation':69 'cross':42 'cross-languag':41 'depot':79 'design':38 'differenti':63 'ecosystem':37 'file':22 'general':6,82 'general-purpos':5 'human':71 'human-read':70 'ident':48 'instanc':80 'integr':16 'introduc':59 'irregular':55 'isol':78 'javascript':81 'js/ts':45 'json':65 'key':62 'languag':43,51 'librari':11 'log':18 'major':56 'manag':19,21 'may':58 'multi':9 'multi-storag':8 'multipl':77 'mysql/mariadb':46 'node.js':13 'oper':23 'orm':17,84 'part':33 'php':44 'purpos':7,83 'readabl':72 'releas':52 'singl':28,64 'storag':10,73 'support':75 'table/column':68 'turbodepot':1,2 'turboframework':36 'typescript':85 'user':20 'version':57","created_at":"2026-06-04T18:55:52.814313+00:00","updated_at":"2026-06-04T18:55:52.814313+00:00","problems":[{"fix":"Use import { FilesManager } from 'turbodepot-node'; or add type: 'module' to package.json and use dynamic import.","cause":"Package is ESM-only, but code uses require().","error":"require is not defined in ES module scope"},{"fix":"Run: npm install turbodepot-node@latest","cause":"Package not installed or installation failed.","error":"Cannot find module 'turbodepot-node'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://turboframework.org/en/libs/turbodepot","github":"https://github.com/edertone/TurboDepot","docs":null,"changelog":null,"pypi":null,"npm":"turbodepot-node","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database","storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}