Commit Graph

65 Commits

Author SHA1 Message Date
Miroslav Bajtoš 6bf995c55b compiler: return a clone of instructions
When executor passes the instruction to loopback methods,
loopback modifies the data. Since we are loading the data using
`require` such changes affects also code that calls
`require` for one of the instructions files.

This change adds a deep clone step to prevent this issue.
2014-07-17 18:44:15 +02:00
Raymond Feng cb67fc4165 Merge tag 'v2.0.0-beta2'
2.0.0-beta2
2014-07-17 09:05:54 -07:00
Raymond Feng 85c40c635a Merge branch 'release/2.0.0-beta2' into production 2014-07-17 09:05:46 -07:00
Raymond Feng 9493aca34e Merge pull request #23 from strongloop/feature/fix-unit-tests
test: export Int32Array and DataView for browser
2014-07-17 09:03:13 -07:00
Miroslav Bajtoš e7250b6eac test: export Int32Array and DataView for browser
crypto-browserify uses Int32Array, which is not exposed on the VM
context in Node v0.10.
2014-07-17 10:05:08 +02:00
Miroslav Bajtoš 2bcf1f60aa Merge tag 'v2.0.0-beta2'
v2.0.0-beta2
2014-07-16 08:21:54 +02:00
Miroslav Bajtoš 431bdc9b18 Merge branch 'release/2.0.0-beta2' into production 2014-07-16 08:21:46 +02:00
Miroslav Bajtoš 53ca2f697a v2.0.0-beta2 2014-07-16 08:21:16 +02:00
Miroslav Bajtoš cfe5f40808 Merge pull request #19 from strongloop/feature/rename-models-to-models-config
Rename `models.json` to `model-config.json`
2014-07-15 20:46:47 +02:00
Miroslav Bajtoš 3129f6495c Rename `models.json` to `model-config.json`
The name `models.json` was potentially confusing since there are no
models defined in that file.
2014-07-15 11:09:39 +02:00
Miroslav Bajtoš 3522f117c0 Merge pull request #18 from strongloop/doc-changes
Doc changes
2014-07-09 07:39:02 +02:00
Rand McKinney 25704cf69a Remove non-API docs.
- Remove material that's in Confluence.
 - Change function name to boot()
 - Create header-node.md and header-browser.md
2014-07-09 07:36:45 +02:00
Miroslav Bajtoš 5e142c5188 Merge tag 'v2.0.0-beta1'
2.0.0-beta1
2014-06-26 14:56:34 +02:00
Miroslav Bajtoš fc18561cc7 Merge branch 'release/2.0.0-beta1' into production 2014-06-26 14:56:29 +02:00
Miroslav Bajtoš 5e23db50a5 2.0.0-beta1 2014-06-26 14:56:02 +02:00
Miroslav Bajtoš f222be477e Merge pull request #17 from strongloop/feature/fix-executor
Fix references to loopback; fix jshint warnings
2014-06-26 14:54:42 +02:00
Miroslav Bajtoš 92455f569c test: fix jshint warnings 2014-06-26 14:54:07 +02:00
Miroslav Bajtoš a3c347d073 compiler: fix references to loopback 2014-06-26 14:53:47 +02:00
Miroslav Bajtoš d5cd0a3b50 Merge branch 'master' into 2.0
Conflicts:
	README.md
	docs/configuration.md
	lib/executor.js
	package.json

Changes in the docs were merged manually and updated to correctly
describe the 2.x layout.
2014-06-26 14:40:24 +02:00
Miroslav Bajtoš af9c4d8cc6 Merge tag 'v1.1.0'
1.1.0
2014-06-26 11:00:26 +02:00
Miroslav Bajtoš c70b8ac413 Merge branch 'release/1.1.0' into production 2014-06-26 11:00:19 +02:00
Miroslav Bajtoš edd41be02f 1.1.0 2014-06-26 10:59:49 +02:00
Miroslav Bajtoš b9b338ddde Merge pull request #15 from strongloop/feature/remove-last-require-loopback
executor: remove direct reference to loopback
2014-06-26 10:58:01 +02:00
Miroslav Bajtoš 18e1b3b4f5 Merge pull request #14 from strongloop/feature/add-more-meat-to-readme
docs: move hand-written content to README.md
2014-06-26 10:31:26 +02:00
Miroslav Bajtoš 961e04b379 docs: move hand-written content to README.md 2014-06-26 10:31:05 +02:00
Miroslav Bajtoš 2cc5a88699 Merge pull request #13 from strongloop/rename-app-json-to-config-json
Rename `app.json` to `config.json`
2014-06-26 10:28:44 +02:00
Miroslav Bajtoš 230360ef28 executor: remove direct reference to loopback
Modify the executor to access the loopback object via `app.loopback`.

Fall back to `require('loopback')` only when `app.loopback` is not set
(loopback versions before 1.9).
2014-06-25 14:12:53 +02:00
Miroslav Bajtoš ac16d92a8b Rename `app.json` to `config.json`
The new loopback project layout adds a concept of components like
'rest server' and 'isomorphic client', each component having its own set
of boot files. The name `app.json` is confusing, since it is configuring
a component, not the app (which is the whole project).
2014-06-25 08:18:04 +02:00
Rand McKinney 4b5f57a7df Update link to doc 2014-06-24 17:00:54 -07:00
Miroslav Bajtoš 0a0a6f5d01 Merge branch 'master' into 2.0
Conflicts:
	index.js
	package.json
