Initial javascript startup code.
This commit is contained in:
parent
a7516f3da5
commit
ef2056c3f5
5 changed files with 52 additions and 7 deletions
3
atom.gyp
3
atom.gyp
|
@ -6,6 +6,7 @@
|
|||
'app/atom_main.cc',
|
||||
],
|
||||
'coffee_sources': [
|
||||
'browser/api/lib/atom.coffee',
|
||||
'browser/atom/atom.coffee',
|
||||
],
|
||||
'lib_sources': [
|
||||
|
@ -84,7 +85,7 @@
|
|||
],
|
||||
},
|
||||
{
|
||||
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources',
|
||||
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources/browser',
|
||||
'files': [
|
||||
'browser/default_app',
|
||||
],
|
||||
|
|
1
browser/api/lib/atom.coffee
Normal file
1
browser/api/lib/atom.coffee
Normal file
|
@ -0,0 +1 @@
|
|||
module.exports = global.__atom
|
|
@ -1,7 +1,40 @@
|
|||
fs = require 'fs'
|
||||
path = require 'path'
|
||||
|
||||
# Provide default Content API implementations.
|
||||
atom = {}
|
||||
|
||||
atom.browserMainParts =
|
||||
preMainMessageLoopRun: ->
|
||||
# This is the start of the whole application, usually we should initialize
|
||||
# the main window here.
|
||||
|
||||
# Store atom object in global scope, apps can just override methods of it to
|
||||
# implement various logics.
|
||||
global.__atom = atom
|
||||
|
||||
# Add Atom.app/Contents/Resources/browser/api/lib to require's search paths,
|
||||
# which contains javascript of Atom's built-in libraries.
|
||||
require('module').globalPaths.push path.join(__dirname, '..', 'api', 'lib')
|
||||
|
||||
# Don't quit on fatal error.
|
||||
process.on "uncaughtException", (error) ->
|
||||
console.error "uncaughtException:"
|
||||
if error.stack?
|
||||
console.error error.stack
|
||||
else
|
||||
console.error error.name + ": " + error.message
|
||||
process.on 'uncaughtException', (error) ->
|
||||
# TODO Show error in GUI.
|
||||
message = error.stack ? "#{error.name}: #{error.message}"
|
||||
console.error 'uncaughtException:'
|
||||
console.error message
|
||||
|
||||
# Now we try to load app's package.json.
|
||||
packageJson = null
|
||||
|
||||
packagePath = path.join __dirname, '..', '..', 'app'
|
||||
try
|
||||
# First we try to load Atom.app/Contents/Resources/app
|
||||
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')))
|
||||
catch error
|
||||
# If not found then we load Atom.app/Contents/Resources/browser/default_app
|
||||
packagePath = path.join __dirname, '..', 'default_app'
|
||||
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')))
|
||||
|
||||
# Finally load app's main.js and transfer control to C++.
|
||||
require path.join(packagePath, packageJson.main)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
var atom = require('atom');
|
||||
|
||||
atom.browserMainParts.preMainMessageLoopRun = function() {
|
||||
console.log('Create new window');
|
||||
}
|
5
browser/default_app/package.json
Normal file
5
browser/default_app/package.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"name" : "atom",
|
||||
"version" : "0.1.0",
|
||||
"main" : "main.js"
|
||||
}
|
Loading…
Reference in a new issue