Helper tool to use with Firewebkit Functions
• • •
• • •
Installation
npm i firewebkit-functions -S
yarn add firewebkit-functions
Usage
const { db } = require('firewebkit-functions');
Available Functions
db(table, opts)
const peopleTable = db('people');
peopleTable.filter({
age: { $gt: 21, $lt: 35 },
})
.sort({
age: 1
})
.query()
Query/Filter
The list of functions available from this are:
filter(<filter obj>)
[mutable] - uses same object as mongodb
projection(<projection obj>)
[mutable] - uses same object as mongodb
sort(<filter obj>)
[mutable] - uses same object as mongodb
aggregate(<arr>)
[mutable] - aggregate object same as mongodb
count(<obj>)
[mutable] - uses same object as mongodb
offset(<number>)
[mutable]
limit(<number>)
[mutable]
first()
[mutable] - returns first object (as object instead of array)
path(<string>)
[mutable] - (string) Type of result from JSONPath
pathType(<path options>
[mutable] – use db.PATH_TYPE
enum
original
- Get the original object/s
parent
- Get parent of found object/s
nodes
- Get matching nodes (for debugging)
paths
- Get matching paths (for debugging)
reset()
[mutable] – resets the database table reference because of mutable functions
query()
– queries the table with selected filter and other options. Returns array (or object if you used first()
)
Mutate Data Table
If you would need to use this table reference to update the data table, you will
need to provide token
(that you can obtain from Security/Tokens page)
const peopleTable = db('people', {
token: ACCESS_TOKEN,
})
remove(<obj/arr>)
– removes item/items from the data table. All items must contain _id
.
update(<obj/arr>)
– updates specified items. All items must contain _id
.
append(<obj/arr>)
– appends new items, If _id
is specified for an item, it updates that item.
appendOrUpdate(<obj/arr>)
– alias for append()
set(<obj>)
– sets object-based data table to new values.
If you want to update a single field for a record
update(<obj/arr>, { updateAvailableFieldsOnly: true })
set(<obj>, { updateAvailableFieldsOnly: true })
NOTE: Setting updateAvailableFieldsOnly
option will skip the form validation
snooze(ms)
setupDev(app, routes)
setupDev(app, [
{
path: '/api/*',
rewrites: {
'^/api/': '/',
},
logLevel: 'debug',
rewritePostBody: false,
},
])
runDev()
runDev(module.exports) // where module.exports is the main exported function
Run non-express function in dev (e.g, schedule)
License
Copyright (c) 2020-present Amrayn Web Services
https://firewebkit.com
https://amrayn.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.