Releases: Convertiv/handoff-app
Fixes two bugs with start/build
Bugfixes
- Resolves an issue with level two paths in the app not rendering right
- Resolves an issue if the project env is set to production but the app start mode is run
Commits
New API + CLI, and significant refactor to improve reliability
0.6.0 introduces two major new tools that will make it much easier to integrate Handoff with existing projects and data pipelines. This release also reorganizes the Handoff code to make the pipeline significantly more robust, easier to extend, and easier to use in existing projects. Our goal with this release is to establish a stable Typescript API as we approach a 1.0 release.
Features
Handoff CLI
Handoff now comes with a CLI toolchain that allows you to run Handoff commands in any context. This CLI replaces the installer from previous versions to scaffold up projects in a directory.
- Can be installed globally as a node binary
npm i -g handoff-app
- Run in any directory using
handoff-app <command>
- Will detect in the current working root and use that config if present
- Has sane default configs that will work for normal projects
- All configurations are sparse, so you can override a single config file and the rest of the config will inherit the defaults
- Allows users to make config or eject the default config into the current working root
- Can be run interactively to configure a project or non-interactively with
env
variables - Run
handoff-app --help
for a full list of commands - See https://github.com/Convertiv/handoff-app/blob/main/docs/cli.md for documentation
Handoff Typescript API
Handoff now exposes a full typescript API published as commonjs modules. This API will allow you to use Handoff in your Node 16+ javascript or typescript projects. With just a few lines of code you can have Handoff run programmatically.
This API supersedes and replaces the plugin architecture introduced in 0.5.0. The API call structure is maintained, but now the API can be used directly in existing Node applications and can be used with typescript.
Here's a simple example that will fetch the data down. This example expects a DEV_ACCESS_TOKEN and a FIGMA_PROJECT_ID env variable, or those to be provided in process.env
. If not supplied, they will be prompted for when the pipeline is run.
import Handoff from 'handoff-app';
const handoff = new Handoff({
title: 'Handoff Bootstrap',
integration: {
name: 'bootstrap',
version: '5.3',
},
});
await handoff.fetch();
- Fully typed API + full access to all the pipeline functions for transforming the tokens
- Methods to support fetching tokens, building the documentation app, building the integration, and running the app locally for testing
- A hook system allowing javascript functions to be passed as callbacks to be executed at points in the pipeline
// This hook will execute after the integration step and allow you to extract
// data from the pipeline and write it to a file
handoff.postIntegration((documentationObject: DocumentationObject, data: HookReturn[]) => {
const colors = documentationObject.design.color.map((color) => {
return {
name: color.name,
value: color.value,
};
});
data.push({
filename: 'colors.json',
data: JSON.stringify(colors, null, 2),
});
return data;
});
- API matches the methods of the CLI so you can script in code what you can do with the CLI
- See https://github.com/Convertiv/handoff-app/blob/main/docs/api.md for documentation
Improvements
- The handoff code base was refactored to eliminate the monorepo architecture and consolidate on a more coherent package architecture. This refactoring eliminated a number of weak points and improves reliability.
- Sharing code between the data pipeline and the Nextjs documentation app is safer
- The hook architecture introduced in 0.5 was fragile and less secure than we wanted. This reorganization makes a much more robust API, with full access to the typings
- The previous structure merged configurations in a way that could fail easily. The new architecture reads and merges the various Handoff configurations in a much more robust manor.
- Previously handoff required a folder architecture, with the proper files, and could fail if those files were moved. Now Handoff can be run in an empty directory, and can accommodate configs being added and removed during operation.
- Upgrade Nextjs from 12 to 13 providing cleaner, faster application builds
- Tailwind integration hook has been added to the pipeline
Bugfixes
- Fixes several style issues in the Bootstrap 5.3 release
- Corrects a missing caret in Bootstrap 5.2 and 5.3 selects
Changes from last Canary
- Fixing version df788f9
- Bumping cli version 70d0ca7
- 0.6.0 48d1534
- Merge pull request #54 from Convertiv/release/0.6.0 a4a18c9
- Tweaks to Changlog 5e16d2a
- Updating changelog for 277 missing select caret 5f8e180
- Merge branch 'CONVHAND-277-bootstrap-select-element-integration' into release/0.6.0 17afdc4
- Writing changelog for 0.6 5a8806d
- Cleaning up some text d2f025f
- Remove the unneded closing quote c6202d0
- Fixing small bugs in pipeline zip output for web app fdf2db3
- CONVHAND-277 - mapped and extended select form element for Bootstrap 5.2 and 5.3. b14eeef
Canary release for 0.6.0 - 8
- Fixing problem with react-highlighter types are missing 283470d
Canary release for 0.6.0 - 7
- Removing debug and adding misssing types 1e75460
Canary release for 0.6.0 - 6
- Correcting small bug in transpiling package 9451b7b
Canary 5 - resolves problems when using this in serve mode
4th Canary Release 0.6.0
- Fixing load issues running as cli 159da22
Third Canary release of 0.6.0
Fixes
- Patches a bug when running the build for bootstrap when not in a directory with npm
- Fixes an issue with prisim highlighting and babel runtime
- Patches a build issue
Second 0.6.0 Canary Release
Canary release for 0.6.0
This is a canary release for testing the 0.6.0 revisions
Commits
- Preping for canary release 2a519ce
- Adding watch scripts to help automate config change in dev mode a098ecc
- Tweaking docs to make them more readable bf7645c
- First draft of API documentation 186602c
- Fixing prompt masking f2671cc
- Build types c1fe865
- Updating some types to make them easier to use in the plugins bcc6582
- Fixing move after build 0da72bc
- Fixing build path of buildapp f97f4c7
- Fixing type base declartion 2c67c4e
- Updating staging build for 0.6 b920d05
- Fixing icon issues ade2723
- Fixing font transformer 3121e11
- Fixing bug in transpile 59dd9d7
- Fixing bug in module transpile 61236c4
- Adding a place to execute prerun hooks 8abb62b
- Removing unneded build from normal fetch pipeline b07635b
- More type shuffling c3a9ddd
- Fixing type bug 77b0673
- Restructuring next app config to perform better 1fe84b1
- Isolating start and dev mode a0b968a
- Working with new watch structure f413068
- Trying to restructure types c8b58ed
- Fixing default version in integration e006830
- Removing module load order 4081fda
- Fixing path bug 5ca0a1c
- Removing unneded debugging 0a0545c
- Allow handoff class to accept config options fe9f602
- Reorg baaddf4
- Merge branch 'CONVHAND-267-handoff-restructure' into release/0.6.0 d424047
- Adding first draft of tailwind integration pipeline 22963cc
- Emitting types 4181dbd
- Adding module declaration c38154e
- Removing installer c5b5a6f
- Fixing previews d1f7d1b
- Adding make:exportable to cli b64ebab
- Building first draft of ejectable config 92dba79
- Fixing image loading bug 3391314
- Fixing preview paths for bootstrap loader 4658958
- Removing debugging and cleanup ec02337
- Fixing debug handdown 581b868
- Fixing build order in init 5bda3e6
- Working on clenaing up init e34def8
- Working on cli methods 9bfb0e8
- Fixing bug when serializing handoff 3654253
- Fixing build issue when calling code in node bd8e2d9
- Removing unneded bable rc 1bc1fb4
- Fixing build 379a976
- Revert f7260bf
- Tweaking the way packages are built f0ab925
- Small image bug and removing unneed tsloader 42ebf7a
- Updating the way icons are handled fa54e21
- Removing unneded sprite generator 3514581
- Rollback 885d316
- Allow read ts config from default node modules folder eb30f8b
- Allowing next config to be customized and trapping issue when pages dir does not exist in local b07a1b2
- Allowing page override to inheret 3a33098
- Fixing load bug in next config 26f1085
- Fixing app build paths when using node module c8c414b
- Working on app build 2dd9c7d
- Building cli and hooking system c29e3ce
- Extending resolve loader 789c639
- Fixing preview webpack bug 09c0fbb
- Exporting dist 52d6d2c
- Moving index 7e6e231
- Making the build work finally 75f7a36
- Fixing issue with changelog passing config 70d3af9
- Allowing local docs folder to override page structure 3534a72
- Resolving issue with build system for next app ed08500
- Rebuilding app to work in pipeline 6bb565e
- Removing unneded next code f0ee284
- Experimental reorganization as a CLI + importable module a51c337