# Introduction
This is the Pitcher Core package, a splitted version of @pitcher/vue-sdk which only includes business logic part.
The goal with this package is:
- provide a framework to speed up Vue.js development
- provide reusable code building blocks and best practices
@pitcher/core package includes:
- fireEvent function to handle Ti.App events easier
- different database functions such as query, contextQuery
- tools to handle instance related actions
- stores to keep instance specific information (files, categories, system) such as:
- custom state management solution instead of vuex
- re-usable utilities such as:
- search() - full-text search tool based on fuse.js (opens new window)
- uid()
- link()
- renderContext()
- contextExec
- PLATFORM
# Dependencies
@pitcher/core package simply depends 2 other packages. Make sure you have these packages installed in your project:
"@vue/composition-api": ">= 1.0.0-rc.1",
"vue": ">= 2.6.0"
# Installation
To install @pitcher/core package, simply run:
npm install @pitcher/core
# Usage
@pitcher/core package does not need to be initialized or anything similar. Basically just import the functions you need from the package and use e.g.
import { fireEvent } from '@pitcher/core'
fireEvent('TI_EVENT_NAME')
However, if you want to execute actions related to params you need to initialize some stuff before doing anything else.
# Initialization
# getParameters
To get params from Impact, you MUST use loadParams() in the entry point of your application. When you use loadParams() function, @pitcher/core injects window.getParameters function for Impact to be able to call the function and inject params.
After calling loadParams(), we can use the useParamsStore() function anywhere in the application.
WARNING
NOTE: ParamsStore is reactive, which means that if you mutate anything inside the store, it will be updated anywhere else.
# Example - usage with useParamsStore()
// App.vue
import { onMounted } from '@vue/composition-api'
import { loadParams, useParamsStore } from '@pitcher/core'
export default {
name: 'app',
setup() {
onMounted(async () => {
await loadParams()
// reactive
const paramsStore = useParamsStore()
console.log(paramsStore.state.Account.Id)
})
},
}
# Example - usage with useParams()
If you only need to use params and you don't need the store, you can use useParams() to get params only.
// App.vue
import { onMounted } from '@vue/composition-api'
import { loadParams, useParams } from '@pitcher/core'
export default {
name: 'app',
setup() {
onMounted(async () => {
await loadParams()
const params = useParams()
console.log(params.Account.Id)
})
},
}