2014-06-16 19:49:45 +02:00
Miroslav Bajtoš 2eab6bf32a Merge pull request #11 from strongloop/model-boot-improvements
[2.0] Model boot improvements
2014-06-16 19:47:10 +02:00
Miroslav Bajtoš 57e96b0d38 compiler: Sort models topologically
Sort models topologically using Base->Model as edges. This way
the base models are defined before the models extending them.
2014-06-16 19:45:34 +02:00
Miroslav Bajtoš a0d5dafd99 Merge pull request #12 from strongloop/feature/drop-peer-dep-on-loopback
Drop peer dep on loopback; add a runtime check
2014-06-16 19:43:24 +02:00
Miroslav Bajtoš ef72efa70b executor: Split model boot into two phases
In the first phase, all models are defined.

In the second phase, models are configured, attached to data-sources
and exposed on the app object.

This way when the `attached` Model event is emitted, all models are
already defined and thus a listener can get reference of any other
model used in the app.
2014-06-16 16:41:12 +02:00
Miroslav Bajtoš b887b33b57 compiler: Move model-sources cfg to models.json
Remove `modelSources` option from `boot()` options, add `_meta.sources`
to `models.json`.

```json
{
  "_meta": {
    "sources": ["./custom/path/to/models"]
  },
  "Car": {
    "dataSource": "db"
  }
}
```
2014-06-16 16:41:12 +02:00
Miroslav Bajtoš a9a401ad56 package: Bump up the version to 2.0.0-dev 2014-06-16 16:38:28 +02:00
Miroslav Bajtoš bad5b60623 package: Fix repository url 2014-06-16 15:27:54 +02:00
Miroslav Bajtoš c3a9a09941 Drop peer dep on loopback; add a runtime check
Replace peerDependency with a run-time check based on
`app.loopback.version`.
2014-06-16 15:23:32 +02:00
Miroslav Bajtoš e5e8f29d30 Wrap too long lines
... introduced by the previous commit.
2014-06-16 15:15:36 +02:00
Miroslav Bajtoš e22ecd39ce Merge pull request #10 from strongloop/auto-require-model-definitions
[2.0] Rework model configuration
2014-06-14 09:37:21 +02:00
Miroslav Bajtoš a204fdc1c9 Rework model configuration
Rework the way how models are configured, the goal is to allow
loopback-boot to automatically determine the correct order
of the model definitions to ensure base models are defined
before they are extended.

 1. The model .js file no longer creates the model, it exports
 a config function instead:

  ```js
  module.exports = function(Car, Base) {
    // Car is the model constructor
    // Base is the parent model (e.g. loopback.PersistedModel)

    Car.prototype.honk = function(duration, cb) {
      // make some noise for `duration` seconds
      cb();
    };
  };
  ```

 2. The model is created by loopback-boot from model .json file.
  The .js file must have the same base file name.

 3. The `boot()` function has a new parameter `modelSources` to
  specify the list of directories where to look for model definitions.
  The parameter defaults to `['./models']`.

As a side effect, only models configured in `models.json` and their
base clases are defined. This should keep the size of the browserified
bundle small, because unused models are not included.
2014-06-13 19:40:52 +02:00
Miroslav Bajtoš fccc6e147a Merge pull request #9 from strongloop/configure-models
Configure models
2014-06-10 10:27:19 +02:00
Miroslav Bajtoš 43993bf975 Remove auto-attach.
Breaking change.

The bootstrapper no longer calls `loopback.autoAttach`. Applications
have to explicitly configure datasources for their models
via `models.json`.
2014-06-10 09:24:16 +02:00
Miroslav Bajtoš 47b5bb5f5c Change models.json to configure existing models
Breaking change.

In the new 2.x project layout, definition of loopback Models is out of
scope of the boot process. The bootstrapper only configures existing
models - attaches them to a dataSource and the app object.
2014-06-10 09:21:15 +02:00
crandmck 18bc572c20 Add disclaimer to JSDoc and small correction. 2014-06-06 10:11:46 -07:00
Miroslav Bajtoš 7c255f089e Merge tag 'v1.0.0'
v1.0.0
2014-06-05 09:15:43 +02:00
Miroslav Bajtoš e0ccb67886 Merge branch 'release/1.0.0' into production 2014-06-05 09:15:31 +02:00
Miroslav Bajtoš 33261d33f1 README: add short usage info 2014-06-05 09:14:13 +02:00
Miroslav Bajtoš 0647c95e99 Merge pull request #6 from strongloop/feature/browserify-support
Implement compileToBrowserify and bootBrowserApp
2014-06-04 08:36:32 +02:00
Miroslav Bajtoš 5f85971d11 Implement compileToBrowserify and bootBrowserApp
Hide `compile` and `execute` and provide a better API for browserified
applications:

 - `boot.compileToBrowserify(options, bundler)` calls `compile` under
   the hood and adds all instructions and scripts to the bundler.

 - `bootBrowserApp(app)` is exported by loopback-boot when the module
   is loaded in a browser, the function loads the instructions as
   bundled by `compileToBrowserify`.

This new API hides all implementation details from the user and makes
it easy to add loopback-boot to any build script.
2014-06-03 14:08:34 +02:00