123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * Module dependencies
- */
- var Schema = require('./waterline-schema/schema');
- var ForeignKeys = require('./waterline-schema/foreignKeys');
- var JoinTables = require('./waterline-schema/joinTables');
- var References = require('./waterline-schema/references');
- var Checks = require('./waterline-schema/checks');
- // ██╗ ██╗ █████╗ ████████╗███████╗██████╗ ██╗ ██╗███╗ ██╗███████╗
- // ██║ ██║██╔══██╗╚══██╔══╝██╔════╝██╔══██╗██║ ██║████╗ ██║██╔════╝
- // ██║ █╗ ██║███████║ ██║ █████╗ ██████╔╝██║ ██║██╔██╗ ██║█████╗
- // ██║███╗██║██╔══██║ ██║ ██╔══╝ ██╔══██╗██║ ██║██║╚██╗██║██╔══╝
- // ╚███╔███╔╝██║ ██║ ██║ ███████╗██║ ██║███████╗██║██║ ╚████║███████╗
- // ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝
- //
- // ███████╗ ██████╗██╗ ██╗███████╗███╗ ███╗ █████╗
- // ██╔════╝██╔════╝██║ ██║██╔════╝████╗ ████║██╔══██╗
- // ███████╗██║ ███████║█████╗ ██╔████╔██║███████║
- // ╚════██║██║ ██╔══██║██╔══╝ ██║╚██╔╝██║██╔══██║
- // ███████║╚██████╗██║ ██║███████╗██║ ╚═╝ ██║██║ ██║
- // ╚══════╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝
- //
- // Used to build a Waterline Schema object from a set of loaded collections.
- // It should normalize attribute definitions and expand out associations. This
- // module is used internally to Waterline and provides no benefits outside of
- // it. The expanded properties added to associations are not appropriate for use
- // directly inside of your Waterline models.
- module.exports = function WaterlineSchema(collections, modelDefaults) {
- var schema = {};
- // Transform Collections into a basic schema
- schema = Schema(collections);
- // Map out and expand foreign keys on the collection schema attributes
- ForeignKeys(schema);
- // Build and map any generated join tables on the collection schema
- JoinTables(schema, modelDefaults);
- // Add References for Has Many Keys
- References(schema);
- // Run any final sanity checks on the schema
- Checks(schema);
- return schema;
- };
|