- Fixture
An instance of a single fixture which represents a single database record.
- Model
An instance of a single model which represents an instance of a Fixture, which in turn represents a record in the database.
- Resolver
Fixture resolver for resolving table columns and configured relationships. This supports polymorphism which is configurable via [ZeroOptions].
- Table
An instance of an individual database table.
- Zero
Entry class instance for Factory Zero.
- seed(knex, options) ⇒
Promise Convenience method that runs Zero.seed() without having to instantiate the Zero module.
- toJson(instance) ⇒
object Converts a Model instance to a plain object.
- clone(object) ⇒
object Clones an object, including getters/setters and class prototypes.
- filterKeys(object, predicate) ⇒
object Filters an object via a predicate over the object's keys.
- filterValues(object, predicate) ⇒
object Filters an object via a predicate over the object's values.
- ZeroOptions :
object Factory Zero options schema.
- Loader
- .loadFixtures(options) ⇒
object - .getFixtureFiles(options) ⇒
Array.<string> - .mapFixtures(options, files) ⇒
object - .createFixtureMapping(options, file) ⇒
Array.<(string|object)> - .importFixture(path, ext) ⇒
Promise|object
- .loadFixtures(options) ⇒
Loads all fixture files into memory based on configuration defined in Zero's options.
Kind: static method of Loader
Returns: object - - All fixtures loaded from disk.
| Param | Type | Description |
|---|---|---|
| options | object |
Zero options. |
Retrieves the fixture file names from the configured directory.
Kind: static method of Loader
Returns: Array.<string> - - Collection of fixture file names.
| Param | Type | Description |
|---|---|---|
| options | object |
Zero options. |
Maps fixture files into an object.
Kind: static method of Loader
Returns: object - - Mapped fixtures into an object.
| Param | Type | Description |
|---|---|---|
| options | object |
Zero options. |
| files | Array.<object> |
Retrieved fixture files. |
Imports an individual fixture file.
Kind: static method of Loader
Returns: Array.<(string|object)> - - Imported fixture file.
| Param | Type | Description |
|---|---|---|
| options | object |
Zero options. |
| file | object |
Individual file to import and name, |
Imports the fixture file via import or require, depending on the type.
Kind: static method of Loader
Returns: Promise | object - - Imported/required fixture file.
| Param | Type | Description |
|---|---|---|
| path | string |
Directory path to the fixtures directory. |
| ext | string |
Fixture file type extension. |
- SchemaInfo
- .getTablesInfo(db, fixtures) ⇒
Array.<object> - .queryInfoSchema(db, name) ⇒
Array.<(string|object)> - .mapColumns(columns) ⇒
Array.<(string|object)>
- .getTablesInfo(db, fixtures) ⇒
Fetches all information schema objects related to all fixture files.
Kind: static method of SchemaInfo
Returns: Array.<object> - - Information schemas related to all fixture files.
| Param | Type | Description |
|---|---|---|
| db | Knex |
Knex DB instance. |
| fixtures | Array.<object> |
All fixtures loaded from files. |
Fetches a single information schema table object.
Kind: static method of SchemaInfo
Returns: Array.<(string|object)> - - Key/value of the fetched information schema.
| Param | Type | Description |
|---|---|---|
| db | Knex |
Knex DB instance. |
| name | stirng |
Information schema table name to fetch. |
Mapping method for converting information schema query results to an array.
Kind: static method of SchemaInfo
Returns: Array.<(string|object)> - - Key/value of the fetched information schema.
| Param | Type | Description |
|---|---|---|
| columns | object |
Information schema table columns. |
An instance of a single fixture which represents a single database record.
Kind: global class
| Param | Type | Description |
|---|---|---|
| name | string |
Name of the fixture. |
| data | object |
Fixture data. |
Resolves all the relations on the fixture.
Kind: instance method of Fixture
| Param | Type | Description |
|---|---|---|
| relationMap | Map.<string, object> |
Collection of all unresolved relations. |
| insertMap | Map.<string, object> |
Collection of all insertable fixtures. |
Sets data onto the related columns.
Kind: instance method of Fixture
| Param | Type | Description |
|---|---|---|
| model | Model |
Instance of the current model. |
| relations | object |
Collection of relations to resolve. |
| insertMap | Map.<string, object> |
Collection of all insertable fixtures. |
An instance of a single model which represents an instance of a Fixture, which in turn represents a record in the database.
| Param | Type | Description |
|---|---|---|
| options | ZeroOptions |
Configuration for Factory Zero. |
| table | Table |
Table instance defined for this Model. |
| data | object |
Data object to bind to this instance. |
Fixture resolver for resolving table columns and configured relationships. This supports polymorphism which is configurable via [ZeroOptions].
Kind: global class
- Resolver
- new Resolver(options)
- .fixtures() ⇒
Map.<string, object> - .fixtureTables() ⇒
Array.<Fixture> - .fixtureModels(table) ⇒
Array.<Fixture> - .relations(model) ⇒
object - .applyPolymorphism(model, relations) ⇒
void
| Param | Type | Description |
|---|---|---|
| options | ZeroOptions |
Configuration for Factory Zero. |
Resolves relations and returns a map of all insertable relations.
Kind: instance method of Resolver
Returns: Map.<string, object> - - All fixtures with relations resolved.
resolver.fixtureTables() ⇒ Array.<Fixture>
Fetches a new instance of Table for each fixture file.
Kind: instance method of Resolver
Returns: Array.<Fixture> - - Unresolved instances of Fixture.
resolver.fixtureModels(table) ⇒ Array.<Fixture>
Fetches a new instance of Model for each instance of Table.
Kind: instance method of Resolver
Returns: Array.<Fixture> - - Unresolved instances of Fixture.
| Param | Type | Description |
|---|---|---|
| table | Table |
Table instance to resolve relations against. |
Searches the given fixture model for possible relatable columns.
Kind: instance method of Resolver
Returns: object - - Collection of relations to resolve later.
| Param | Type | Description |
|---|---|---|
| model | Model |
Model instance to search for relations on. |
Applies polymorphism to columns that can be polymorphically related.
Kind: instance method of Resolver
| Param | Type | Description |
|---|---|---|
| model | Model |
Model instance to search for polymorphic relations on. |
| relations | object |
Collection of relations to check for polymorphism on. |
An instance of an individual database table.
Kind: global class
- Table
- new Table(options, tableName, fixture)
- .pk ⇒
object - .columns ⇒
object - .fixtures ⇒
Array.<Fixture> - .configure(model, options) ⇒
object
| Param | Type | Description |
|---|---|---|
| options | ZeroOptions |
Configuration for Factory Zero. |
| tableName | string |
Name of the table on this instance. |
| fixture | Fixture |
Fixture instance to bind onto this table instance. |
Primary key configuration for this Table.
Kind: instance property of Table
Returns: object - - Primary key options for this Table.
All columns defined on the database table this instance refers to.
Kind: instance property of Table
Returns: object - - Database columns.
table.fixtures ⇒ Array.<Fixture>
A collection of Fixture instances relating to this table instance.
Kind: instance property of Table
Returns: Array.<Fixture> - - Collection of Fixture instances.
Creates an options object with default values.
Kind: instance method of Table
Returns: object - - Defaulted options.
| Param | Type | Description |
|---|---|---|
| model | Model |
Model instance to build the options against. |
| options | ZeroOptions |
Configuration for Factory Zero. |
Entry class instance for Factory Zero.
Kind: global class
- Zero
- new Zero(connection, options)
- .seed() ⇒
Promise - .setup() ⇒
void - .clear() ⇒
Promise - .insert(fixtures) ⇒
Promise - .fixtures() ⇒
Map.<string, object> - .createKnex(kx) ⇒
Knex - .isKnex(kx) ⇒
boolean
| Param | Type | Description |
|---|---|---|
| connection | object | Knex |
Database connection options for this Knex instance. |
| options | ZeroOptions |
Configuration for Factory Zero. |
Seeding method that runs all the necessary queries to seed all available fixtures into the configured database.
Kind: instance method of Zero
Returns: Promise - - A chained Promise instance of all queries on this instance.
Sets up Factory Zero for seeding by loading fixtures and fetching schema information via information_schema.
Kind: instance method of Zero
Clears data from all tables found in the fixtures directory.
Kind: instance method of Zero
Returns: Promise - - A collection of all DELETE queries.
Insert all fixtures into the configured database with all fixtures found in the fixtures directory.
Kind: instance method of Zero
Returns: Promise - - A collection of all INSERT queries.
| Param | Type | Description |
|---|---|---|
| fixtures | Map.<string, object> |
All fixtures to insert into the database. |
Fetches all fixtures with all relations resolved via lib/Resolver.
Kind: instance method of Zero
Returns: Map.<string, object> - - A collection of all fixtures ready to insert.
Creates an individual Knex database instance.
Kind: instance method of Zero
Returns: Knex - - Knex database instance.
| Param | Type | Description |
|---|---|---|
| kx | object | Knex |
Knex connection instance. |
Checks if [kx] is an instance of Knex.
Kind: instance method of Zero
Returns: boolean - - Is [kx] an instance of Knex?
| Param | Type | Description |
|---|---|---|
| kx | any |
Any value that might be an instance of Knex. |
Convenience method that runs Zero.seed() without having to instantiate the Zero module.
Kind: global function
Returns: Promise - - Resolved query.
| Param | Type | Description |
|---|---|---|
| knex | Knex | object |
Knex instance or a knex connection object. |
| options | ZeroOptions |
Factory Zero options. |
Converts a Model instance to a plain object.
Kind: global function
Returns: object - - Plain object of the given Model instance.
| Param | Type | Description |
|---|---|---|
| instance | Model |
Instance of a Model. |
Clones an object, including getters/setters and class prototypes.
Kind: global function
Returns: object - - Cloned object.
| Param | Type | Description |
|---|---|---|
| object | object |
Data object to clone. |
Filters an object via a predicate over the object's keys.
Kind: global function
Returns: object - - Filtered object.
| Param | Type | Description |
|---|---|---|
| object | object |
Object data to filter over. |
| predicate | function |
Test function. |
Filters an object via a predicate over the object's values.
Kind: global function
Returns: object - - Filtered object.
| Param | Type | Description |
|---|---|---|
| object | object |
Object data to filter over. |
| predicate | function |
Test function. |
Factory Zero options schema.
Kind: global typedef
Properties
| Name | Type | Description |
|---|---|---|
| extensions | Array.<string> |
Fixture file extensions to search for. |
| snaked | boolean |
Should file names be serialised in snake case? |
| pk | string | object |
Default primary key for all models. |
| [col] | string |
Primary key column name. |
| [type] | string |
Primary key column type. |
| directory | string |
Path to fixture files. |
| keys | object |
Configurable keys for storing options relating to this program. |
| keys.model | string |
Key to use for model options within the fixtures. |
| suffixes | object |
Polymorphic column suffixes. |
| suffixes.type | string |
Suffix used for the polymorphic type column. |
| suffixes.id | string |
Suffix used for the polymorphic id column. |