An ArcGIS Online (AGO) item
is transformed into a template
that contains all of its defining information. If the item depends on other items, those items are also transformed into templates.
A Solution Item
can contain either
- a list of Item Templates
- a list of references to deployed items
When it contains Item Templates, it can be used for organizing and distributing Solutions, e.g., for displaying in a gallery of Solutions.
When a Solution is deployed into an organization, a new Solution is created that contains references to the items deployed into the organization; it serves as a table of contents for the deployment.
The API is divided into packages to make it easier to use just the parts that you want:
common
, which contains common helper functions for the other packagescreator
, which contains functions for transforming items into templatesdeployer
, which contains functions for deploying item templates into items in a destination organizationfeature-layer
, which contains functions for Feature Service itemssimple-types
, which contains functions for the simpler item types Dashboard, Form, Web Map, Web Mapping Application, and Workforce Projectstorymap
, which contains functions for Storymap itemsviewer
, which contains functions to support displaying Solution items
The API documentation is published at https://esri.github.io/solution.js/ (source code).
Currently, the item types that can be converted into a template are:
- Dashboard
- Feature Collection
- Feature Service (Hosted only and Hosted Feature Layer Views)
- Web Map
- Web Mapping Application
Planned item types are:
- ArcGIS Pro Add In
- Code Attachment
- Code Sample
- Desktop Add In
- Desktop Application Template
- Document Link
- Form
- Geoprocessing Package
- Geoprocessing Sample
- Layer Package
- Map Template
- Operation View
- Pro Map
- Project Package
- Project Template
- Storymap
- Workforce Project
You can install dependencies by cloning the repository and running:
npm install
Afterward, for a list of all available commands run npm run
.
Some useful commands include:
-
building
npm run build
creates symlinks among packages and creates node, umd, and esm outputs for each packagenpm run clean
runsclean:src
andclean:dist
npm run clean:src
deletes.d.ts
,.js
, and.js.map
filesnpm run clean:dist
deletes.rpt2_cache
anddist
folders
npm run lint
lints the TypeScript filesnpm run lint:fix
lints the TypeScript files and fixesnpm run prettify
beautifies TypeScript files
-
testing
npm run test
lints, then runs teststest:node
andtest:chrome
to confirm that the API is functioning as expectednpm run test:chrome
runs karma in the Chrome browsernpm run test:chrome:ci
runs karma in the ChromeHeadlessCI browsernpm run test:chrome:debug
runs karma in the Chrome browser and leaves the browser open for debugging testsnpm run test:firefox
runs karma in the Firefox browsernpm run test:node
runs jasminenpm run test:node:debug
runs jasmine in debug modenpm run test:ci
lints, then runstest:node
,test:chrome:ci
,test:firefox
, andcoveralls
from a bash windownpm run test:ci:win
lints, then runstest:node
,test:chrome:ci
,test:firefox
, andcoveralls:win
from a Windows windownpm run test:all
runstest:node
andtest:chrome
npm run coveralls
updates code coverage info from a bash windownpm run coveralls:win
updates code coverage info from a Windows window
-
publishing doc
npm run docs:build
(requires bash console)npm run docs:typedoc
npm run docs:build:acetate
npm run docs:build:sass
npm run docs:build:images
npm run docs:build:js
npm run docs:build:dev
(requires bash console)npm run docs:dev:typedoc
npm run docs:dev:acetate
npm run docs:dev:sass
npm run docs:dev:images
npm run docs:dev:js
npm run docs:serve
runsdocs:build
and hosts the documentation website on localhost:3000 (requires bash console)npm run docs:deploy
runsdocs:build
and pushes the documentation to the repository's gh-pagesnpm run docs:srihash
-
publishing code (requires bash window)
npm run prerelease:prepare
fetch, clean, link packages, and testnpm run release:prepare
prepares for publication and creates a changelognpm run release:review
assembles git changes (use arrow keys to put cursor on line above desired version)npm run release:publish
publishes a version
-
lifecycle
- postinstall runs
bootstrap
- bootstrap
- precommit
- postinstall runs
- Is this a supported Esri product?
- Why TypeScript? What if I prefer VanillaJS?
Found a bug or want to request a new feature? Please take a look at previously logged issues; if you don't see your concern, please let us know by submitting an issue.
For transparency into the release cycle and in striving to maintain backward compatibility, @esri/solution.js is maintained under Semantic Versioning guidelines and will adhere to these rules whenever possible. For more information on SemVer, please visit http://semver.org/.
Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.
Copyright © 2018-2019 Esri
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
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.
A copy of the license is available in the repository's LICENSE file.